Tuesday, January 15, 2008

Splashy faulting with Error -3, wtf?!

If have a long running Debian installation and once get bored with its, well lets call it conservative, looking boot process, you might, just like me, decide that you definitly need a nice splash animation for the boot process. In Debian world, this basically comes down to two alternatives: usplash and splashy. The latter being the more modern choice, a decision was made and installed pretty fast:

aptitude install splashy splashy-themes

Alright, so now i just needed to set a variable in /etc/defaults/splashy:

ENABLE_INITRAMFS=1

This is only for people using an initramfs (e.g. if you use one of debian's stock kernels), so that the bootsplash starts as early as possible in the boot process. After setting that variable, a quick

update-initramfs -u

is needed. Of course /boot/grub/menu.lst needs to be adjusted as well. The line starting with

#kopt=

has to be extended with the following:

vga=795 splash quiet

So updated grub with

update-grub

and rebooted to test things out, but i didn't get very far. Fairly early, the boot process was interrupted with the follwoing message:

ERROR -3: couldn't splashy_start_splashy()

Crap, what was that... After unsuccessfully googling for half an hour, the glorious thought of actually reading the documentation that comes with splashy crossed my mind. And there ist was, right there in /usr/share/doc/splashy/changelog.Debian.gz:
* Splashy doesn't work if libdirectfb-0.9.25 is installed at the same time as libdirectfb-1.0.x
Aha, a quick

dpkg -l libdirectfb*

revealed that i indeed had both version of that library installed. The obvious move was to remove one the version. I chose that older one:

aptitude purge libdirectfb-0.9.25

This action required the update of several packages that were dependent on the version of libdirectfb, but wth... Reboot.... Great, everything works as expected. One just has to remember that after a change of the splashy theme, (which can be done with splashy_config -s) requires the update of the initramfs.