La Fondation a dû avoir les retours sur les dégâts que le Raspberry Pi occasionne aux cartes SD. C’est sans doute pour pallier à ce problème qu’elle a développé des moyens de s’affranchir de la carte SD, le maillon faible du Raspberry. Dyox vous propose ce tutoriel pour éliminer la carte micro SD du Raspberry Pi.
Boot simplifié sur USB avec les Raspberry Pi 1, 2 et 3
Nous devons cet article à Jean-François (@dyox), lecteur assidu et attentif du blog, et participant actif au forum framboise314. Il a publié ce tutoriel il y a quelques jours sur le forum.
Lexique
MSD : Mass Storage Device (pour dire disque dur ou clé USB)
DD : Disque Dur
Si c’est une nouvelle installation :Sinon, il faut refaire une image complète de la carte micro SD pour la mettre sur le MSD.
Les prérequis
- Un Raspberry Pi 3 (BCM2837)
- Une version de Raspian >= 2017-04-10 (actuellement 2017-07-05)
- Le nouveau bootcode.bin pour les Raspberry Pi (BCM2835), Raspberry Pi 2 (BCM2836) et si la méthode conventionnelle pour le Raspberry Pi 3 ne fonctionne pas.
Nota : Le tutoriel qui suit concerne le Raspberry Pi 3 avec une nouvelle installation de Raspian, en l’occurrence la version du 2017-07-05.
Tutoriel
Sur PC (pour ma part sous Windows) :
- Installez Raspian sur la SD ET ensuite sur le MSD avec la procédure conventionnelle.
- Reprogrammer l’OTP en ajoutant program_usb_boot_mode=1 à la fin du fichier config.txt de la carte SD. Pour cela, aucune difficulté. Bien que la SD possède au moins 2 partitions, seule la 1ère (la partition de boot), qui est en FAT32, est accessible sous Windows et donc le fichier config.txt peut être modifié sous Windows
- Démarrer le Raspberry Pi avec la carte microSD et on vérifier tout de suite la modification du registre 17 de l’OPT :
$ vcgencmd otp_dump | grep 17
17:3020000a la réponse doit être cette valeur, sinon il est inutile de continuer
On peut maintenant effacer ou commenter la ligne program_usb_boot_mode=1
Vous pouvez éteindre le Raspberry Pi et enlever la carte micro SD.
Branchez le MSD et démarrez le Raspberry Pi. Si le MSD est compatible, on boote dessus. Le temps de démarrage se situe entre 5 et 10s.
Les résultats
Pour ma part, cela fonctionne avec un -très vieux- DD 2,5 » 40Go (Momentus, 0,47A) PATA branché sur hub alimenté car directement sur le Raspberry Pi il « gratte », même avec son cordon double USB. Et je n’ai pas besoin de ralentir la séquence de boot (voir plus loin).
Si cela ne fonctionne pas pour vous voir la section dépannage.
Voilà c’est fini ! Votre Raspberry Pi peut maintenant booter sur USB et LAN, en plus de la micro SD bien sûr ! Si celle-ci est présente, elle reste prioritaire lors de la séquence de boot.
Dépannage
- Si cela ne fonctionne pas, essayez d’étendre la durée d’initialisation du MSD (5s au lieu de 2s) avec l’option program_usb_timeout=1 dans le config.txt.
- Augmentez l’intensité des ports USB avec l’option max_usb_current=1 dans le config.txt (1200mA au lieu de 600mA) pour un DD. Inutile car automatique sur la v3 !
- Essayez aussi avec le nouveau bootcode.bin. A mettre SEUL sur une carte microSD formatée en FAT32. Si cela ne fonctionne toujours pas, ajoutez un fichier timeout en plus pour étendre la durée d’initialisation du MSD à 6s.
- Si cela ne fonctionne toujours pas, alors le MSD n’est pas compatible.
Astuces
On peut raccourcir le délai de boot sur MSD en insérant une carte micro SD vierge (5s de gagnées)
Si le MSD est une clé USB, pensez à utiliser le système de fichier F2FS.
Pour en savoir plus
Lisez les articles pointés par des liens dans les sources, tout est bien documenté et expliqué en particulier sur https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/README.md
Pour info
Mes clés OCZ ATV USB2 32Go et INTEGRAL USB2 32Go (ci-dessus) n’ont pas fonctionné
Par contre cette clé Transcend 16 Go a fonctionné sans « artifice », comme mon DD.
Sur les Pi 1 et 2 et la manip du bootcode.bin modifié (pas besoin du fichier timeout ) :
Cette clé fonctionne, mes précédentes clés, toujours pas… et mon DD a toujours besoin de son hub.
Le boot sur le Raspberry Pi 3 avec NOOBS sur ma clé USB Transcend fonctionne également.
Bon maintenant, j’ai besoin de motivation
L’objectif est de modifier rpi-clone pour que le clonage se fasse sur MSD et si c’est une clé qui est détectée, celle-ci sera formatée en F2FS.
Conclusion
L’article sur le boot du Raspberry Pi 3 que j’avais publié en août 2016 n’est plus d’actualité car la Fondation a fait évoluer les méthodes de boot pour tous les Raspberry Pi.
Merci à Jean-François @dyox pour ce tutoriel publié sur le forum framboise314