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.

Installing CoLinux in my machine

I finally took the time and installed coLinux in my machine, with file access to the Windows files.

For the people interested on this, here are the steps I followed:

  1. Download coLinux from sourceforge
  2. Make the main network interface (the one that connects to the Internet) shared. This will change the address of the image to 192.168.0.1. Change this to the correct address you want to use.
  3. Change the resulting TAP adapter to the address 192.168.0.1.
  4. Start coLinux, and set DNS correctly, in the file /etc/resolv.conf. eg:
    nameserver IPaddress
  5. Share a directory from the windows machine
  6. Mount that directory using the following commands:

smbmount //192.168.0.1/share /home/oliveira/xp -o username=domain\\user,uid=1000,fmask=1777,
rw,credentials=/etc/samba/credentials

7. Create the credential file which is just

username= xxx

password= xxx
8. If you use Debian, add the mount command to rc.d by adding the commands to

/etc/init.d/local

then, setting it to executable, and calling:

update-rc.d local defaults 80

I also updated my Linux image to Topologilinux, which is nothing else than Slackware 9. This is probably the best Linux distro that I’ve ever run!

If you want to do this, just follow the howto in the Wiki page in Colinux. The information there is very detailed.

That is all folks!