Changing the bootup splash screen
From ArkWiki
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:
| × | 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
