Normal que ça ne soit pas en standard diront les mauvaises langues, dans Debian faut tout faire à la main ! C'est bien sûr exagéré, mais sur ce coup les mauvaises langues auront quand même eu raison : il faut effectivement le faire à la main dans la console… Cependant, autant dans la dernière version Etch de Debian il fallait patcher le noyau ce qui peut en rebuter plus d'un, autant dans la future version Lenny qui devrait quand même bientôt sortir, c'est finalement assez simple.

La procédure est expliquée dans la page HowTo/Configure du wiki DebianEeePC : ça consiste à reconfigurer le démarrage du système et à définir le thème graphique à utiliser. Tout d'abord il faut évidemment installer splashy et ses thèmes graphiques, soit avec un gestionnaire graphique de logiciels, soit en ligne de commande :

$ sudo apt-get install splashy splashy-themes

Comme d'habitude sudo permet de se faire passer pour l'administrateur root alors que apt-get est un des outils possibles pour gérer les très nombreux logiciels du système. Ensuite il faut retoucher le fichier de configuration du logiciel démarrant le système, on supposera que vous avez suivi l'installation standard et donc mis grub. On lance donc l'édition du fichier /boot/grub/menu.lst toujours depuis la console :

$ sudo nano /boot/grub/menu.lst

Dans ce fichier il faut d'abord désactiver le menu de démarrage ainsi que l'attente du choix dans ce menu. Ça consiste à mettre à zéro l'option timeout :

timeout 0

et à ajouter l'option suivante par exemple en dessous :

hiddenmenu

Ensuite il faut rechercher la ligne suivante dans la section « Start Default Options » :

# kopt=root=/dev/sda1 ro

qui peut aussi apparaître sous cette forme :

# kopt=root=UUID=93638c32-e922-4818-a5c8-9d16c8597925 ro

Elle sert à définir les paramètres de démarrage à ajouter lorsque grub est reconfiguré, notamment lors de certaines mises à jour du système. Tout en la laissant commentée[1], il faut lui ajouter des options dont celles qui vont activer le démarrage graphique :

# kopt=root=/dev/sda1 ro quiet splash vga=786

ou si c'est la deuxième forme :

# kopt=root=UUID=93638c32-e922-4818-a5c8-9d16c8597925 ro quiet splash vga=786

La première, quiet, réduit le niveau d'information que donne le système au démarrage (verbosité); la seconde, splash, active le démarrage graphique (« splash screen »); enfin la dernière vga=786 indique quel mode graphique utiliser, c'est-à-dire la résolution et le nombre de couleurs[2]. Cette option est à adapter à votre couple écran + carte graphique. La valeur de 786 correspond à 640x480 pixels en millions de couleurs. Si vous ne voyez pas le rapport, c'est normal (!), la table des codes est un peu particulière comme l'indique la table VESA de la page Codes VGA pour Grub - Options et codes vga Hexadécimaux, Décimaux et Vesa ou encore le message VGA Resolution Codes for GRUB & Lilo. N'ayez pas peur de vous tromper car au pire grub vous indiquera au démarrage de la machine qu'il ne peut utiliser votre code VGA et vous affichera sa table, il faut juste savoir lire l'anglais…

Remarque : si vous ne voulez pas que toutes les variantes de démarrage exécutent le mode graphique (notamment la variante single qui lance une console de dépannage), vous ajouterez vos options plutôt dans la ligne « # defoptions= » dans la section ci-dessous et qui se trouve plus loin dans le fichier de configuration. Seul le démarrage par défaut sera alors affecté, les autres n'auront pas de splash.

## additional options to use with the default boot option, but not with the
## alternatives
## e.g. defoptions=vga=791 resume=/dev/hda5
# defoptions=

Une fois que le fichier grub est modifié, vous devez le mettre à jour avec la commande suivante :

$ sudo update-grub

C'est ce qui transférera les options que vous avez ajoutées dans les bonnes lignes du fichier menu.lst, vous évitant ainsi le risque de le corrompre[3] et donc de ne plus pouvoir démarrer votre machine ! Puis il faut définir un thème pour le démarrage graphique. On obtient la liste des thèmes en listant les répertoires de /etc/splashy/themes/ :

$ ls /etc/splashy/themes/
crux     debian4        debian-moreblue  default         moreblue-orbit
debian3  debian-cubism  debiansplashy    kubuntusplashy  ubuntusplashy

Le choix d'un thème se fait avec la commande splashy_config :

$ sudo splashy_config -s debian-moreblue
>Thème sélectionné: debian-moreblue         DONE 

Éventuellement vous pouvez essayer de tester le splash avec cette autre commande qui peut néanmoins échouer si votre serveur X n'est pas configuré pour :

$ sudo /sbin/splashy test

Enfin la dernière étape consiste à reconfigurer splashy :

$ sudo dpkg-reconfigure splashy
update-initramfs: Generating /boot/initrd.img-2.6.26-1-686

Comme on peut le voir, cette opération régénère l'image disque de démarrage du système /boot/initrd.img-2.6.26-1-686 afin vraisemblablement qu'elle contienne les images (graphiques) du démarrage graphique. Sachez aussi que la régénération peut être assez longue et qu'elle peut même échouer pour une raison inconnue. Dans ce cas il faudra invoquer manuellement update-initramfs avec l'option -t comme l'aura certainement indiqué le message d'erreur de l'opération précédente :

$ sudo update-initramfs -t

Il n'y a alors plus qu'à redémarrer votre machine pour en admirer le démarrage graphique. Il y a toutefois des restrictions qui peuvent apparaître à l'utilisation :

  • sur mon EeePC le démarrage du système est passé de 35s à 55s, je l'ai enlevé !
  • sur mon PC de bureau, aucun mode graphique n'était reconnu par grub, je l'ai aussi enlevé !
  • dans certains cas le splash est interrompu avant la fin du démarrage sans raison apparente

Bref, on commence à comprendre pourquoi Debian ne l'a pas inclus d'office à l'installation du système…

Pour terminer, en guise de détente, les plus curieux ne pourront s'empêcher de se demander comment créer son propre démarrage graphique, avec sa photo favorite. Le plus simple est de regarder comment ont fait les autres :

$ ls /etc/splashy/themes/debian-moreblue/
debian-moreblue-swirl.png  FreeSans.ttf  theme.xml

Il suffit donc de fournir la photo, la police de caractères et un fichier XML décrivant le démarrage. Le format de la photo est parfaitement standard comme on pouvait s'y attendre :

$ file /etc/splashy/themes/debian-moreblue/debian-moreblue-swirl.png -b
PNG image, 2048 x 1536, 8-bit/color RGBA, non-interlaced

Ici on s'est tout de même offert du 2048x1536 pixels en millions de couleurs…[4]. Donc en gros il n'y a qu'à copier le répertoire, écraser l'image et changer son nom dans le fichier XML, facile !

Notes

[1] avec le caractère dièse (#) en début de ligne

[2] d'ailleurs si les couleurs ne vous paraissent pas bien retranscrites, c'est peut-être parce que le nombre de couleurs choisi était trop faible

[3] puisque vous n'êtes intervenu que dans les commentaires

[4] 8 bits sur les 4 canaux RGBA : rouge, vert, bleu et transparence alpha