🛠 Console série UART2 à 1,5 Mbaud : debugger U-Boot et récupérer une carte briquée

Radxa ZERO 3W · avance · IMG-rz3w-avance-8-rz3w-uart-debug-uboot-recovery.svg — Radxa ZERO 3W avec adaptateur USB-TTL 3,3 V câblé sur les broches 8 (TX) / 10 (RX) et GND, terminal picocom à 1500000 affichant le boot U-Boot ; en médaillon, le bouton MaskROM et le branchement USB-C 1 vers un PC pour le mode Rockusb.

Objectifs

Quand la carte ne démarre plus (overlay raté, mise à jour interrompue, eMMC corrompue), la console série est le fil d'Ariane. Sur la ZERO 3W, elle siège sur UART2_M0, broches 8 (TX) / 10 (RX) du connecteur 40 broches, à 1500000 bauds 8N1 — et c'est AUSSI la console U-Boot par défaut. Ce tuto couvre le câblage USB-TTL, l'observation de la chaîne de boot, l'interruption d'U-Boot, le piège documenté de l'activation d'UART2 en UART applicatif (une entrée parasite peut empêcher le boot !) avec son contournement officiel, et la récupération finale via MaskROM + Rockusb.

Matériel

1) Écouter le boot

sudo picocom -b 1500000 /dev/ttyUSB0     # ou : sudo minicom -D /dev/ttyUSB0 -b 1500000

Branchez l'alimentation : vous devez voir BootROM puis U-Boot (console par défaut sur UART2_M0 à 1,5 Mbaud), le noyau, puis le login. Un écran de caractères bizarres = mauvais débit (le réflexe n°1 est le 115200 hérité d'autres cartes — ici c'est 1 500 000).

2) Interrompre U-Boot

Pressez une touche pendant le countdown : vous atterrissez dans la console U-Boot (=>). Commandes de diagnostic sans risque : version, mmc info, mmc list, printenv. Évitez toute écriture (mmc write, mw) sans savoir exactement ce que vous faites.

3) Le piège documenté : UART2 en UART applicatif

Radxa avertit (page hardware-interface) : activer UART2_M0 comme port série normal via les overlays rsetup expose la broche d'entrée à des signaux qui peuvent être interprétés par la console U-Boot — des entrées parasites peuvent interrompre le boot et l'appareil peut ne plus démarrer. Le contournement officiel passe par la configuration U-Boot :

sudo nano /etc/default/u-boot    # retirer la console série de la ligne de boot U-Boot
sudo u-boot-update               # regenre extlinux/uEnv avec la nouvelle config
sudo reboot

4) Dernier recours : MaskROM + Rockusb

# Carte eteinte : maintenir le bouton MaskROM, brancher USB-C 1 vers le PC, relacher
lsusb | grep -i 2207                 # le RK3566 est en mode Rockusb (vendor 2207)
sudo rkdeveloptool ld                # detection BootROM/eMMC
sudo rkdeveloptool wl 0 system.img    # reecrit l'image complete sur l'eMMC
sudo rkdeveloptool rd                 # redemarre

Vérification attendue

La chaîne complète BootROM -> U-Boot -> kernel -> login défile à l'écran série. Après le workaround UART2, le boot n'est plus jamais interrompu par un fil qui traîne sur la broche 10. Après recovery Rockusb, la carte reboote sur une image neuve.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels