[Pi] Boot depuis un SSD

Ayant fait l’acquisition d’un Pi 4 durant l’été, en vue de migrer mon cloud privé vers la dernière génération de Pi et de disposer d’un peu plus de RAM, je me suis donc intéressé à la manière de faire démarrer le Pi depuis un système stocké sur un disque SSD et non plus simplement sur une carte microSD. Disponible d’abord en version bêta, cette fonctionnalité est désormais accessible par défaut, au prix toutefois de quelques opérations de configuration, en fonction du moment où vous aurez fait l’acquisition du Pi.

De mon côté, la première étape a été la vérification de la version du contenu de la mémoire EEPROM du Pi et sa mise à jour. Pour cela préparation d’une carte microSD avec activation de ssh et configuration du Wifi automatiquement au démarrage. Après que le Pi soit apparu dans la liste des clients connectés à mon LAN, et ayant obtenu ainsi son IP, je m’y connecte donc en ssh. Une fois connecté, je lance une mise à jour du système, puis vérifie le contenu de la mémoire EEPROM, et déclenche sa mise à jour, celle-ci étant trop ancienne pour permettre le mécanisme de boot depuis un disque externe.

sudo apt-get install aptitude
sudo aptitude update
sudo aptitude upgrade
sudo rpi-eeprom-update
sudo rpi-eeprom-update -a
sudo reboot

Voici ci-dessous, ce que j’obtiens après mise à jour. De mémoire, pour bénéficier du boot externe, la valeur de CURRENT, doit à la date où j’écris, valoir 000138a1. En supposant que ceci correspond bien à un numéro de version, une version supérieure devrait faire l’affaire. Nous pouvons également considérer, qu’une date antérieure à celle de la version du 3 septembre 2020, ou plus généralement, une différence entre CURRENT et LATEST, sont des indications suffisantes de procéder à la mise à jour.

BCM2711 detected
VL805 firmware in bootloader EEPROM
BOOTLOADER: up-to-date
CURRENT: Thu 3 Sep 12:11:43 UTC 2020 (1599135103)
LATEST: Thu 3 Sep 12:11:43 UTC 2020 (1599135103)
FW DIR: /lib/firmware/raspberrypi/bootloader/critical
VL805: up-to-date
CURRENT: 000138a1
LATEST: 000138a1

Une fois cela fait, j’ai donc installé la version lite du Raspberry Pi OS (nouveau nom de raspbian si j’ai bien suivi). À noter que n’ayant pas réussi à réaliser l’installation avec l’installeur officiel, ni avec Etcher, je suis revenu à la bonne vieille méthode manuelle en utilisant dd. Une fois mon disque prêt, je le connecte au Pi, branche le Pi et attends de le voir se connecter au Wifi. Ce qu’il ne fera jamais. Après quelques recherches, je découvre qu’il est également nécessaire d’effectuer une modification de configuration pour changer l’ordre de boot. Retour donc de la carte microSD pour effectuer cette opération avec la commande suivante :

sudo -E rpi-eeprom-config --edit

Il faudra alors remplacer la ligne :

BOOT_ORDER=0x1

Par la valeur suivante pour la variable BOOT_ORDER.

BOOT_ORDER=0xf41

Il ne reste plus qu’à redémarrer, retirer la carte microSD, connecter le disque au Pi et le rebrancher. Après quelques minutes d’attente, le Pi apparaît sur mon LAN et quelques instants plus tard, je parviens à m’y connecter en ssh.

Tout est prêt pour la migration !

[Pi] Configuration SSH avant premier démarrage

On prend la même structure que pour la note sur la configuration du Wifi, et on recommence.

Une nouvelle fois, rien de nouveau pour la plupart d’entre nous, mais un moyen pour moi de retrouver facilement la syntaxe de la configuration à utiliser et le lien vers la documentation sur le site officiel.

Pour que le Pi au moment du premier démarrage, active automatiquement un accès SSH, et ne pas avoir à connecter clavier et écran, il suffit donc de créer dans le dossier boot de la carte SD, le fichier ssh. Le contenu du fichier n’a pas d’importance.

Profitons-en pour noter que l’utilisateur par défaut est l’utilisateur pi avec le mot de passe par défaut raspberry. Bien évident, à changer immédiatement lorsque l’on commence à faire autre chose que des tests et du prototypage ou encore que l’on expose le Pi en dehors du LAN.

[Pi] Configuration Wifi avant premier démarrage

Rien de nouveau pour la plupart d’entre nous, mais un moyen pour moi de retrouver facilement la syntaxe de la configuration à utiliser et le lien vers la documentation sur le site officiel.

Pour que le Pi au moment du premier démarrage, se connecte automatiquement au réseau, et ne pas avoir à connecter clavier et écran, il suffit donc de créer dans le dossier boot de la carte SD, le fichier wpa_supplicant.conf.

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=fr

network= {
  ssid="Nom du Wifi"
  psk="Mot de passe du Wifi"
}

Boot natif sur support de stockage USB pour raspberry pi 4 en bêta

Brève information qui mérite d’être mentionnée, puisque qu’une version bêta du boot direct sur un support de stockage USB a été annoncée via le forum de la fondation Raspberry Pi. Espérons que cette fonctionnalité quittera rapidement son statut de version bêta pour trouver sa place sur nos Pi.

RuneAudio comme lecteur de musique

A l’heure d’une réinstallation de RuneAudio, petit point sur la façon dont je profite de ma bibliothèque musicale numérique.

Commençons par planter le décor. L’intégralité de ma musique est stockée sur mon NAS et accessible via un partage samba. Pour la diffusion du son, je dispose d’une petite chaîne Hifi datant de l’époque du début des lecteurs MP3. Pas de connexion Bluetooth, pas de WiFi, pas de port USB, mais une entrée auxiliaire… et un lecteur cassette ! Pour faire le lien entre les deux composants, j’ai choisi un Raspberry Pi dans sa troisième version afin de disposer du WiFi intégré.

Pour la partie logicielle, j’ai testé différentes projets libres : Pi MusicBox, Volumio et RuneAudio. Les deux dernières solutions se distinguent particulièrement par leur interface et leurs fonctionnalités. Mon choix s’est en définitive porté vers RuneAudio dans sa version 0.4-beta. Version plutôt stable malgré son statut de beta. La recherche est le point noir, et retourne en permanence « undefined ». Le problème est connu, mais n’est pas forcément simple à corriger; d’après ce que j’avais pu lire en parcourant le forum.

Inventaire des composants avant montage (Écran tactile non visible).

Pour profiter au mieux du système, j’ai ajouté un écran tactile au Pi, afin de pouvoir contrôler et afficher la liste de lecture, sans avoir à passer par un autre périphérique externe. Le tout, assemblé dans un support  à charnière bien pratique. Par ailleurs, une application Android simple est disponible afin de piloter RuneAudio à partir de son téléphone sans avoir à passer par l’interface web via un navigateur (à condition d’être connecté sur le même réseau).

Mise en place du Pi.

Après presque deux ans d’utilisation, ce montage me donne entière satisfaction. Pas ou peu de problème jusqu’à ce que j’effectue des modifications de configuration du côté de mon routeur, et que la connexion automatique au WiFi devienne quasi impossible (d’où la réinstallation évoquée au début). Dernièrement, l’ajout d’une alimentation à interrupteur m’évite de devoir accéder à la multiprise pour couper l’alimentation du Pi et rends l’ensemble bien plus pratique. Je ne vais pas préciser ici toutes les fonctionnalités, avantages et inconvénients de RuneAudio, et je vous quitte donc sur une photo en situation.