🛠 Booter sur NVMe, eMMC ou SD et récupérer une carte bloquée
Objectifs
Installer le système sur le SSD NVMe M.2 (PCIe 3.0 x2, environ 1600 Mo/s mesurés à la sortie) et maîtriser la chaîne de démarrage particulière du M1 : Boot ROM RK3568, flash SPI NOR 16 Mo préchargée avec Petitboot, et switch physique SPI Boot Select. Savoir aussi revenir en arrière (SD de secours).
Matériel
- ODROID-M1, SSD NVMe M.2, carte microSD avec Armbian (archive.armbian.com/odroidm1)
- Alimentation 12 V/2 A ; accès à la console série ou HDMI pour observer le boot
- >
Code complet
#!/usr/bin/env bash
set -euo pipefail
# 1) Démarrer sur la SD, vérifier que le NVMe est vu (nvme0n1)
lsblk -o NAME,SIZE,MODEL,TRAN
sudo apt-get install -y nvme-cli && sudo nvme list
# 2) Copier le système SD vers le NVMe avec le bootloader
sudo armbian-install -o current -t nvme
# 3) Éteindre, mettre le switch SPI Boot Select en position SPI,
# retirer la SD, rallumer : Petitboot propose l'entrée NVMe.
sudo poweroff
# Récupération : switch en position non-SPI + SD Armbian neuve
# -> la carte reboote sur la SD, le NVMe reste lisible pour diagnostic.
Vérification attendue
Après retrait de la SD, le système démarre sur /dev/nvme0n1 (df -h /, lsblk montre la racine sur nvme0n1) ; un dd de lecture atteint plusieurs centaines de Mo/s, cohérent avec le PCIe 3.0 x2.
Erreurs fréquentes
- Oublier de basculer le SPI Boot Select : avec Petitboot actif, le comportement SD/eMMC surprend les utilisateurs.
- Retirer la SD avant d'avoir installé le bootloader sur le NVMe : plus aucun système amorçable.
- SSD de trop grande longueur dans le port M.2 : les longueurs supportées ne sont pas confirmées par source accessible (certains évoquent 42 mm, des tests CNX montrent du 2280).
- Alimentation instable pendant l'écriture du bootloader : corruption, recommencer depuis la SD.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash