Changing the bootup splash screen

From ArkWiki

Jump to: navigation, search

Contents

Changing the bootsplash

So you like using various themes in KDE and what not, but that boot-up splash just isn't working for you? Then here's how to change it.

First and foremost, you need some pretty recent packs and software. For this exercise, I used the 2.6.14-0.rc2.1ark kernel which has fbsplash support. It would be preferable to use any 2.6 version kernel. In this exercise, I also use the splashutils pack. It has all of the necessary programs we need to change the boot splash. Now remember that most, if not all, of these commands must be done as root. So handle them with care!

Now let's dive into the fun.

Unpacking the custom boot splash

Select which boot splash you're going to use. I am using the Fingerprint-bs boot splash found off of KDE Look.

This pack, and all of it's contents, have to be put into the /etc/splash/ directory. One way of doing that is:

tar -xzf bootsplash.tar.gz /etc/splash

They have to be put there for that's where all of the information for the boot splash goes. However, when the computer starts up and the kernel gets going, it actually relies on the initrd file located in the /boot directory.


Making the initrd file

The standard initrd file that comes with Ark Linux has the default boot splash. What we need to do is generate a new initrd file for the custom boot splash. That is done with the command:

mkinitrd --splash=<Your_theme_here> /boot/fbsplash-yourtheme.img <kernel_version>

"Your_theme_here" is the custom theme you want to use, located in /etc/splash. The second argument is where the initrd file will go. The third argument is the kernel version that will be used for when booting the initrd file.

An example of this command is:

mkinitrd --splash=fingerprint-bs /boot/fbsplash-fingerprint-1024x768.img 2.6.14-0.rc2.1ark

Note that I also marked in the name of the initrd file the resolution of the boot splash. The kernel is very picky about the height and width of the picture you use.

There is a program included with splashutils which can resize the image for you, called splash_resize. The command goes a little something like this:

splash_resize the_theme 1024x768 1280x1024

Remember, though, that the size of the picture has to be something that fbsplash can take.

Editing the proper files

Now that you've created an initrd file, you need to change the /boot/grub/grub.conf file to reflect this. Using your text editor of choice, change the option "initrd" in the grub.conf file to the name of your newly created initrd file:

title Ark Linux - Home (1.0-0.dockyard20050411.1ark) (2.6.14-0.rc2.1ark)
       root (hd0,1)
       kernel /boot/vmlinuz-2.6.14-0.rc2.1ark ro root=/dev/hda2 vga=792 video=vesa:pmipal,mtrr quiet
       initrd /boo/initrd-2.6.14-0.rc2.1ark #Old initrd file

From the old to the new:

title Ark Linux - Home (1.0-0.dockyard20050411.1ark) (2.6.14-0.rc2.1ark)
       root (hd0,1)
       kernel /boot/vmlinuz-2.6.14-0.rc2.1ark ro root=/dev/hda2 vga=792 video=vesa:pmipal,mtrr quiet
       initrd /boot/fbsplash-fingerprint-bs-1024x768.img #New initrd file

Then just save that and exit. Not much to worry about. But then there's the matter of what configuration file the kernel will use. Even though it will use the image that came with the initrd file, it will still use the config that is with the default theme (weird behavior indeed). To correct this, we must change one of two directories.

First, delete the /etc/splash/default directory, which is merely a symbolic link to the usual boot splash being used. This can be done like this:

rm -rf /etc/splash/default

Sometimes, though, fbsplash uses a different directory, the "current" directory. In that case we merely remove it with the command:

rm -rf /etc/splash/current

After doing that all we need to do is link the correct directory with our new boot splash. We do that with the command:

ln -s /etc/splash/<theme_name_here> /etc/splash/default #It's either "default" or "current"

Other options

All of what I say above isn't the extent of boot splashes. It can also take options. In the /boot/grub/grub.conf, there's the "vga" option. It's little number tells the kernel which resolution and color depth is used for the boot splash picture. In my example, I used "792", since my picture is 1024 by 768 and has a color depth of 24-bits.

Here's a little table of how it all breaks down, lifted lovingly from the Gentoo HowTo for fbsplash:

vga reference guide
× 640x480 800x600 1024x768 1280x1024 1152x864 1600x1200
8 bit 769 771 773 775 353 800
15 bit 784 787 790 793 354 801
16 bit 785 788 791 794 355 802
24 bit 786 789 792 795 803

In the grub.conf file there's also the "splash" option. One can feed arguments to it, for either showing the picture ("silent"), or for showing the start up text ("verbose"). Other options include "quiet" (which at the moment I don't really know what it does), and "fade-in" (ditto on this one).


If you have any inquires, questions, and comments, please drop me a line. For all complaints and grievences please kindly keep them to yourself. --Ertain 23:52, 13 Feb 2006 (CST)

Return to Main Page

Personal tools