🛠 Installer le système sur l'eMMC : rkdeveloptool, MaskROM et gain de fiabilité
Objetivos
Los SKUs con eMMC incorporada incluyen una memoria 5.1 soldada (8/16/32/64 GB, sin zócalo: la capacidad se fija en el momento de la compra) configurada en 8-bit HS200 (mmc-hs200-1_8v, non-removable en el device tree mainline). Instalar el sistema en ella en lugar de usar una microSD aporta robustez (no hay contactos que se muevan) y, a menudo, más velocidad. El programa incluye dos métodos: desde un sistema que arranca desde SD con rkdeveloptool, y mediante el modo Rockusb (botón MaskROM + USB-C 1) desde un PC.
Material
- 1 Radxa ZERO 3W con eMMC (¡verifique su SKU!)
- 1 microSD con Radxa OS funcional (método 1)
- 1 PC con Linux y rkdeveloptool instalado (
sudo apt install rkdeveloptool) (método 2) - 1 cable USB-C de datos (no un cable de carga únicamente)
- La imagen
.imga instalar (el mismo archivo que en un tutorial de flasheo de SD)
Método 1 — desde el sistema arrancado desde SD
# La carte voit-elle son eMMC ?
lsblk # sda/mmcblk1 pour la SD, mmcblk2 (ou mmcblk1) pour l'eMMC
sudo fdisk -l # identifiez bien le périphérique eMMC AVANT d'écrire
# Copie directe image -> eMMC (ATTENTION : efface tout l'eMMC)
sudo unxz -k radxa-zero3_bookworm_kde_b1.img.xz
sudo dd if=radxa-zero3_bookworm_kde_b1.img of=/dev/mmcblk2 bs=4M status=progress conv=fsync
sudo sync && sudo poweroff
Luego retire la microSD: el orden de arranque microSD → eMMC → USB cambia automáticamente a la eMMC.
Método 2 — Rockusb desde el PC (tarjeta «vacía»)
# 1. Carte éteinte : maintenir le bouton MaskROM, brancher USB-C 1 vers le PC,
# relâcher. Le contrôleur RK3566 apparaît en mode téléchargement.
lsusb | grep -i rockchip # id 2207:350x
sudo rkdeveloptool ld # liste la mémoire (BootROM/eMMC détectés)
sudo rkdeveloptool wl 0 radxa-zero3_bookworm_kde_b1.img # écrit l'image à 0
sudo rkdeveloptool rd # redémarre la carte
Radxa también documenta la «factory upgrade tool» de Rockchip (Rockchip Batch/Android Tool) como alternativa gráfica; el flujo oficial low-level-dev describe rkdeveloptool.
Verificación esperada
lsblk -o NAME,MODEL,SIZE,ROTA muestra el sistema raíz en el dispositivo eMMC (root=PARTUUID... en mmcblk2). Prueba de velocidad aproximada: sudo hdparm -Tt /dev/mmcblk2 o dd if=/dev/zero of=test bs=1M count=512 oflag=direct — la eMMC HS200 supera típicamente a una SD clase 10 en accesos secuenciales/4K. dmesg | grep mmc confirma la negociación HS200 de 8 bits.
Errores frecuentes
- Escribir en el dispositivo equivocado: con SD + eMMC simultáneos, los índices mmcblk pueden permutarse según los kernels — verifique el tamaño (
lsblk) antes de cada dd. - Creer que la eMMC es extraíble: está soldada en las tarjetas de producción; no se puede «cambiar la tarjeta del SO» intercambiando un chip.
- Usar un cable USB-C de carga únicamente en modo MaskROM:
lsusbno muestra nada — pruebe con un cable de datos conocido. - Olvidar soltar/mantener el timing correcto de MaskROM: conectar sin mantener presionado el botón hace que la tarjeta arranque normalmente en lugar de entrar en Rockusb.
- Alimentar la tarjeta por otra fuente durante la escritura en la eMMC: déjela alimentada únicamente por el puerto USB del PC para evitar cortes a mitad de la escritura.
- No ejecutar sync antes de apagar: sistema eMMC corrupto; el dd anterior incluye conv=fsync, seguido de un sync explícito.
- eMMC llena: 8 GB en los SKUs pequeños — una imagen de escritorio completa + apt full-upgrade puede saturarla; considere la imagen server o un SKU más generoso.
Otros tutoriales para esta placa
- Premiers pas avec la Radxa ZERO 3W : flasher Radxa OS et démarrer
- Wi-Fi 6 et Bluetooth 5.4 : se connecter, choisir l'antenne, connaître sa révision
- GPIO avec libgpiod : faire clignoter une LED et lire un bouton
- Caméra MIPI CSI : brancher une Raspberry Pi Camera (OV5647/IMX219) sur la ZERO 3W
- Noyau mainline avec Armbian : vérifier le device tree, ajouter un overlay, lire le SARADC
- NPU 0,8 TOPS : inférence RKNN (YOLO, Whisper) sur la ZERO 3W
Ejemplos de código para esta placa
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash