🛠 Boot microSD/eMMC et chaîne de démarrage Amlogic

Hardkernel ODROID-C2 (Amlogic S905) · avance · Schéma : IMG-odroid-c2-avance-1-odroidc2-boot-emmc-recouvrement.svg — chaîne de boot BL1 → FIP → U-Boot puis système sur microSD ou module eMMC de l'ODROID-C2

Objetivos

Comprender y dominar la cadena de arranque propietaria de Amlogic del ODROID-C2 (BL1 firmado, FIP, U-Boot), migrar el sistema de una microSD a un módulo eMMC (mucho más rápido y fiable: bus HS200 frente a SDR50/SDR100 limitado en mainline), y saber rechazar un medio de reserva.

Material

Código completo

# 1) Copie integrale du systeme SD -> eMMC (depuis la carte qui boote sur SD)
sudo dd if=/dev/mmcblk0 of=/dev/mmcblk1 bs=16M status=progress conv=fsync
# (mmcblk0 = SD, mmcblk1 = eMMC — verifier avec lsblk avant !)

# 2) Refuser la zone de boot Amlogic sur le nouveau media si besoin :
#    BL1 sur les 442 premiers octets, puis secteur 1, U-Boot signe au secteur 97
DEV=/dev/mmcblk1; BL1=bl1.bin.hardkernel
sudo dd if=$BL1 of=$DEV conv=fsync bs=1 count=442
sudo dd if=$BL1 of=$DEV conv=fsync bs=512 skip=1 seek=1
sudo dd if=u-boot.bin.gxbb of=$DEV conv=fsync bs=512 seek=97
sync

# 3) Tete-etre headless : editer boot.ini (images vendor) —
#    setenv nographics "1" libere ~300 Mo de RAM

# 4) Redemarrer sur l'eMMC puis mesurer le gain :
sudo dd if=/dev/zero of=test.bin bs=1M count=256 oflag=direct conv=fdatasync && rm test.bin

Verificación esperada

Al retirar la microSD, la placa arranca sola desde el eMMC (visible en la consola serie: BL1/FIP/U-Boot y luego el kernel). La prueba dd pasa de unos pocos MB/s en una microSD barata a más de 100 MB/s en un eMMC HS200. La ROM de arranque de Amlogic siempre lee BL1 en primer lugar: sin la zona de arranque rechazada, ningún medio arranca.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales