Un bootsplash au boot de linux



Par ebdomino, le 21/07/2004

Jaloux de la belle image qui apparait quand on démarre sur une fedora, et suite à une discussion avec bouyafa ;-D en irc, je me suis penché sur cette épineuse question ! Le bootsplash étant inutile en devient totalement indispensable !Ce howto a été expérimenté sur une debian sid, si vous l'appliquez sur d'autres distributions avec succès, dites le moi et communiquez moi les diffèrences je les ajouterais.

Tout d'abord les ressources utilisées

Le site du how-to que je vais traduire et améliorer

Les patch, les themes, tout ce qu'il faut quoi !

Première étape : patch du noyau

Et oui, car il faut recompiler le noyau si le votre n'est pas prévu pour un bootsplasch. rien de bien extraordinaire, si on a déja compilé, sinon c'est un peu plus complexe.

D'abord vous récupèrez les sources du noyau sur kernel.org. Pour simplifier je suppose que vous téléchargez dans /home/(USER)/tmp/

Je me base sur mon cas donc sur un 2.6.7, pensez à modifier les fichiers en fonction de votre noyau ;-), penser à mettre un append à votre noyau su style --bs .. (voir le howto sur le son acer)

Ces manipulations se font en user, pas en root !

Ensuite le patch correspondant à votre noyau sur bootsplash.de: pour moi bootsplash-3.1.4-sp3-2.6.7.diff .

Décompressez les sources de votre noyau, par exemple dans /home/(USER)/tmp/ .

tar xjvf linux-2.6.7.tar.bz2

Ensuite copiez le patch dans le dossier des sources:

cp -a bootsplash-3.1.4-sp3-2.6.7.diff linux-2.6.7/

Maintenant , placez vous dans le dossier du noyau et appliquez le patch :

patch -p1 < bootsplash-3.1.4-sp3-2.6.7.diff

Vous allez entrer dans la configuration du noyau, et modifier les parmètres suivant:

make menuconfig

dans:

Devices drivers > block devices

<*> RAM disk support
(16384) Default RAM disk size

[*]   Initial RAM disk (initrd) support

[*] Support for Large Block Devices

Ensuite dans : (moi j'ai une ATI mais adaptez pour vous)

Devices drivers > graphic support
[*] Support for frame buffer devices

[*]   VESA VGA graphics support

< >   ATI Radeon display support (Old driver)
ATI Radeon display support
[*]     DDC/I2C for ATI Radeon support
Devices drivers > graphic support > Console display driver support

--- VGA text console
[*]   Video mode selection support
<*> Framebuffer Console support
ça je ne suis pas sur que ce soit nécessaire, mais ça marche :D

Devices drivers > graphic support > Logo configuration

[*] Bootup logo
[ ]   Standard black and white Linux logo
[ ]   Standard 16-color Linux logo
[*]   Standard 224-color Linux logo
Devices drivers > graphic support > Bootsplash configuration

[*] Bootup splash screen


Sauvez votre configuration et lancez la compilation du noyau.

le site de stephane huc pour vous aider à compiler

L'excellente documentation de Alexis Delattre

Si comme moi vous avez compilé à la méthode debian vous devez faire :

fakeroot make-kpkg clean
fakeroot make-kpkg --append-to-version -bs --revision nom_machine_cible.numéro_version kernel_image

Passez maintenant en root et installez le noyau.

dpkg -i kernel-image...deb

Installation des fichiers pour le bootsplash

Pour debian, et je pense pour les autres aussi, vous devez installer: bootsplash, sysv-rc-bootsplash (qui va patcher les script de boot, pour que les animations de l'image fonctionnent), et un thème au choix (pour debian le theme newlinux est posé par défaut).

Tous ces fichiers sont sur bootsplash.de, et pour debian un repository existe (à ajouter dans /etc/apt/sources.list):

deb http://www.bootsplash.de/files/debian unstable main
apt-get update apt-get install bootsplash sysv-rc-bootsplash

Pour le paquet bootsplash, sous debian, il va vous demander de créer un initrd, répondez none, nous le crérons à la main.

Pour le paquet sysv-rc-bootsplash, répondez yes, bien sur

Création du initrd

Nous allons créer le initrd, pour charger le bootsplash, à faire en root:

/usr/sbin/splash -s -f /etc/bootsplash/themes/newlinux/config/bootsplash-1024x768.cfg >> /boot/initrd-2.6.7.img

Cette commande est sur une seule ligne dans votre console (en root),

A adapter pour votre résolution, et votre thème.

Ensuite vous devez ajouter à votre configuration de bootloader, le nouveau noyau et le initrd:

J'utilise grub, donc je ne sais pas si la configuration est correcte pour lilo, c'est celle donnée par le site.

Pour grub, dans /boot/grub/menu.lst:

title Linux
kernel /boot/vmlinuz-2.6.10-eb root=/dev/hda1 ro vga=791 splash=silent max_scsi_luns=15 apm=power-off
initrd  /boot/initrd-2.6.10-eb.img
savedefault
boot

Pour lilo: dans /etc/lilo.conf ajouter:

label=kernel-splash
image=/boot/vmlinuz-2.6.7
initrd=/boot/initrd-2.6.7.img
append="splash=silent"
vga=791

lilo -v

Le paquet bootsplash arrive avec un thème par défaut, newlinux. Sur debian il n'est pas possible de désinstaller ce thème . Donc si vous en installé un autre, vous devez changer le lien current qui point vers le theme newlinux.

cd /etc/bootsplash/thèmes rm -i current ln -s /etc/bootsplash/thème/votrethème current

Voila, normalement au reboot, vous avez un splash-screen, pour afficher les informations de démarrage, appuyez sur Echap. Sur mon clavier usb, je dois attendre le chargement des modules usb, pour les afficher.

version 2 par Eric Barons

Valid XHTML 1.0! Valid CSS!