Linux est de plus en plus répandu dans les systèmes embarqués, et va de pair avec le besoin d'apporter une certaine fiabilité et pérennité aux installations. Aujourd'hui Yocto est le système de construction le mieux adapté aux différents besoins d'un écosystème industriel en constante évolution. Successeur d'outils connus comme Buildroot ou PXTdist, Yocto offre une grande richesse en matière d'applications disponibles et beaucoup de possibilités afin de garantir la portabilité de l'environnement Linux embarqué produit. Cette formation vous propose de découvrir les généralités de Yocto, d'en maîtriser l'utilisation courante (génération et personnalisation d'images Linux embarqué) afin de pouvoir générer une plateforme Lunix via Yocto.
Objectifs pédagogiques
- Générer une plateforme Linux avec Yocto.
Modalités et moyens pédagogiques
Formation délivrée en présentiel ou distanciel* (e-learning, classe virtuelle, présentiel à distance).
Le formateur alterne entre méthode** démonstrative, interrogative et active (via des travaux pratiques et/ou des mises en situation).
Variables suivant les formations, les moyens pédagogiques mis en oeuvre sont :
- Ordinateurs Mac ou PC (sauf pour les cours de l'offre Management), connexion internet fibre, tableau blanc ou paperboard, vidéoprojecteur ou écran tactile interactif (pour le distanciel)
- Environnements de formation installés sur les postes de travail ou en ligne
- Supports de cours et exercices
En cas de formation intra sur site externe à M2i, le client s'assure et s'engage également à avoir toutes les ressources matérielles pédagogiques nécessaires (équipements informatique...) au bon déroulement de l'action de formation visée conformément aux prérequis indiqués dans le programme de formation communiqué.
* nous consulter pour la faisabilité en distanciel
** ratio variable selon le cours suivi
Niveau requis
Avoir de bonnes connaissances sur C, Shell et CMakeFile. Avoir un Pentium 7 (32 Go de RAM) et 300 Go de disque, ainsi qu'un kit Raspberry PI (avec clavier et écran supplémentaire).
Public concerné
Administrateurs et/ou développeurs Linux.
Programme
Présentation
Découverte
- Histoire de Yocto
- Equipes de travail et choix de la plateforme
- Recommandations
- Dépendances nécessaires sur la machine de développement
- Les composants de Yocto
- Choix d'un répertoire de travail
- Téléchargement de Poky
- Layers, recettes, classes
Fabrication d'une image
- Initialisation de l'environnement de travail
- Lancement du build
- Test de la machine virtuelle
- BitBake
- Les recettes
- Les différents états des tâches Yocto
- Le fichier local.conf
- Le répertoire tmp
- Les classes de Poky
Les variables
- Comportement de BitBake
- Expansion des variables
- Syntaxe des opérateurs
- Recouvrement avec "prepend" et "append"
- Autres variables
- Les directives include, require, inherit
- La directive inherit
- Quelques modifications que l'on peut faire
Mise en oeuvre
Les layers
- Utilisation d'une variable en shell
- Installation de la couche Rapsberry Pi
- Le fichier bblayers.conf
- Schéma de principe
- Exploration du meta-raspberrypi
- Modification de la variable MACHINE dans local.conf
- Flashage de la carte
- Remarque sur cette première installation
Utilisation de recettes
- Changer le nom du hostname
- Les recettes de Poky
- Utilisation d'un package Poky
- Recherche des recettes installées avec DevTool
- Ajouter une recette extérieure
- Les features
- Création d'une image
- Customisation de my-image
Création de recettes simples
- Ajout d'un patch dans une recette
- Extension de recette pour un fichier patch
- Utilisation de recipetool
- Fabrication d'une recette avec DevTool
Les recettes
Création de recettes
- Les types de recette
- Utilisation de yoctoproject.net
- Ajouter le fichier .bb
- Renommer la recette .bb
- Exécution de la recette
Création d'une recette CMake
- Fabrication d'une recette CMake
- La variable SRC_URI
- Le contenu du fichier hello.tgz
- Construction de la recette
- Ajout des licences
- Syntaxe BitBake
- Points divers sur les recettes
Configuration
- Configuration de Busybox
- Configuration du noyau
- La chaîne de compilation croisée
- Plusieurs chaînes de compilations croisées
- Installation du meta-qt5
- Ajout de la chaîne croisée dans Qt Creator
- Mise en place du device
Divers
Les tâches
- Les tâches
- Gestion des tâches
- Communiquer avec l'environnement de la tâche de build
- Drapeaux sur les variables
- Evènements
- Extension de classe
- Dépendances :
- Récurcive
- Interdépendance
Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.
Modalités d’évaluation des acquis
- En cours de formation, par des études de cas ou des travaux pratiques
- Et, en fin de formation, par un questionnaire d'auto-évaluation