🛠 Maîtriser la chaîne de boot SD/eMMC/SPI NOR et le recouvrement
Objectifs
Comprendre et maîtriser la chaîne de boot spécifique à l'ODROID-N2 : un interrupteur glissant SW1 sélectionne le chemin SPI NOR ou eMMC/SD ; une flash SPI NOR de 8 Mo (Macronix MX25U6435F) peut accueillir le mainline U-Boot flashé par flashcp (procédé Armbian, u-boot-spi.bin vers /dev/mtd0). Le but : booter sur eMMC, garder la SD comme secours, et savoir récupérer une carte qui ne démarre plus. Attention au piège n°1 : les broches eMMC D4–D7 sont partagées avec le SPI NOR — activer le SPI exige un DTB dédié (-spi) et la bonne position de SW1. Note : pas de NVMe sur N2/N2+ (le stockage rapide passe par l'eMMC amovible ou USB 3.0, ~340 Mo/s mesurés).
Matériel
- ODROID-N2/N2+, microSD (secours) + module eMMC Hardkernel (système principal)
- Alimentation 12 V/2 A ; accès console série via le header debug 4 broches (conseillé)
- Image Armbian « server » écrite sur les deux supports (balenaEtcher ou
dd)
Code complet
# 1. Premier boot sur SD (SW1 en position SD/eMMC), puis installation eMMC :
sudo armbian-install -t emmc # copie le système vers l'eMMC
# 2. (Avancé) Flasher U-Boot mainline dans le SPI NOR — ATTENTION :
# il faut le DTB « -spi » (bus 4 bits) ET SW1 en position SPI.
sudo apt install mtd-utils
fdtget /boot/dtb/amlogic/*.dtb / compatible # vérifier le DTB actif
cat <<'EOF' | sudo tee /boot/armbianEnv.txt
fdtfile=amlogic/meson-g12b-odroid-n2-plus-spi.dtb
EOF
sudo flashcp -v u-boot-spi.bin /dev/mtd0
# 3. Recouvrement : SD de secours insérée, SW1 côté SD/eMMC, alimenter.
# Si l'eMMC est corrompue : booter la SD puis réécrire l'eMMC.
sudo dd if=Armbian.img of=/dev/mmcblk1 bs=4M status=progress oflag=sync
Vérification attendue
Après armbian-install, retirer la SD et redémarrer : la carte boote sur l'eMMC (vérifier lsblk — / sur mmcblk1 ou équivalent). Avec U-Boot dans le SPI NOR et SW1 côté SPI, la console série affiche le banner U-Boot avant même la lecture de la SD. Le recouvrement fonctionne : avec la SD de secours, la carte redémarre quoi qu'il arrive sur l'eMMC.
Erreurs fréquentes
- Oublier que SW1 précède tout : mauvaise position = la carte ne voit ni l'eMMC ni le SPI, écran noir.
- Activer le SPI sans le DTB
-spi: conflit de broches eMMC/SPI, eMMC illisible (problème connu n°1 de la carte). - Confondre N2 et N2+ : U-Boot annonce
n2_plusmais le kernel attendn2-plus— Armbian patche ça, une image tierce peut échouer au boot. - Retirer l'eMMC sous tension : le module est amovible mais pas hot-plug.
- Image Android avec U-Boot mainline : les images Android exigent le bootloader vendor Amlogic, ne pas mélanger.
- >
Autres tutoriels pour cette carte
Exemples de code pour cette carte
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash