🛠 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é

Objectifs

Sous la surface de la X8 travaille un troisième système que l'IDE ne voit jamais : le Cortex-M7 du STM32H747XI exécute un firmware bridge propriétaire Arduino (dépôt arduino/portentax8-stm32h7-fw, dernière release 0.0.3, octobre 2023) « normalement invisible à l'utilisateur », qui mappe tous les périphériques du MCU en périphériques Linux via les modules noyau x8h7_\* (dépôt portentax8-x8h7). Quand ce firmware est désynchronisé, les périphériques côté Linux tombent sans que le sketch M4 y soit pour quoi que ce soit. Ce tuto : diagnostic, mise à jour propre, et connaissance des bugs ouverts (CAN TX stall).

Matériel

Code complet

# 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 à 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. après reboot, vérifier l'état 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

Vérification attendue

Après 399-install-update et le reboot au bouton (10 s), les modules x8h7_* sont chargés (lsmod), le service m4-proxy redémarre proprement et les appels RPC refonctionnent. La procédure est exactement celle du tuto officiel image-flashing ; le dashboard Linux Wizard donne une vue d'ensemble de l'état de la carte. C'est la première chose à faire avant de accuser ton sketch quand « le RPC ne marche plus du tout ».

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels