Adding a bootsplash screen for Linux

Adding a bootsplash  screen for Linux is a simple process, that can make you distribution look more personalized.

I followed the instructions in the web site bootsplash.org. Here is a quick summary of the necessary steps. (note: I used topologilinux 3.1, a simple version of Linux that can be installed from a Windows machine.)

1 – install the Linux kernel. In my case, I had to download the extra ISO image from the 3.1 distribution. However, instead of burning the image, I mounted it with the command

mount -o loop -t iso9660 file.iso /some/dir

and extracted the tgz file that contains the kernel. This step is important because Topologilinux is patched to use the new NTFS driver (which usually is a pain to setup).

2 – apply the bootsplash patch for Linux, that you can find in the bootsplash.org page. I used the patch for version 2.4.20 of the Linux kernel.

3 – make menuconfig, and in “Console drivers”, framebuffer support, select the following options: “VESA framebuffer”, “show bootsplash (NEW)”. For me, this was all that was required, but some other people may need initrd, loop device, and ram disk support depending on the configuration of the system.

4 – compile the kernel (make dep; make bzImage). I didn’t compile the modules again, since I didn’t change any of them.

5- Create a modified initrd file. I copied the one from the Windows partition (in my case it is in fact initrd.gz, but the process is the same). Then use the splash utility to write the image to the end of the initrd file. This process is explained in the README.bootsplash file from bootsplash.org

6 – Change the grub menu, to add new kernel options. I used the additional parameters vga=0x317 video=vesa:1024×768@72 splash=silent. They worked fine in my case.

7 – To animate the progress bar, we have to add some commands to the init scripts. There are a lot of scripts comming with bootsplash, but I found a simple way of doing it with:

echo show 65500 < /proc/splash

The number goes from 0 to 65500 (max), and sets the level in the progress bar.

8 – I also created a different configuration for the reboot screen. I just added this command to the rc.6 init script:

splash -s -u 0 /etc/bootsplash/themes/Linux/config/shutdown-bootsplash-1024x768.cfg,

where shutdown-bootsplash-1024×768.cfg, is the name of the new configuration. For this step, I also had to change the silent jpg image in the images directory.

9 – Final touch: with gimp, I changed the init and shutdown images  according to my preferences. You can, for example, add a welcome message.

Similar Posts:

About the Author

Carlos Oliveira holds a PhD in Systems Engineering and Optimization from University of Florida. He works as a software engineer, with more than 10 years of experience in developing high performance, commercial and scientific applications in C++, Java, and Objective-C. His most Recent Book is Practical C++ Financial Programming.

Post a Comment