Love, Sex, God

Console fluff with FBsplash

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 -p1

Configure 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 menuconfig
make
make modules_install
cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.10
ln -s /lib/modules/2.6.10/build/System/map /boot/System.map-2.6.10

create /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/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.bz2
cd splashutils-0.9-pre10.tar.bz2
ln -s /usr/src/linux-2.6.10 linux
./configure
make
make install

This 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/splash
cp debian-1.tar.bz2 /etc/splash
cd /etc/splash
tar -xjf debian-1.tar.bz2

I 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/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.

Here is my /etc/init.d/rcS

Here is my /etc/init.d/rc

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 current

Tell 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:current
initrd /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 command

splash_util --vc=0 --cmd=off
splash_util --vc=0 --theme=current --cmd=setcfg
splash_util --vc=0 --theme=current --cmd=setpic
splash_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
0 0 votes
Article Rating

In:

Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

4 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Krusty Ruffle

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.

Storytobi

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.

4
0
Would love your thoughts, please comment.x
()
x