The Splash Screen is coming back!

The opsi splash screen returns! With the release of opsi 4.0.6 the opsi splash screen was not available. The splash screen and the depending programs were too large and the bootimage was heavily limited in space. Therefore kernel messages or a black blank screen were shown to the user booting the opsi bootimage.

However opsi 4.1 will use another tftpd. With this new tftpd opsi is no longer restricted to the infamous 90MB file limit it was scratching all the time. Without this limitation the bootimage can feature more packages and features. One of those features is a basic splash screen.

Splash screen

The opsi bootimage is based on Ubuntu 16.04. Ubuntu features packages to display a splash screen. However the standard splash screen packages are large or abandoned since years. They have lots of features. But we don't need any fancy animations. Nontheless the package fbi is still under development. fbi is a framebuffer imageviewer. It is simple and displays an image on a predefined tty during the boot process. Exactly what we need in a size focused bootimage. Additionally the usage is easy to manage.

This is how the splash screen on the 64bit bootimage looks like:

splash screen

The steps to display a splash screen using fbi are easy:

  • install fbi
  • write systemd unit file

The unit file looks like this:

[Unit]
DefaultDependencies=no
After=local-fs.target
Conflicts=getty@tty1.service

[Service]
StandardInput=tty
StandardOutput=tty
ExecStart=/usr/bin/fbi -d /dev/fb0 --once --noverbose --autozoom /etc/opsi.png

[Install]
WantedBy=sysinit.target

This simple systemd unit file displays the desired image file on the first virtual terminal. The framebuffer displays the image as soon as the given dependency - in this case the local filesystem being up - is met. The opsi master.py script takes over as soon as the bootprocess has been completed. The virtual screen then switches and displays the typical opsi netboot product installation screen.

Notification screen

Another addition in the bootimage next to the splash screen is a notification screen. Whenever a netboot product succeeds or fails a notification is displayed. This notification intends to inform the user about the state of the product process. A failed product usually outputs the error message. A succeeded product didn't output anything. Instead the scripts terminated and showed a tty until the bootimage restarted. The new opsi 4.1 bootimage now shows the following succeed message:

successful

After about two minutes the bootimage reboots and starts the following installation. Whenever an error occurs the bootimage shows the following message after the bootimage UI closes:

failure in bootimage