Le démarrage du Raspberry Pi est souvent sinistre… Toutes ces lignes de code affichées dans un flot ininterrompu peuvent vous rendre dépressif ! Alors qu’on pourrait afficher de jolies photos d’oiseaux, de paysages de rêve ou encore une vidéo d’un bon groupe de métal pour se mettre dans l’ambiance 🙂

Dans ce tutoriel, je vais vous expliquer trois façons d’améliorer graphiquement l’écran de chargement de votre framboise :

En terme de prérequis, c’est simple ! Un Raspberry (modèle A, B ou B+) et un système Raspbian (ou tout autre système basé sur Debian pour Raspberry).

Avant de commencer, il est toujours bon de mettre à jour sa distribution :
sudo apt-get update
sudo apt-get upgrade

C’est parti !

Une image, une !

La première étape consiste à créer le script qui va charger l’image au démarrage du système !

Pour cela, prenez votre éditeur de texte favori (nano, vi,…) pour ouvrir le fichier (vide) « /etc/init.d/asplashscreen » :

sudo nano /etc/init.d/asplashscreen

Ajouter le code suivant :

#! /bin/sh
### BEGIN INIT INFO
# Provides:          asplashscreen
# Required-Start:
# Required-Stop:
# Should-Start:      
# Default-Start:     S
# Default-Stop:
# Short-Description: Show custom splashscreen
# Description:       Show custom splashscreen
### END INIT INFO
do_start () {
/usr/bin/fbi -T 1 -noverbose -a /etc/init.d/bootsplash.png    
exit 0
}
case "$1" in
start|"")
do_start
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop)
# No-op
;;
status)
exit 0
;;
*)
echo "Usage: asplashscreen [start|stop]" >&2
exit 3
;;
esac
:

Mettre les droits d’exécution au script :
sudo chmod a+x /etc/init.d/asplashscreen

Indiquer au système de lancer le script au démarrage :
sudo insserv /etc/init.d/asplashscreen

Ce script nécessite deux éléments indispensables pour fonctionner :

  • une image à afficher : /etc/init.d/bootsplash.png
  • le programme permettant de l’afficher : fbi
Sélection de l’image

Quoi de mieux qu’internet pour trouver l’image qui embellira au mieux votre Raspberry (Google Images, Flickr,…). Je vous conseille de chercher une image au format « .png » qui est un format libre et ouvert.

Dès que c’est fait, téléchargez l’image via la commande suivante (en remplaçant « lien_image » par l’url pointant vers votre image) :
sudo curl -o /etc/init.d/bootsplash.png lien_image
L’image est enregistrée sous le nom bootsplash.png dans le dossier /etc/init.d.

Le programme FBI

Pour afficher notre belle image, nous utiliserons le programme FBI, pour « linux framebuffer imageviewer ». À ne pas confondre avec les comiques du Federal Bureau of Investigation… FBI permet d’afficher des images directement dans la console via l’utilisation du framebuffer linux (fbdev).

Pour l’installer :
sudo apt-get install fbi

Pour finir, redémarrez le système :
sudo reboot

Maintenant, vous devriez obtenir une belle image au démarrage de votre framboise 🙂

20141108_010

Une ça ne suffit pas ?

Pour le diaporama, pas de grosses différences avec la méthode précédente !

Commencer par créer un dossier vide dans « /etc/init.d » :
sudo mkdir /etc/init.d/diaporama

Ajouter des images dans ce dossier de la même manière qu’avant :
sudo curl -o /etc/init.d/diaporama/image1.png lien_image

Ouvrir le script « /etc/init.d/asplashscreen » et remplacer la ligne :
/usr/bin/fbi -T 1 -noverbose -a /etc/init.d/bootsplash.png
par
/usr/bin/fbi -T 1 -t 4 -noverbose -a /etc/init.d/diaporama/*.png
L’option « -t » représente la durée des transitions en secondes entre chaque image (ici 4 secondes).

Voilà le travail 🙂

Vous préférez une vidéo ?!

Pas de problème ! le client est roi 😀

Création du script

Première étape : ouvrir le fichier « /boot/cmdline.txt » :
sudo nano /boot/cmdline.txt

Ajouter le mot « quiet » à la fin de la première ligne :

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait quiet

Ouvrir le script « /etc/init.d/asplashscreen » :
sudo nano /etc/init.d/asplashscreen

Ajouter le code suivant :

#! /bin/sh
### BEGIN INIT INFO
# Provides:          asplashscreen
# Required-Start:
# Required-Stop:
# Should-Start:      
# Default-Start:     S
# Default-Stop:
# Short-Description: Show custom splashscreen
# Description:       Show custom splashscreen
### END INIT INFO
do_start () {
omxplayer /etc/init.d/bootsplash.mp4 &  
exit 0
}
case "$1" in
start|"")
do_start
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop)
# No-op
;;
status)
exit 0
;;
*)
echo "Usage: asplashscreen [start|stop]" >&2
exit 3
;;
esac
:

Mettre les droits d’exécution au script :
sudo chmod a+x /etc/init.d/asplashscreen

Indiquer au système de lancer le script au démarrage :
sudo insserv /etc/init.d/asplashscreen

Sélection de la vidéo

Il faut maintenant télécharger une vidéo sur le Raspberry. Nous allons le faire via des lignes de commande car c’est toujours plus gratifiant qu’en passant uniquement par le navigateur 🙂

Pour mon Raspberry, j’ai choisi la vidéo suivante disponible sur Vimeo :

« LOAD » from Brian Sørensen.

Certains d’entre vous (les plus vieux :p) verseront peut être une petite larme de nostalgie…

Pour la télécharger, pas besoin de s’embêter ! Nous allons utiliser le programme youtube-dl qui permet de télécharger des vidéos en ligne directement sur son ordinateur.

Pour l’installer, puis le mettre à jour :
sudo apt-get install youtube-dl
sudo youtube-dl -U

Lancer la commande suivante en remplaçant « lien_video » par l’url vers la page où se trouve la vidéo :
sudo youtube-dl -o "/etc/init.d/tmpbootsplash.mp4" -f mp4 lien_video
La vidéo est enregistrée dans le dossier « /etc/init.d » sous le nom « tmpbootsplash.mp4 » au format MP4.

Pour télécharger la vidéo précédente provenant de Vimeo :
sudo youtube-dl -o "/etc/init.d/tmpbootsplash.mp4" -f mp4 http://vimeo.com/66599774

Ajuster la durée

Il faut généralement ajuster la durée de la vidéo pour que ça colle à la durée de chargement du système. Le programme avconv permet de manipuler les vidéos via des opérations d’encodage/décodage (fork de FFmpeg). Il a l’avantage d’être installé par défaut sur toutes les distributions Raspbian 🙂

Taper la commande suivante en remplaçant « debut_video » par le nombre de secondes depuis le début de la vidéo, et « duree_video » le nombre de secondes de la vidéo que vous voulez extraire :
sudo avconv -i /etc/init.d/tmpbootsplash.mp4 -ss debut_video -t duree_video -codec copy /etc/init.d/bootsplash.mp4
La vidéo est enregistrée dans le dossier « /etc/init.d/ » sous le nom « bootsplash.mp4 ».

Ci-dessous, j’ai extrait une vidéo d’une minute démarrant à la 8ème seconde :
sudo avconv -i /etc/init.d/tmpbootsplash.mp4 -ss 8 -t 60 -codec copy /etc/init.d/bootsplash.mp4

Supprimer la vidéo temporaire :
sudo rm /etc/init.d/tmpbootsplash.mp4

Pour finir, redémarrer le système :
sudo reboot

Voilà ce que ça donne 🙂

Forum_Lien

Anth0kuto

Anth0kuto

gérant chez Byprog
Administrateur

Freelance Full-Stack Développeur, plus d'infos sur byprog.com !

Fervent linuxien depuis plus de 10 ans, je suis passionné par l'univers de l'open source et par la programmation en particulier. Ma mission si vous l'acceptez: vous emporter dans d'autres contrées!
Anth0kuto
La µSD, toute une Mount-agne (Partie 4)
Faire son Popcorn Time en 10 min