← Back to blogEmbedded computing · 3 min

Yocto : le petit guide

Pour un système embarqué ou un objet connecté, une distribution Linux généraliste embarque souvent trop de choses et pas toujours les bonnes. Le projet open source Yocto répond à ce besoin en permettant de construire une distribution Linux sur mesure, limitée à ce dont votre produit a réellement besoin.

Un outil pour fabriquer sa distribution

Yocto n'est pas une distribution Linux en soi, mais un ensemble d'outils et de métadonnées servant à créer des distributions personnalisées. Lancé en 2010 par la Linux Foundation, il s'est rapidement imposé comme un standard de l'industrie pour le développement embarqué. Vous ne partez pas d'un système préétabli que vous allégez : vous composez exactement l'image dont vous avez besoin, de la plus minimale à la plus complète.

Au cœur de Yocto se trouve le modèle en couches. Chaque couche regroupe des recettes, des configurations et des métadonnées propres à un domaine (support d'une carte, d'une application, d'une fonction), ce qui sépare logiquement les composants du système, facilite la réutilisation du code et le travail à plusieurs. Trois composants structurent l'ensemble :

  • BitBake : le moteur de construction qui pilote l'ensemble du processus
  • OpenEmbedded-Core : la base des métadonnées essentielles
  • Poky : la distribution de référence, qui sert de point de départ

Pourquoi il s'est imposé dans l'embarqué

Sa première qualité est la flexibilité : Yocto s'adapte à presque tous les projets, de la plus petite puce IoT aux systèmes complexes. Les builds sont reproductibles, un point crucial pour le développement, le débogage et la maintenance d'un produit sur plusieurs années. Il couvre un large éventail d'architectures, d'ARM à x86 en passant par MIPS et PowerPC. Sa communauté active et les nombreuses couches prêtes à l'emploi accélèrent le développement, et les images produites sont optimisées en performances comme en taille.

On le retrouve donc dans des domaines variés : dispositifs médicaux et équipements industriels, objets connectés légers et sécurisés, systèmes d'info-divertissement et tableaux de bord numériques dans l'automobile, routeurs et commutateurs personnalisés dans les télécommunications.

Démarrer un projet Yocto

La mise en route suit une progression logique. Après avoir configuré l'environnement de développement, on sélectionne les couches adaptées au projet, puis on personnalise le build à travers les fichiers de configuration. BitBake se charge ensuite de compiler le système, et l'image obtenue peut être testée, par exemple sous l'émulateur QEMU, avant d'être déployée sur la cible.

Cette puissance a un prix. La courbe d'apprentissage est réelle et la maîtrise de l'outil demande du temps. Un build complet mobilise des ressources importantes sur la machine de développement, et la flexibilité de Yocto s'accompagne inévitablement d'une certaine complexité.

En pratique, le point de départ d'un projet Yocto est souvent la couche fournie par le fabricant de la carte, au sein de son BSP. Si vous travaillez sur un Computer-on-Module ARM, nos équipes peuvent vous orienter vers les plateformes les mieux supportées.

Sources

Yocto : le petit guide | Tokhatec