🛠 Booter sur NVMe, eMMC ou SD et récupérer une carte bloquée
Objetivos
Instalar el sistema en el SSD NVMe M.2 (PCIe 3.0 x2, aproximadamente 1600 MB/s medidos a la salida) y dominar la cadena de arranque particular del M1: Boot ROM RK3568, flash SPI NOR de 16 MB precargada con Petitboot y conmutador físico SPI Boot Select. También saber cómo volver atrás (SD de respaldo).
Material
- ODROID-M1, SSD NVMe M.2, tarjeta microSD con Armbian (archive.armbian.com/odroidm1)
- Fuente de alimentación de 12 V/2 A; acceso a la consola serie o HDMI para observar el arranque
- >
Código completo
#!/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.
Verificación esperada
Tras retirar la SD, el sistema arranca en /dev/nvme0n1 (df -h /, lsblk muestra la raíz en nvme0n1); una lectura con dd alcanza varios cientos de MB/s, coherente con PCIe 3.0 x2.
Errores frecuentes
- Olvidar cambiar el SPI Boot Select: con Petitboot activo, el comportamiento de SD/eMMC sorprende a los usuarios.
- Retirar la SD antes de haber instalado el gestor de arranque en el NVMe: ya no queda ningún sistema arrancable.
- SSD demasiado largo para el puerto M.2: las longitudes admitidas no están confirmadas por fuentes accesibles (algunos mencionan 42 mm, pruebas de CNX muestran 2280).
- Alimentación inestable durante la escritura del gestor de arranque: corrupción, repetir desde la SD.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash