mercredi 8 février 2012 04 h 33 CET


Bootsplash sous Debian.

Dans ce document je vais indiquer comment configurer le bootsplash sur une distribution Debian munie d'un noyau 2.6.x.

Pré-requis:

Patcher et recompiler le noyau:

yourbox:~ # cd /usr/src/linux

yourbox:/usr/src/linux # patch -p1 < /path/to/bootsplash-xxx.diff

yourbox:/usr/src/linux # make menuconfig

Ligne de compilation:

make-kpkg --rootcmd fakeroot clean

make-kpkg --rootcmd fakeroot --append_to_version $version --revision=$revision --initrd kernel_image kernel_headers kernel_doc modules_image

Installation et configuration

IL faut installer le nouveau noyeau avec dpkg -i, et le paquet bootsplash avec aptitude install.
Le fichier initrd est créé par défaut avec initramfs-tools, ce qui empêche l'utilisation de splash ou de dpkg-reconfigure bootsplash.
On vas donc le modifier nous même:

yourbox:~ # mkdir /tmp/toto

yourbox:~ # cd /tmp/toto

yourbox:~ # gzip -dc /boot/initrd.img-2.6.xxx | cpio -id

On remarque dans l'arborescence extraite de l'initrd la présence du fichier bootsplash, mais il est vide il fait 0k, on vas donc le remplacer:

yourbox:~ # cp /boot/initrd.splash bootsplash

Et on reconstruit l'initrd:

yourbox:~ # find ./ | cpio -H newc -o > ../new-initrd.cpio

yourbox:~ # cd ..

yourbox:~ # gzip new-initrd.cpio

yourbox:~ # cp newinitrd.cpio /boot/initrd.img-2.6.xxx.splash

Voila maintenant on configure le menu.lst de grub pour le support du nouveau initrd, c'est la ligne initrd correspondant au noyeau:

initrd /initrd.img-2.6.xxx.splash

Pour bénéficier de la barre de progression dans bootsplash pendant le boot on va installer le script rc qu'on a récupéré au préalable chez bootsplash.org.

Dabord on sauvegarde le rc d'origine:

yourbox:~ # cp /etc/init.d/rc /etc/init.d/rc.bck

Puis on remplace le rc par celui de bootsplash:

yourbox:~ # cp rc-debian-etch.txt /etc/init.d/rc

C'est fini, au boot ca doit marcher. :-)