🛠 Flasher l'eMMC d'un CM3 par USB avec rpiboot

Raspberry Pi Compute Module 3 (CM3 / CM3L) · intermediaire · Schéma : un PC hôte relié en micro-USB au port device de la carte CMIO3, un module CM3 inséré, le cavalier EMMC_DISABLE_N posé ; le module apparaît comme disque USB.

Objectifs

Écrire une image système directement dans les 4 Go d'eMMC soudés d'un CM3, sans carte SD. Le BCM2837 n'a pas d'EEPROM de bootloader : à la mise sous tension il cherche bootcode.bin sur l'eMMC, puis en cas d'échec attend le code de démarrage sur USB. En reliant EMMC_DISABLE_N à la masse, on déconnecte physiquement l'eMMC (broche SDCMD) et on force ce mode USB device, où le module s'énumère comme disque de masse USB piloté par rpiboot (dépôt officiel raspberrypi/usbboot).

Matériel

Code complet

# Sur le PC hôte (Linux) :
git clone https://github.com/raspberrypi/usbboot
cd usbboot && make && sudo ./rpiboot     # le CM3 apparaît comme disque USB

lsblk                                    # repérer le périphérique, p. ex. /dev/sdb
lsblk /dev/sdb                           # vérifier la taille (~4 Go pour un CM3)

sudo dd bs=4M conv=fsync status=progress \
  if=2024-xx-xx-raspios-bookworm-armhf.img of=/dev/sdb
sync

Retirer le cavalier EMMC_DISABLE_N, re-alimenter : le module démarre sur son eMMC. Le firmware réactive l'eMMC via EMMC_EN_N_1V8 pendant la programmation USB (datasheet §8).

Vérification attendue

Après sudo ./rpiboot, lsblk montre un nouveau disque d'environ 4 Go ; après dd et redémarrage sans le cavalier, le bureau Raspberry Pi OS s'affiche en HDMI et lsblk sur le CM3 montre la racine root sur /dev/mmcblk0.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels