Formation “Linux embarqué avec Yocto Project”

Linux embarqué avec Yocto

Pour concevoir un système embarqué s’appuyant sur Linux, il existe de nos jours deux environnements principaux : Buildroot et Yocto Project. Pour vous aider à choisir, nous vous proposons notre note technique “Conception d’un système Linux industriel“.

Ce cours vous permet d’appréhender l’environnement Yocto pour créer un système embarqué personnalisé dans lequel vous apprendrez à intégrer votre propre code métier.

Les travaux pratiques de ce cours ont lieu sur des systèmes Raspberry Pi 4, que les participants configurent entièrement.

Lorsque les formations ont lieu dans nos locaux, les participants peuvent conserver à l’issue de la formation la carte Raspberry Pi 4 (ainsi que son câble d’alimentation et sa carte SD).

Points-clés

Durée : 4 jours (3 jours en formation individuelle).

Tarifs 2020 :

  • En nos locaux à Évry (91) : 2350 €HT (déjeuners et collations offerts). Tarif dégressif si plusieurs inscrits de la même société à la même session.
  • Prochaines sessions : du 8 au 11 septembre 2020, du 30 novembre au 3 décembre. Renseignements et inscriptions : formations@logilin.fr
  • Formation dans vos locaux : nous consulter.

Pré-requis : connaissance de Linux (niveau utilisateur) et du langage C

Conseil cursus : pour prolonger cette formation, nous vous proposons les cours “Temps Réel Linux et Xenomai” ou “Écriture de drivers et programmation noyau Linux“.

Plan : Téléchargez le plan détaillé au format PDF.

Thèmes abordés

  • Créer un système Linux embarqué avec Yocto : environnement Linux embarqué, production d’une image, analyse de son contenu.
  • Personnalisation de l’image : configuration du système, ajout de packages divers.
  • Configuration avancée : extension de recettes, création de patches, noyau Linux et Device Tree.
  • Développement du code métier : installation du SDK, compilation du code applicatif, débogage et mise au point, intégration du code métier dans l’image.

Plan détaillé

Créer un système Linux embarqué avec Yocto Project

  • Environnement Linux embarqué : concepts, composant, outils de génération, Buildroot et Yocto Project.
  • Production d’une image standard : environnement de travail, Poky, configuration, layers spécifiques, outil bitbake…
  • Composition d’un système Linux embarqué : matériel, bootloader, noyau Linux, processus init, scripts de démarrage.
  • Travaux pratiques : téléchargement de Poky et de meta-raspberrypi, vérification des outils présents, production d’une image standard.

Personnalisation du système embarqué

  • Découverte et analyse du système : connexion, systèmes de fichiers, arborescence standard, boot.
  • Personnalisation de l’image : fichiers .bb, syntaxe des recettes Yocto, création d’une recette d’image pour Yocto, configuration des utilisateurs et mots de passe.
  • Ajout de packages : packages standards de Poky, packages proposés par OpenEmbedded, configuration de Busybox
  • Travaux pratiques : Production d’une image complète et personnalisée pour Raspberry Pi 4 avec des packages fournis par Poky et meta-openembedded.

Configuration avancée du système

  • Extension de recettes : fichiers .bbappend, remplacement de fichiers fournis par des recettes, configuration statique du réseau.
  • Création et application de patches : patch sur un fichier de donnée d’une recette, patch sur un fichier source à compiler
  • Noyau Linux et Device Tree : configuration du noyau, création de patch sur un fichier source du noyau, création de patch sur le Device Tree.
  • Travaux pratiques : extensions et patches pour les recettes base-files, init-ifupdown, nano, busybox, Linux kernel

Développement du code métier

  • Installation du SDK : production, extraction et installation du SDK de Yocto.
  • Compilation du code applicatif : examen de la toolchain, scripts d’initialisation, cross-compilation de code personnel.
  • Débogage et mise au point : débogage distant avec gdbserver, outils d’aide à la mise au point (gprof, valgrind, gcov, etc.).
  • Intégration du code métier dans l’image : recettes, lancement au démarrage.
  • Travaux pratiques : écriture, débogage et intégration d’un code métier dans l’image produite précédemment.

Conclusion

  • Discussions libres sur l’ensemble des thèmes abordés.
  • Travaux pratiques : Expérimentations libres suivant les demandes des participants.