Dans ce document je vais indiquer comment configurer le bootsplash sur une distribution Debian munie d'un noyau 2.6.x.
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
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
