Embedded Linux
Qu'est-ce que le Yocto Project ?
Le Yocto Project est un système de build open source pour créer des distributions Linux sur mesure destinées aux systèmes embarqués et à l'IoT — sur n'importe quelle architecture de processeur. C'est l'un des moyens les plus répandus de construire du Linux embarqué dans l'industrie, partout dans le monde.
Un système de build, pas une distribution
Le Yocto Project n'est pas un Linux prêt à l'emploi qu'on télécharge et qu'on flashe. C'est un cadre qui compile une image Linux adaptée exactement à votre matériel et à votre produit : le noyau, le bootloader, la bibliothèque C, les paquets que vous choisissez et rien d'autre. C'est un projet open source collaboratif hébergé par la Linux Foundation, soutenu par de nombreux fondeurs et entreprises, et il fonctionne sur Arm, x86, RISC-V, PowerPC, MIPS et d'autres.
- Construit une image reproductible et depuis les sources pour votre carte, pas une image générique
- Toute architecture : Arm, x86-64, RISC-V, PowerPC, MIPS
- Open source, neutre, hébergé par la Linux Foundation
Comment ça marche : BitBake, recettes et layers
Yocto construit avec le système de build OpenEmbedded. BitBake, l'ordonnanceur de tâches, lit des recettes (fichiers .bb) qui décrivent chacune comment récupérer, configurer, compiler et empaqueter un logiciel. Les recettes sont regroupées en layers que l'on empile : une layer BSP pour votre carte, une layer distro pour votre politique, votre propre layer pour votre application. Poky est la distribution de référence du projet qui relie le tout.
- Recette (.bb) : où sont les sources, leur licence, comment les construire et les empaqueter
- Layer : un ensemble de recettes et de configuration ajouté à la pile (meta-*)
- BitBake : résout les dépendances, compile en croisé, met en cache (sstate)
- Poky : la distribution de référence et le point de départ
Pourquoi les équipes construisent avec Yocto
Un produit livré pendant dix ou quinze ans a besoin d'un Linux qu'il maîtrise totalement : les paquets exacts, les licences, les mises à jour de sécurité, reproductible depuis les sources. Yocto donne ce contrôle, ce qui en a fait un standard de fait du Linux embarqué professionnel.
- Contrôle total de l'image : taille, paquets, configuration du noyau
- Builds reproductibles, reconstructibles des années plus tard
- Conformité des licences et nomenclature logicielle (SBOM)
- Maintenance longue durée et mises à jour de sécurité (suivi des CVE)
Où Yocto est utilisé
Parce qu'il est indépendant de l'architecture et de qualité production, Yocto sert à construire le Linux embarqué à l'intérieur de produits dans quasiment tous les secteurs, partout dans le monde — d'un routeur réseau à un dispositif médical jusqu'au système d'infodivertissement d'une voiture.
- Automobile et mobilité électrique
- Automatisation industrielle et passerelles IoT
- Réseaux et télécoms (routeurs, 5G)
- Dispositifs médicaux
- Aéronautique et défense
- Électronique grand public et maison connectée
- Énergie, comptage et services publics
- Robotique et drones
Le compromis : puissance et complexité
Ce contrôle a un prix. Yocto a une courbe d'apprentissage raide, les builds peuvent durer des heures, et un échec au fond d'une recette se termine souvent par une erreur BitBake obscure et un long journal. Le diagnostiquer suppose de savoir où se trouvent les données — le log de la tâche, les layers, la configuration, bitbake -e.
La place de Yocman
Yocman est un agent IA et une boîte à outils dans votre terminal, branché sur vos vrais builds Yocto Project. Réparer une tâche en échec n'est qu'un début : l'essentiel sert à comprendre, auditer et livrer l'image. Chaque analyse lit les fichiers que BitBake a déjà écrits — les faits viennent de votre build, pas d'une supposition.
- audit
- Livrable ou pas ? Un rapport noté : CVE non corrigées, secrets embarqués, comptes, services, durcissement du noyau, licences et SBOM SPDX — les éléments côté build pour le Cyber Resilience Act.
- cve · secrets
- Les CVE encore non corrigées dans l'image livrée, et les clés privées ou jetons embarqués dans le rootfs — signalés par emplacement, jamais affichés.
- why · size
- Pourquoi ce paquet est-il dans mon image ? Qu'est-ce qui prend de la place ? size diff compare deux builds paquet par paquet.
- buildtime · sstate
- Où passent les heures de build, le parallelisme effectif, et les recettes reconstruites de zéro à chaque fois.
- init · build · flash
- Démarrer un projet kas pour une carte vérifiée, le construire avec une progression en direct, et flasher la carte avec une vérification du périphérique impossible à contourner.
- fix · explain
- Diagnostiquer une tâche en échec et obtenir un correctif pour votre propre layer, ou juste le diagnostic — appliqué seulement après votre accord.
- Fonctionne sur un dossier de build, pas sur le source tree : pointez-le vers n'importe quelle sortie de build avec --build-dir (même copiée ou archivée) — inutile d'être dans le checkout.
- Une seule installation pour tous vos builds et vos arbres Yocto : changez de cible avec --build-dir, comparez deux builds avec size diff ou cve diff.
- Votre build reste sur votre machine ; seuls des extraits masqués parviennent à l'IA, et les correctifs vont dans vos layers, jamais en amont.
Questions fréquentes
- Le Yocto Project est-il une distribution Linux ?
- Non. C'est un système de build qui produit une distribution Linux sur mesure pour votre matériel. Poky est sa distribution de référence, pensée comme un point de départ à adapter.
- Quelle différence entre Yocto et OpenEmbedded ?
- OpenEmbedded est le système de build et l'ensemble partagé de recettes (métadonnées). Le Yocto Project est le projet-cadre, hébergé par la Linux Foundation, qui utilise le système de build OpenEmbedded, ajoute Poky, les versions, l'outillage et les tests, et coordonne l'écosystème.
- Qu'est-ce que BitBake ?
- BitBake est l'exécuteur de tâches au cœur du build. Il analyse les recettes, résout leurs dépendances et exécute les tâches qui récupèrent, configurent, compilent et empaquettent chaque composant, en compilation croisée pour votre cible.
- Qu'est-ce qu'une layer dans Yocto ?
- Une layer (un répertoire meta-*) est un ensemble autonome de recettes et de configuration ajouté au build. Les layers gardent séparés et réutilisables le support de votre carte, votre politique de distribution et votre application.
- Yocto ou Buildroot ?
- Les deux construisent du Linux embarqué depuis les sources. Buildroot est plus simple et plus rapide pour de petites images figées ; Yocto est plus complexe mais bien plus évolutif et maintenable pour des produits à long cycle de vie, avec gestion de paquets et exigences strictes de licences et de mises à jour.
- Le Yocto Project est-il gratuit ?
- Oui. Il est open source et gratuit. Yocto Project est une marque de The Linux Foundation.
Ressources officielles
Yocto Project® et le logo Yocto Project sont des marques déposées de The Linux Foundation. Yocman est un outil indépendant, non affilié au Yocto Project ni à la Linux Foundation, et ni sponsorisé ni approuvé par eux.