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 🙂
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 🙂
Anth0kuto
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!
Les derniers articles par Anth0kuto (tout voir)
- Vidéo-surveillance multi-caméras avec le Raspberry Pi (Partie 2) - 15 mai 2016
- Vidéo-surveillance multi-caméras avec le Raspberry Pi (Partie 1) - 14 avril 2016
- Retour vers les années 90 : Doom, Quake et Duke Nukem - 23 février 2015