🛠 Premiers pas : comprendre le monstre à 9 cœurs et entrer dans Linux via ADB
Objectifs
Découvrir l'Arduino Portenta X8 (SKU ABX00049, 223,00 € sur la boutique officielle en octobre 2026) : pas une simple carte Arduino, mais deux produits industriels dans un seul module de 66 × 25 mm — « pas moins de 9 cœurs » selon Arduino. D'un côté un NXP i.MX 8M Mini (4× Cortex-A53 jusqu'à 1,8 GHz + Cortex-M4 jusqu'à 400 MHz) qui fait tourner Linux avec 2 Go de LPDDR4 et 16 Go d'eMMC ; de l'autre un ST STM32H747XI (Cortex-M7 + Cortex-M4) qui fait tourner l'Arduino. Tu vas installer adb, te connecter au Linux embarqué et prendre tes repères. Attention au piège de nommage : la X8 n'est pas une carte STM32MP1 et n'est pas la Portenta H7 !
Matériel
- 1 × Arduino Portenta X8
- 1 × câble USB-C data (Power Delivery supportée par la carte)
- ⚠️ Un port USB 3.0 sur le PC est recommandé pour garantir le courant : la carte peut tirer jusqu'à 4 W (4000 mW max, 2350 mW typiques en busy loop)
- PC avec adb installé (Android platform-tools) ou l'Arduino IDE qui le fournit
- Le module nu n'a pas de prise RJ45 ni d'USB-A : pour l'Ethernet et l'USB étendu, il faudra une porteuse (Max/Hat/Mid Carrier)
Code complet
# 1. Brancher la X8 en USB-C sur un port USB 3.0 du PC.
# 2. Vérifier que la carte est visible (VID 2341, PID 0061) :
adb devices
# (sous Linux : sudo adb devices ou règle udev pour le VID 0x2341)
# 3. Entrer dans le Linux embarqué (utilisateur par defaut : fio)
adb shell
# fio@portenta-x8:~$
# 4. Premiers repères dans le shell Yocto (Linux microPlatform)
cat /etc/os-release # distribution LMP (Foundries.io, base Yocto)
uname -a # noyau 6.1.24-lmp-standard en usine
nproc # 4 : les quatre Cortex-A53 visibles de Linux
free -h # ~2 Go de LPDDR4
df -h / # 16 Go d'eMMC
exit
# 5. Dashboard de maintenance « Arduino Linux Wizard » depuis le PC :
adb forward tcp:8080 tcp:80
# puis ouvrir http://localhost:8080 dans un navigateur
Vérification attendue
adb devices liste la carte ; adb shell te dépose sur un prompt fio@portenta-x8, nproc renvoie 4 et uname -a affiche le noyau 6.1.24-lmp-standard. Le Linux embarqué est la Linux microPlatform (LMP) de Foundries.io, une distribution Yocto avec support Docker intégré — c'est la porte d'entrée de tous les tutos suivants. Le dashboard Linux Wizard (étape 5) est l'outil de maintenance officiel pour suivre l'état de la carte.
Erreurs fréquentes
- Confondre avec la Portenta H7 ou une carte STM32MP1 : la X8 est un module double (i.MX 8M Mini côté Linux + STM32H747 côté Arduino) ; le côté Linux ne se programme pas avec l'IDE Arduino mais en conteneurs, et le côté Arduino passe par le core « Arduino Mbed OS Portenta Boards ».
adb devicesvide : câble USB-C « de charge » sans lignes data (cause n°1), ou port USB 2.0 trop juste en courant pour une charge lourde — passe sur USB 3.0.- Chercher la doc sur docs.portenta.io : l'ancien site est mort (DNS en échec) et le dépôt arduino/PortentaDocs renvoie 404 ; toute la doc a migré sur docs.arduino.cc (tuto officiel : X8 Fundamentals).
- Attendre un bureau graphique : c'est une distribution Yocto embarquée, on travaille en shell et en conteneurs Docker, pas en desktop.
- >
- >
Autres tutoriels pour cette carte
- Premier sketch sur le cœur M4 : le blink qui se flash par ADB
- Docker dès la sortie de l'emballage : premier conteneur sur le Linux embarqué
- Pont Linux ↔ Arduino : appeler des fonctions du sketch M4 depuis Python (RPC)
- Mettre la X8 en réseau : Wi-Fi du Murata 1DX et Gigabit Ethernet sur porteuse
- Nœud IoT de datalogging : capteurs sur le M4, stockage et transport en conteneur
- Le firmware caché : mettre à jour le bridge STM32H7 M7 qui expose les périphériques à Linux
Exemples de code pour cette carte
etat-systeme.shBashgpio-libgpiod.shBashpython-gpio.pyPythondocker-hello.shBashflasher-core-arduino.shBashwifi-nmcli.shBash