🛠 Images custom et flotte : construire son Yocto, déployer par OTA avec fioctl et Waves

Arduino Portenta X8 · avance · Schéma : IMG-portenta-x8-avance-2-portenta-x8-image-yocto-ota-fleet.svg — pipeline de déploiement : poste de build Yocto avec la couche meta-partner-arduino, usine FoundriesFactory, flèches OTA signées vers trois Portenta X8 alignées, terminal affichant fioctl updates et docker ps avec des conteneurs versionnés, étiquette Linux microPlatform

Objectifs

Passer de « je bidouille ma carte » à « je gère une flotte ». L'image d'usine est une Linux microPlatform (LMP) de Foundries.io, construite avec Yocto ; la couche BSP Arduino est publique (arduino/meta-partner-arduino), les modules noyau aussi (portentax8-x8h7). Le workflow officiel : une FoundriesFactory compile OS + conteneurs, fioctl pilote les mises à jour, et l'OTA — garanti atomique par la structure A/B de LMP — pousse OS et conteneurs. En version managée, Arduino Cloud for Business / Portenta X8 Manager ajoute provisioning par clés individuelles et monitoring de flotte ; le tuto officiel waves-fleet-managment couvre le déploiement de conteneurs à distance.

Matériel

Code complet

# --- Cote poste de build ---
# 1. Initialiser sa factory (guidé par la doc Foundries.io)
fioctl login

# 2. Récuperer la BSP Arduino : couche meta-partner-arduino
#    (github.com/arduino/meta-partner-arduino) + recipes LMP ;
#    tuto officiel : docs.arduino.cc/tutorials/portenta-x8/image-building
#    puis : bitbake lmp-factory-image

# 3. Pousser la branche de build vers la factory
git push
# -> la factory compile en cloud et héberge l'OTA

# --- Cote carte : suivre la mise à jour ---
adb shell
fio@portenta-x8:~$ sudo journalctl -fu ostree-remount   # ou update manager
fio@portenta-x8:~$ docker ps      # les conteneurs applicatifs suivent l'OTA

# --- Cote flotte ---
fioctl updates list               # état de rollout par appareil
fioctl devices list
# Gestion managée alternative : Arduino Cloud for Business /
# Portenta X8 Manager (provisioning keys + monitoring),
# ou le workflow « Waves » du tuto officiel waves-fleet-managment.

Vérification attendue

Après git push, la factory compile l'image ; la carte enrôlée télécharge l'OTA et bascule sur le nouvel OS sans briqueter : en cas d'échec de boot, le mécanisme A/B de LMP revient à l'image précédente. Les conteneurs applicatifs se mettent à jour indépendamment, versionnés comme des images Docker — c'est exactement ce modèle de déploiement qu'exploite le tuto Waves pour une flotte.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels