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/
Important note!
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.
Download patch for 2.6.10 here
go to your unpacked kernel source (should be in /usr/src/linux-2.6.10)
cd /usr/src/linux-2.6.10
and run the patch command:
patch -p1Configure and compile your kernel
You 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.10create /dev/fbsplash
Fbsplash needs a device in your directory tree to function
The major and minor number needed can be found in /sys/class/misc/fbsplash/dev
cat /sys/class/misc/fbsplash/devFor 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 63download 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-devDownload 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 installThis will give you several commands, I have a little initscript that I use for my bootsplash
Download my fbsplash script here
install a theme
You can download a debianized theme from here (remove .txt from name before unpack)
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.bz2I also suggest you make a link for the current theme to be able to very quickly switch themes
ln -s /etc/splash/debian-1 /etc/splash/currentedit 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 theme
splash_geninitramfs -v -g /boot/initrd.img-2.6.10 -r 1024x768 currentTell grub to load the ramdisk and set up framebuffer
Edit your grub lines to look something like this
title 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.10Reboot 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 command
splash_util --vc=0 --cmd=offsplash_util --vc=0 --theme=current --cmd=setcfgsplash_util --vc=0 --theme=current --cmd=setpicsplash_util --vc=0 --cmd=on/etc/init.d/
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 fine
ln -s /etc/init.d/fbsplash /etc/rc2.d/S99xfbsplash
Thanks for this article, I’ve been working on getting splash screens during boot + on the consoles in Ubuntu Dapper. Your article has helped, but I would like to point out that many of the links point to a non-existing site, judging by the name of said site I would guess that it was an old site of yours…
Thanks again for the tutorial.
yea sorry about that, I have been meaning to fix those links for quite some time now … Ill get on it …
Hi, thanks for tut, but can you confirm, XGL + nvidia (not nv) driver will still work after the kernel patch? I don’t want to loose COMPIZ for a console splash.
I am running Ubuntu Dapper wich has he fbsplash per default, and I am running XGL and compis. Now I havent tried this specific patch with compiz so I cant confirm that. But I do think it will run perfectly.