🛠 Le firmware caché : mettre à jour le bridge STM32H7 M7 qui expose les périphériques à Linux

Arduino Portenta X8 · avance · Schéma : IMG-portenta-x8-avance-1-portenta-x8-firmware-bridge-m7.svg — architecture logicielle de la Portenta X8 en trois étages : conteneurs Docker en haut, noyau Linux avec modules x8h7_* au centre, firmware STM32H747 M7 en bas relié au cœur M4 Arduino, flèche adb push du fichier STM32H747AII6_CM7.bin vers la carte, bouton poussoir 10 s à côté

Objetivos

Bajo la superficie de la X8 trabaja un tercer sistema que el IDE nunca ve: el Cortex-M7 del STM32H747XI ejecuta un firmware bridge propietario de Arduino (repositorio arduino/portentax8-stm32h7-fw, última release 0.0.3, octubre de 2023) «normalmente invisible para el usuario», que mapea todos los periféricos del MCU como periféricos de Linux a través de los módulos del kernel x8h7_\* (repositorio portentax8-x8h7). Cuando este firmware está desincronizado, los periféricos del lado de Linux fallan sin que el sketch M4 tenga nada que ver. Este tutorial: diagnóstico, actualización limpia y conocimiento de los bugs abiertos (CAN TX stall).

Hardware

Código completo

# 1. Telecharger le binaire de firmware M7 (releases du depot officiel)
#    puis le pousser sur la carte :
adb push STM32H747AII6_CM7.bin /home/fio

# 2. Installer la mise a jour dans le STM32H747
adb shell
fio@portenta-x8:~$ cd /home/fio
fio@portenta-x8:~$ sudo ./399-install-update

# 3. Reboot : maintenir le bouton poussoir embarque ~10 s

# 4. apres reboot, verifier l'etat general
sudo journalctl -fu m4-proxy        # le pont RPC doit repasser au vert
lsmod | grep x8h7                   # modules bridge charges
dmesg | grep -i x8h7                # traces du probe des peripheriques

# Optionnel : dashboard Linux Wizard depuis le PC
#   adb forward tcp:8080 tcp:80  ->  http://localhost:8080

Verificación esperada

Después de 399-install-update y el reinicio con el botón (10 s), los módulos x8h7_* están cargados (lsmod), el servicio m4-proxy se reinicia correctamente y las llamadas RPC vuelven a funcionar. El procedimiento es exactamente el del tutorial oficial image-flashing; el dashboard Linux Wizard ofrece una visión general del estado de la placa. Es lo primero que debes hacer antes de culpar a tu sketch cuando «el RPC ya no funciona en absoluto».

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales