So you have grown tired of the black and white of the console and need a bit of color to brighten your day. Before Bootsplash would have been your ticket to bliss but the recent rewrite that is now fbsplash is what you should be looking for. This tutorial is made for kernel 2.6.10 and spocks fbsplash patch, but with very little effort you should be able to use it for other kernel versions to
fbsplash is being developed by Spock for gentoo, he has done a fantastic job with this go to his page for more info and to pay tribute http://dev.gentoo.org/~spock/projects/gensplash/
There are some problems with fbsplash and the 2.6.9 kernel where fbsplash automatically switches to verbose mode at boot, this is fixed in the 2.6.10 patch so please use that instead
Patch the kernel
You can patch the kernel with the fbsplash diff or perhaps with kolivas Ck4 patch, wich also contains alot of performance power for your desktop system.
go to your unpacked kernel source (should be in /usr/src/linux-2.6.10)
and run the patch command:
Configure and compile your kernelYou need to configure the kernel for Framebuffer support, initial ramdisk and bootsplash. I suggest using vesa framebuffer since it is almost guaranteed to work with any graphics card.make menuconfigmakemake modules_installcp arch/i386/boot/bzImage /boot/vmlinuz-2.6.10ln -s /lib/modules/2.6.10/build/System/map /boot/System.map-2.6.10
Fbsplash needs a device in your directory tree to function
The major and minor number needed can be found in /sys/class/misc/fbsplash/devcat /sys/class/misc/fbsplash/dev
For me this produces 10:63 (this can only be done after you reboot on your new kernel). Create the node with the command:mknod /dev/fbsplash c 10 63
download and compile the gensplash utils
The utils are user space utilities for controlling your fbsplash. I had to install a jpeg and a png package to get these to configure.apt-get install libpng3-dev libjpeg62-dev
Download the utils from here Untar your utils, compile and install them (note to get splashutils to install you must make a symlink named linux from your kernel dir to the splashutils folder where you are making the splashutils)tar -xjf splashutils-0.9-pre10.tar.bz2cd splashutils-0.9-pre10.tar.bz2ln -s /usr/src/linux-2.6.10 linux./configuremakemake install
This will give you several commands, I have a little initscript that I use for my bootsplash
install a theme
start with creating the splash directory and copy the theme into that.mkdir /etc/splashcp debian-1.tar.bz2 /etc/splashcd /etc/splashtar -xjf debian-1.tar.bz2
I also suggest you make a link for the current theme to be able to very quickly switch themesln -s /etc/splash/debian-1 /etc/splash/current
edit the rcS and rc scripts
For the progress bar to function you need to tell the /etc/init.d/rcS and /etc/init.d/rc to update the bar after each init script.
There are probably many better ways to solve this but I ended up guessing approx how much to add per script and winged it, all I added in the scripts is clearly marked out in boxes of hashes.
generate the ramdisk image
With the commands given by splash utils you can generate a ramdisk image containing your fbsplash themesplash_geninitramfs -v -g /boot/initrd.img-2.6.10 -r 1024x768 current
Tell grub to load the ramdisk and set up framebuffer
Edit your grub lines to look something like thistitle Debian Gnu/Linux (2.6.10)root (hd0,0)kernel /boot/vmlinuz-2.6.10 ro root=/dev/hda1 video=vesafb:ywrap,pmipal,1024x768-32@85 splash=silent,theme:currentinitrd /boot/initrd.img-2.6.10
Reboot in the ultimate console fluffiness
Now you should have a working fbsplash and will be able to boot in all the colors of your choice.
To change the splash on a console use the following
The following four commands will change your frame buffer theme on the fly, if you want to change a console you are not currently on, omit the setpic commandsplash_util --vc=0 --cmd=offsplash_util --vc=0 --theme=current --cmd=setcfgsplash_util --vc=0 --theme=current --cmd=setpicsplash_util --vc=0 --cmd=on
to have the fbsplash be set on all your consoles at boottime you need to fix a init.d script if you have no imagination or scripting skills you can download mine here Copy that script into /etc/init.d and name it fbsplash then adda symlink to this file in your default runlevel making sure it's the last thing loaded and it should work fineln -s /etc/init.d/fbsplash /etc/rc2.d/S99xfbsplash