Introduction Problème
Pour un nouveau projet, nous avons décidé d'utiliser le site Raspberry Pi Compute Module 5 (CM5) comme plateforme matérielle.
J'ai reçu un kit de développement comprenant
- Compute Module 5 (4 GB RAM and 32 GB eMMC)
- 27W USB-C Type-C PD Power Supply
- Compute Module 5 IO Board
- Antenna Kit
- Compute Module 5 IO Case
- 2 x HDMI® to HDMI® Cable
- Cooler for Compute Module 5
- USB-A to USB-C Cable.
Objectif
Pour simplifier le développement, j'ai voulu exécuter le logiciel système (raspiOS) à partir d'une carte microSD, puisque le site Compute Module 5 IO Board comprend un emplacement pour carte microSD.
J'ai utilisé Raspberry Pi Imager pour flasher le dernier Raspberry Pi OS sur une carte microSD, j'ai inséré la carte dans la fente de la carte IO et j'ai mis le système sous tension.
Cependant, au lieu de démarrer le système d'exploitation, l'écran affichait un message de type terminal disant "SD : card not detected", et le système ne démarrait pas.
Cause et effet
Après quelques recherches, j'ai trouvé l'explication dans la documentation du Raspberry Pi pour la fonction Compute Module 5:
- l'emplacement pour carte microSD (à utiliser uniquement avec les variantes Lite sans eMMC ; les autres variantes ignorent l'emplacement)
Cela signifie que le slot microSD n'est utilisable que sur la variante "Lite", qui n'inclut pas de stockage eMMC embarqué. Mon CM5 a 32 Go d'eMMC, donc l'emplacement SD est désactivé et ignoré pendant le démarrage.
Méthode correcte d'installation du logiciel système sur un CM5 avec eMMC
Pour installer le système d'exploitation sur un CM5 avec eMMC, suivez les instructions officielles pour l'installation du système d'exploitation sur un CM5 avec eMMC. setting up the IO Board.
Une étape cruciale consiste à placer un cavalier sur l'en-tête J2 de la carte IO. Le CM5 passe ainsi en mode de démarrage USB, ce qui permet à votre PC hôte d'accéder à l'eMMC comme à un périphérique de stockage de masse.
Problème avec rpiboot et la solution
Sur ma machine de développement (Ubuntu 22.04), j'ai d'abord essayé d'installer rpiboot avec :
sudo apt install rpiboot
Cependant, cette version ne fonctionnait pas correctement, probablement parce qu'elle était obsolète ou incompatible avec CM5.
J'ai donc dû compiler rpiboot à partir des sources. Suivez les étapes ici :
Clonez le dépôt officiel :
git clone --recurse-submodules --shallow-submodules --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
Installez les dépendances et construisez :
sudo apt install git libusb-1.0-0-dev pkg-config build-essential
make
Exécutez rpiboot
avec le CM5 connecté et le cavalier J2 en place :
sudo ./rpiboot -d mass-storage-gadget64
Le système détectera l'eMMC du CM5, et vous pouvez maintenant flasher le système d'exploitation dessus en utilisant Raspberry Pi Imager ou dd.
Résumé
- L'emplacement SD du CM5 ne fonctionne que sur les variantes Lite (sans eMMC).
- Pour flasher un CM5 avec de l'eMMC, vous devez :
** Mettre en place le cavalier J2.
** Utiliser rpiboot pour exposer l'eMMC via USB. - Si le rpiboot fourni ne fonctionne pas, construisez-le à partir des sources.
Une fois que c'est fait, vous pouvez flasher le Raspberry Pi OS directement sur l'eMMC comme s'il s'agissait d'une carte SD.