🛠 Démarrer le CM5 sur un SSD NVMe dans le socket M.2 de la CM5IO

Raspberry Pi Compute Module 5 (compute-module-5) · avance · Schéma : IMG-compute-module-5-avance-1-boot-nvme-m2-cm5io.svg — CM5IO Board avec un SSD NVMe M.2 M-key (2280) vissé dans le socket ; flèches : copie du système eMMC vers NVMe avec rpi-clone, puis écriture de BOOT_ORDER=0xf641 dans l'EEPROM via rpiboot depuis un PC hôte.

Objectifs

Le socket M.2 M-key (2230 à 2280) de la CM5IO est câblé sur l'hôte PCIe Gen 2 x1 (5 Gb/s) du BCM2712, et la documentation officielle fait du NVMe un périphérique de boot de première classe : BOOT_ORDER=0xf6. Ce tuto installe le système sur NVMe et reprogramme l'EEPROM du module (BOOT_ORDER=0xf641 : NVMe, puis SD/eMMC en repli) via le flux usbboot recovery — le seul supporté sur Compute Module, recovery.bin n'étant jamais exécuté depuis le stockage.

Matériel

Code complet

# --- Côté CM5 : vérifier le SSD puis cloner le système dessus ---
sudo apt install -y nvme-cli git
lsblk | grep nvme                       # nvme0n1 doit apparaître
sudo nvme list
git clone https://github.com/billw2/rpi-clone && cd rpi-clone
sudo ./rpi-clone -f nvme0n1             # copie boot + rootfs vers le NVMe

# --- Côté hôte : reprogrammer l'EEPROM (module en mode recovery, J2 posé) ---
cd usbboot/recovery
cat > boot.conf <<'EOF'
[All]
BOOT_ORDER=0xf641
EOF
./update-pieeprom.sh
sudo ../rpiboot -d .                    # écrit l'EEPROM (EEPROM_nWP non verrouillé)

# --- Retour sur le CM5 : retirer J2, alimenter, vérifier la racine NVMe ---
lsblk -o NAME,SIZE,MOUNTPOINT | head
df -h /

Vérification attendue

Après retrait du jumper et reboots, df -h / et lsblk montrent la racine sur /dev/nvme0n1p2 ; cat /proc/cmdline contient root=/dev/nvme0n1p2 ; le boot reste possible en repli SD/eMMC si le NVMe est retiré (dernier nibble 1). vcgencmd bootloader_version reflète le nouveau build.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels