🛠 Premier démarrage d'un CM4 Lite depuis la microSD de l'IO Board
Objectifs
Monter un Compute Module 4 sur son IO Board et démarrer pour la première fois depuis la fente microSD — le chemin le plus simple quand on débute avec un CM4 Lite (sans eMMC). Vous apprendrez surtout à décoder un code de commande CM4 (format CM4xyzwww : x = sans-fil, y = RAM en Go, z = dizaines de Go d'eMMC) et la règle d'or du CM4 : un module avec eMMC ignore complètement la fente microSD, car l'eMMC est câblée sur le contrôleur SD primaire.
Matériel
- 1 × Raspberry Pi Compute Module 4 Lite (z=0 dans le code, p. ex. CM4004000 = sans wireless, 4 Go, pas d'eMMC)
- 1 × IO Board CM4 officiel (CM4IO, 160 × 90 mm, vendu séparément — le module nu ne fonctionne sans lui)
- 1 alimentation 12 V sur le connecteur barillet de l'IO Board (jusqu'à 26 V seulement si PCIe n'est pas utilisé)
- 1 carte microSD 8 Go minimum, 1 écran HDMI + câble, câble Ethernet, PC avec Raspberry Pi Imager
Code complet
Sur le PC, flasher Raspberry Pi OS 64 bits sur la microSD avec Raspberry Pi Imager (pré-réglages hostname, SSH et Wi-Fi conseillés). Vérifier qu'aucun jumper n'est sur J2 (nRPI_BOOT) — en place, il force le mode périphérique USB et le module ne démarre jamais seul. Insérer la SD, alimenter l'IO Board, brancher écran et réseau, puis au premier shell :
# Vérifier que le système est bien sur la microSD et l'identité du module
lsblk -o NAME,SIZE,MOUNTPOINT | head # /dev/mmcblk0p2 monté sur /
cat /proc/device-tree/compatible # attendu : raspberrypi,4-compute-module
vcgencmd versionboot # le bootloader charge bcm2711-rpi-cm4.dtb
dmesg | grep -iE 'mmc|emmc' # mmc0 = microSD ; aucune eMMC sur un Lite
vcgencmd measure_temp # throttle à 85 °C, à surveiller
Vérification attendue
lsblk montre la racine sur /dev/mmcblk0p2 ; /proc/device-tree/compatible contient raspberrypi,4-compute-module ; la LED ACT clignote pendant le boot puis s'éteint ; vcgencmd versionboot mentionne le DTB bcm2711-rpi-cm4.dtb (le repli sur bcm2711-rpi-4-b.dtb n'intervient que s'il manque).
Erreurs fréquentes
- Module non-Lite qu'on croit démarrer sur SD : un CM4 avec eMMC ignore totalement la fente microSD — si une SD pourtant valide ne boot pas, vérifiez le SKU (z=0 obligatoire).
- Jumper J2 (nRPI_BOOT) laissé en place : le module attend rpiboot sur le micro-USB au lieu de booter.
- Alimentation sous-dimensionnée : le rail 5 V doit tenir > 4,75 V (idéalement > 4,9 V) sous 2 A, sinon brownouts et corruption de SD.
- Confondre CM4 et CM4S : le CM4S (ancien format SODIMM) n'a ni PCIe, ni second HDMI, ni Ethernet embarqué.
Autres tutoriels pour cette carte
- GPIO du CM4 : comprendre les banks 1,8 V / 3,3 V avant de câbler
- Basculer le Wi-Fi du CM4 sur l'antenne externe U.FL (dtparam=ant2)
- Bootloader EEPROM du CM4 : maîtriser BOOT_ORDER via usbboot
- Ajouter une RTC au CM4 (PCF8523 sur I2C1 via dt-blob)
- Son sur CM4 : DAC I2S/PCM (PCM5102) sans prise jack
- Horodatage industriel : PTP IEEE 1588 sur le PHY Ethernet du CM4
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash