🛠 Boot sur microSD et eMMC, procédure de recouvrement

ODROID-C4 (Hardkernel) · avance · Schéma : IMG-odroid-c4-avance-1-odroidc4-boot-emmc.svg — ODROID-C4 en coupe fonctionnelle : emplacement microSD sur le bord, connecteur eMMC avec son petit levier de sélection, flèches de priorité de boot vers le SoC S905X3.

Objetivos

Comprender la cadena de arranque Amlogic del ODROID-C4 (BL1 en la OTP del SoC, blob propietario BL2/DDR, y luego U-Boot), instalar Armbian en una microSD, migrar el sistema a un módulo eMMC (hasta 256 GB, controlado en HS200 bajo mainline) y saber cómo recuperarse de una tarjeta corrupta. Esta es la base de cualquier despliegue fiable 24/7.

Material

Código completo

#!/usr/bin/env bash
# 1) Écrire l'image sur la microSD (périphérique à vérifier !)
zcat Armbian_*_Odroidc4_bookworm_current_*.img.xz | sudo dd of=/dev/sdb bs=4M status=progress conv=fsync
sync
# 2) Démarrer sur SD, puis identifier les stockages
lsblk -o NAME,SIZE,MODEL,MOUNTPOINT   # mmcblk0 = eMMC, mmcblk1 = SD (typique)
cat /proc/device-tree/memory@0/reg | xxd | tail -1  # vérifier les 4 GB vus
# 3) Cloner SD -> eMMC (carte NE DOIT PAS être la racine active)
sudo dd if=/dev/mmcblk1 of=/dev/mmcblk0 bs=16M status=progress conv=fsync
sync && sleep 5
# 4) Redémarrer éjecté-SD pour valider le boot eMMC ; en cas d'échec,
#    remettre la SD de secours : elle reprend la main (boot de repli).
sudo poweroff

Verificación esperada

Tras la escritura, el LED azul pasa del modo heartbeat a un ritmo lento una vez que el sistema se inicia; lsblk muestra la raíz en mmcblk1p2 (SD) y luego en mmcblk0p2 tras la migración. free -h debe confirmar ~4 GB (o 2 GB según la SKU) — si solo muestra 1 GB, el bootloader no ha corregido el nodo de memoria del DTS. hdparm -Tt /dev/mmcblk0 compara SD y eMMC (HS200).

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales