Linux 2.6 Bootsplash

17 Jan. 2005
Auteur : Hyacinthe MENIET
Responsable : TrustRobot
Score ( voter ) :
Connexes : Même auteur | Même responsable | Historique
Dans ce document je vais indiquer comment activer le bootsplash sur une distribution munie d'un noyau 2.6.x. Il est bien-sûr possible de réaliser cela avec un noyau 2.4, mais je n'en parlerai pas dans ce didacticiel. Ce didacticiel s'adresse surtout aux utilisateurs dont la distribution ne dispose pas d'un bootsplash "natif", comprendre Slackware, Debian & co. Plus précisément, ce didacticiel n'intéresse ni les utilisateurs de Mandriva, ni ceux de RedHat, ni ceux de Fedora. Ces distributions ont déjà un bootsplash actif, y'a plus qu'à changer le thème. Pour cela, lisez la documentation de votre distribution ou faites comme moi en fin de didacticiel, mais dans ce cas, je ne garanti pas le résultat.

1. Pré-requis

2. Application du patch

Commencez par décompresser les sources de votre noyau, dans /usr/src/linux, en étant root par :
# cd /usr/src # tar xjvf linux-2.6.7.tar.bz2 # rm linux # ln -s linux-2.6.7 linux
Copiez et appliquez le patch à votre noyau :
# cp -a /ou/est/bootsplash-3.1.4-sp3-2.6.7.diff /usr/src/linux # cd /usr/src/linux # patch -p1 < bootsplash-3.1.4-sp3-2.6.7.diff

3. Configuration et compilation du noyau

Je suppose dans la suite que vous avez déjà un fichier de configuration (/usr/src/linux/.config) fonctionnel. Si ce n'est pas votre cas, reportez-vous aux didacticiels qui en parlent pour savoir comment faire. Vous devrez probablement en faire une sauvegarde au cas où ça se passait mal. Pour utiliser le bootsplash, vous devez activer le framebuffer dans votre noyau. Ceci peut se faire par recompilation de votre noyau, avec les options suivantes :
Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers Processor type and features ---> [*] MTRR (Memory Type Range Register) support Device Drivers ---> Block devices ---> <*> Loopback device support <*> RAM disk support (4096) Default RAM disk size [*] Initial RAM disk (initrd) support Graphics support ---> [*] Support for frame buffer devices [*] VESA VGA graphics support Console display driver support ---> [*] Video mode selection support <*> Framebuffer Console support Bootsplash configuration ---> [*] Bootup splash screen
Je mets également les options qui doivent absolument être décochée :
Device Drivers ---> Graphics support ---> < > nVidia Riva support Logo configuration ---> [ ] Bootup logo
Sauvez et lancez la compilation du noyau, par :
# make # make modules_install # cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.7 # cp System.map /boot/System.map-2.6.7 # cd /boot # mv vmlinuz vmlinuz.old # ln -sf /boot/vmlinuz-2.6.7 vmlinuz # rm System.map # ln -s System.map-2.6.7 System.map

4. Installation des utilitaires de bootsplash sous Debian

Pour debian, ajoutez la ligne suivante à votre /etc/apt/sources.list
deb http://www.bootsplash.de/files/debian unstable main
Puis tapez en root :
# apt-get update # apt-get install bootsplash sysv-rc-bootsplash
Le paquet sysv-rc-bootsplash va patcher les scripts de boot, pour que les animations fonctionnent. Bootsplash va installer les utilitaires et un thème par défaut dans /etc/bootsplash/themes.

5. Installation des utilitaires de bootsplash sous Slackware

Pour Slackware, téléchargez, le fichier et installez-le comme suite : # installpkg bootsplash-3.1-i486-2.tgz Ce paquetage va installer des utilitaires dans /sbin, des thèmes dans /etc/bootsplash/themes et des fichiers de configuration dans /etc/rc.d. Vous devez maintenant modifier manuellement les scripts de boot, pour activer les animations.

6. Application d'un thème

Chacun des paquets que vous avez installés, installe un thème par défaut. Ce thème ne correspond peut-être pas à votre personnalité ? voici un site, d'où vous pourrez télécharger moulte thèmes. J'ai choisi le thème 73labAllstar, mais y'en a d'autres. Pour l'installer tapez simplement dans un terminal en étant root :
# cd /etc/bootsplash/themes/ # tar -xjvf /où/est/Theme-73labAllstar.tar.bz2 # rm current # ln -sf 73labAllstar current
Il ne vous reste plus qu'à créer un initrd qui chargera le bootsplash en mémoire en même temps que le noyau. La commande à taper dépend de la résolution d'écran que peux supporter votre frameBuffer. Si vous l'ignorez, je vous conseille 800x600. Je vous donne les 4 lignes, tapez celle qui vous convient, mais n'en tapez qu'une seule. Si ça peut vous aider, chez moi le framebuffer fonctionne à une résolution de 1024x768 :
# splash -s -f /etc/bootsplash/themes/current/config/bootsplash-800x600.cfg > /boot/initrd-2.6.7 # splash -s -f /etc/bootsplash/themes/current/config/bootsplash-1024x768.cfg > /boot/initrd-2.6.7 # splash -s -f /etc/bootsplash/themes/current/config/bootsplash-1280x1024.cfg > /boot/initrd-2.6.7 # splash -s -f /etc/bootsplash/themes/current/config/bootsplash-1400x1050.cfg > /boot/initrd-2.6.7
Note :Pour certaines distributions, comme Debian Sarge, il est préférable de faire, par exemple en 800x600 :
# splash -s -f /etc/bootsplash/themes/current/config/bootsplash-800x600.cfg >> /boot/initrd-2.6.7
Cela a l'avantage de ne pas écraser la configuration déjà présente dans le fichier /boot/initrd-2.6.7, mais d'ajouter simplement la nouvelle.

7. Configuration du chargeur de boot

La configuration du chargeur de boot est assez simple, il suffit de lui indiquer l'initrd à charger ainsi que la résolution à laquelle il démarrera le noyau. Pour spécifier une résolution à un chargeur d'OS, le plus simple est de renseigner la variable vga avec le code de la résolution. Parmi les codes possibles, vous avez : vga=788 - pour 800 x 600 - 16 bits vga=791 - pour 1024 x 768 - 16 bits vga=794 - pour 1280 x 1024 - 16 bits vga=834 - pour 1400 x 1050 - 16 bits Vous ne devrez configurer qu'un seul chargeur d'OS, celui que vous utilisez pour démarrer votre Linux.

7.1 Configuration de Lilo

Comme à chaque fois que vous compilez un noyau, il est préférable de créer une nouvelle entrée dans votre /etc/lilo.conf. Dans cette nouvelle entrée vous indiquerez l'initrd à charger ainsi que la résolution à laquelle lilo démarrera le noyau. Voici comment j'ai fait chez moi :
label="Linux"
root = "/dev/hdb1"
image="/boot/vmlinuz-2.6.7"
initrd="/boot/initrd-2.6.7"
append="splash=silent"
read-only
vga="791"
Si vous la copiez telle quelle, ça ne marchera probablement pas chez vous. Vous devez l'adapter par mimétisme avec les autres entrées présentes dans votre /etc/lilo.conf. Quand vous avez enregistré vos modifications, tapez, toujours en étant root dans un terminal : lilo

7.2 Configuration de Grub

Comme à chaque fois que vous compilez un noyau, il est préférable de créer une nouvelle entrée dans votre /boot/grub/menu.lst. Dans cette nouvelle entrée vous indiquerez l'initrd à charger ainsi que la résolution à laquelle grub démarrera le noyau. Voici comment j'ai fait chez moi :
title Linux
root (hd1,0)
kernel (hd1,0)/boot/vmlinuz-2.6.7 splash=silent vga=791 root=/dev/hdb1
initrd /boot/initrd-2.6.7
Si vous la copiez tel quel, ça ne marchera probablement pas chez vous. Vous devez l'adapter par mimétisme avec les autres entrées présentes dans votre /boot/grub/menu.lst.

8. Redémarrage

C'est la fin, il ne vous reste plus qu'à redémarrer votre Linux et à baver devant votre bootsplash. Si ça ne fonctionne pas, pas de panique, venez en discuter sur le forum de Trustonme.