[home]  [software]  [images]  [web]  [games] Version Française

Animated splash screens for LILO - help page

Other Linux distributions

These animated boot screens have been tested with SuSE Linux 7.2 and 7.3. If you are using another distribution such as Debian, Red Hat, Mandrake or a custom set of packages, you will not get the expected results if you keep the version of LILO included in your distribution. Some versions of LILO can display static images, but they will not work with these animations.

It should still be possible for you to install these boot screens on your computer if you start by installing the patched version of LILO provided by SuSE (and the corresponding boot block boot-menu.b). If you already have some experience with Linux, you should be able to get the correct RPM or SRPM file from one of the SuSE FTP mirrors and install it on your computer. It may be easier to install the sources and compile them yourself. It may even be possible to port the patches to a different version of LILO. Note that I did not try that myself so please do not ask me how to do it.

Here are the packages that you should install on your computer, after creating a boot disk that would allow you to boot your old system in case something goes wrong:

.../i386/7.3/suse/a1/lilo.rpm the patched version of LILO
.../i386/7.3/suse/zq1/lilo.spm the source code for the patched version of LILO
.../i386/7.3/suse/ap1/gfxboot.rpm the SuSE boot screen and its documentation
.../i386/7.3/suse/ap2/gfxboot-devel.rpm    the program mkbootmsg and the sources of the SuSE boot screen
.../i386/7.3/suse/zq1/gfxboot.spm the sources of mkbootmsg and getx11font

Many thanks to Steffen Winterfeldt and SuSE for providing this very nice extension to LILO.

New: some people have provided pre-compiled packages for some Linux distributions.

How to install these animated boot screens?

If you have the right version of LILO, it is very simple to install these splash screens. If you already have the correct boot-menu.b file, you only have to tell LILO to use the compiled script as a message file:

  • As root, copy the *.boot file in your /boot directory (after using gunzip if the file was compressed). For example:
      cp penguins.boot /boot
    
  • Then insert the following line in /etc/lilo.conf (remove or comment out the existing message line if you already have one):
      message = /boot/penguins.boot
    
  • And finally run LILO to install it:
      /sbin/lilo -v
    

The next time you reboot your computer, you should see the new splash screen.

Common problems

If you get a text menu instead of the expected animation, then something went wrong. Here are some common problems:

  • If you get the error "message file too big" or similar errors, then you do not have the right version of LILO or boot-menu.b. You must install the patched version of LILO.
  • Your graphics card does not support the requested video mode (some of the most recent 3D cards have stopped supporting the VESA modes such as 640x480 x 256 colors).
  • There was an error when you ran LILO and the boot screen was not installed. Check your configuration file /etc/lilo.conf and check that you are running the right version of LILO.
  • Your configuration file /etc/lilo.conf does not contain the option prompt, which is necessary to get the boot menu. You should probably add a timeout option as well.
  • Your computer boots from a different disk than the one on which LILO is installed or it uses a different boot loader.

How to create or modify your own animated boot screens?

Warning: playing with LILO can be dangerous. Be sure to have a rescue disk ready when you modify a script or the LILO configuration file, because you could easily make a mistake that prevents your computer from booting. Make sure that you do regular backups as well, because you never know what could happen to your data. Once, I made a small copy-and-paste error when testing one of my animations, by using ifelse instead of if in a script. LILO crashed (probably a stack underflow) and my computer could not boot anymore. I was glad to have a rescue disk... So be careful when you are experimenting with your boot loader.

If you want to create your own graphical boot screens, you need the program mkbootmsg, available in the SuSE distribution in the package gfxboot-devel. This package also contains the program getx11font, which can convert a font in a format that can be used in your boot screens. As of this writing, the only documentation for mkbootmsg is available in the README file /usr/share/doc/packages/gfxboot/README (package gfxboot). I tried to put some helpful comments in my scripts in order to make them easier to understand, but you should study that README file first.

When you are writing or modifying a script, keep in mind that you are developing a modification to your boot loader. You have to be very careful because the only way to test and debug your code is to reboot your computer, which can be quite time-consuming if you have to resort to the rescue disk (or to re-install everything in case something very bad happens). So double-check your code before installing it. Some debug statements are available and the compiler contained in mkbootmsg is able to detect some errors, but not all of them.

Once you have the script file (*.config), the PCX image (*.pcx) and the optional font file, you can use mkbootmsg to compile your new boot screen. For example:

  /usr/sbin/mkbootmsg -c penguins.config penguins.boot

If you do not get any errors, then you can install the new file as explained above.

Modifying the image should not be too hard. I used The GIMP to create all animations, as you can see in the *.xcf.gz files that are available for download. I usually follow this procedure:

  • Most of the development is done on RGB images. The area outside the screen size defined in the script can be used to hide some elements that will be copied to the screen later for the animations.
  • When the image is ready, I flatten it (merging all layers) with Layers->Flatten Image.
  • I convert the result to indexed mode (less than 256 colors - for example, 240) with Image->Mode->Indexed, usually without dithering. The random distribution of dots caused by the Floyd-Steinberg dithering is often annoying for animations.
  • I use Dialogs->Indexed Palette to modify some colors by hand: the color at index 0 must be pure black (#000000). If you forget this step, you will get a warning when you compile your boot screen.
  • Finally, I save the image in a PCX file and I use mkbootmsg to test the new boot screen.

If you create some nice boot screens, please tell me and I will add a link to your page on my LILO links page.

[back to my LILO page]