Linux embarqué avec Yocto


Christophe BLAESS – Juillet 2019

Ce cours en ligne est prévu pour vous guider à la découverte de l’outil Yocto, permettant de produire des systèmes embarqués dont la configuration et le contenu sont parfaitement maîtrisés.

La progression est architecturée en quatre grandes parties regroupant différentes thématiques.

I – Débuter avec Yocto

I.1 – Vocabulaire et concepts : Yocto utilise une terminologie (layers, bitbake, recipes, distro…) qui peuvent dérouter le lecteur. Cette première étape présentera rapidement les concepts spécifiques.

I.2 – Production d’une image standard : Nous préparerons ensemble une image pour une émulation de cible x86 et la testerons. L’utilisation d’un émulateur est moins excitante qu’une véritable carte embarquée, mais cette étape est importante pour valider le fonctionnement de notre plateforme de compilation en s’affranchissant des aléas de l’installation et du test de l’image sur une vraie carte.

I.3 – Production d’images pour des cibles spécifiques : Après l’émulateur x86, nous créerons des images pour émulation Arm, et pour deux cartes réelles : la Beagle Bone Black et le Raspberry Pi.

II – Configurer un BSP produit par Yocto

II.1 – Personnalisation du fichier de configuration : nous éditerons notre fichier local.conf pour ajuster les répertoires de stockage temporaires, pour ajouter des utilisateurs et configurer leurs mots de passe et pour personnaliser le nom d’hôte de la machine.

II.2 – Ajouts d’utilitaires dans l’image : nous ajouterons tout d’abord des utilitaires dont les recettes sont présentes dans Poky, puis des packages se trouvant dans des layers externes à télécharger. Après avoir examiné la notion de features nous créerons notre propre image pour personnaliser notre système plutôt que de surcharger le fichier conf/local.conf.

II.3 – Personnalisation des recettes : grâce aux extensions de recettes nous verrons comment surcharger un fichier d’une recette de Poky, puis comment modifier avec un patch un fichier provenant d’une recette et même quelques lignes d’un package dans une recette extérieure à Poky.

III – Développer du code métier pour un BSP Yocto

III.1 – Ajouter des scripts ou des fichiers de données : nous allons écrire une première recette qui permettra d’installer sur la cible des fichiers préexistants comme des scripts shells.

III.2 – Compiler une application métier en dehors de Yocto : deux approches sont possibles pour compiler un code métier pour une cible embarquée. Cette séquence développe une utilisation “manuelle” des outils fournis par Yocto pour produire le code métier indépendamment du système de base.

III.3 – Intégrer une application métier dans la production par Yocto : Une seconde approche consiste à intégrer notre code métier dans la liste des packages compilés par Yocto. C’est ce que nous ferons dans cette séquence ou nous rédigerons plusieurs recettes.

IV – Ajuster le BSP Yocto pour une cible personnalisée

IV.1 – Configuration réseau

IV.2 – Configuration du noyau

IV.3 – Personnalisation du device tree

Enfin, pour ceux qui préfèrent être accompagnés pour la découverte et la maîtrise du système Yocto, j’anime des sessions de formation consacrées à ce sujet chez Logilin.