D1Linux embarqué avec Buildroot et Yocto Construire et installer une plateforme Linux pour système embarqué
|
Objectifs
|
- Un PC Linux par binôme
- Une carte embarquée par binôme
- Support de cours fournis
- Cours théorique
- Support de cours imprimé et au format PDF (en anglais).
- Le formateur répond aux questions des stagiaires en direct pendant la formation et fournit une assistance technique et pédagogique.
- Activités pratiques
- Les activités pratiques représentent de 40% à 50% de la durée du cours.
- Elles permettent de valider ou compléter les connaissances acquises pendant le cours théorique.
- Exemples de code, exercices et solutions
- Un PC (Linux ou Windows) par binôme de stagiaires (si plus de 6 stagiaires) pour les activités pratiques avec, si approprié, une carte cible embarquée.
- Le formateur accède aux PC des stagiaires pour l'assistance technique et pédagogique.
- Une machine virtuelle préconfigurée téléchargeable pour refaire les activités pratiques après le cours
- Au début de chaque demi-journée une période est réservée à une interaction avec les stagiaires pour s'assurer que le cours répond à leurs attentes et l'adapter si nécessaire
- Bonne maîtrise du langage C
- Connaissance de la programmation Linux en mode utilisateur (voir notre cours D0 - Programmation en mode utilisateur Linux)
- De préférence, connaissance du noyau Linux et de la programmation de driver (voir notre cours D3 - Drivers Linux)
- Tout ingénieur ou technicien en systèmes embarqués possédant les prérequis ci-dessus
- Tout ingénieur ou technicien en systèmes embarqués possédant les prérequis ci-dessus
- Les prérequis indiqués ci-dessus sont évalués avant la formation par l'encadrement technique du stagiaire dans son entreprise, ou par le stagiaire lui-même dans le cas exceptionnel d'un stagiaire individuel.
- Les progrès des stagiaires sont évalués de deux façons différentes, suivant le cours:
- Pour les cours se prêtant à des exercices pratiques, les résultats des exercices sont vérifiés par le formateur, qui aide si nécessaire les stagiaires à les réaliser en apportant des précisions supplémentaires.
- Des quizz sont proposés en fin des sections ne comportant pas d'exercices pratiques pour vérifier que les stagiaires ont assimilé les points présentés
- En fin de formation, chaque stagiaire reçoit une attestation et un certificat attestant qu'il a suivi le cours avec succès.
- En cas de problème dû à un manque de prérequis de la part du stagiaire, constaté lors de la formation, une formation différente ou complémentaire lui est proposée, en général pour conforter ses prérequis, en accord avec son responsable en entreprise le cas échéant.
Plan du cours
- Linux
- Histoire
- Gestion de version
- Les diverses licences utilisées par Linux (GPL, LGPL, etc)
- Distributions Linux
- Architecture et modularité de Linux
- Chaînes de compilation croisée pré-compilées
- Outils de génération de chaînes de compilation croisée
- Crosstool-ng
- Buildroot
- Compilation manuelle de chaîne de compilation croisée
Exercise : | Construction d'une chaîne de compilation croisée avec Crosstool-ng |
- Les bootloaders (Uboot, Redboot, barebox)
- Les librairies adaptée à l'embarqué (eglibc, uClibc)
- Les IHM adaptées à l'embarqué
- Busybox
- Introduction à U-Boot
- Booter la carte à travers U-Boot
- Booter depuis la NOR
- Booter depuis la NAND
- Booter depuis la eMMC
- Variables d'environnement d'U-Boot
- Variables définies par l'utilisateur
- Variables prédéfinies
- Substitution de variable
- Le shell U-Boot minimal
- Ecrire des scripts dans des variables
- Exécuter des scripts
- Utiliser des variables dans des scripts : le patron set-script
- Principales commandes d'U-Boot
- Booter un OS
- Accéder aux flashs
- Accéder aux systèmes de fichier (NFS, FAT, EXTx, JFFS2…)
- Le shell U-Boot complet
- Structure du script
- Instructions de contrôle (if, for…)
Exercise : | Ecrire un script qui configure le réseau et passe cette information au noyau Linux | |
Exercise : | Booter la carte en NFS, en utilisant des images pré-existantes | |
Exercise : | Ecrire des scripts pour choisir entre booter depuis la flash ou le réseau |
- Télécharger un code source stable
- Obtenir une tarball
- Utiliser GIT
- Configurer le noyau
- Compiler le noyau et ses modules
- Modules internes aux sources de Linux (in-tree)
- Modules externes aux sources (out-of-tree)
- Installer le noyau et les modules
Exercise : | Configurer et compiler un noyau pour la carte cible |
- Architecture du BSP Linux
- Structure générale
- Le BSP ARM
- Le système de compilation de Linux
- Définir et initialiser la carte
- Programmatiquement (platform, i2c, spi, …)
- En utilisant le Flattened Device Tree
Exercise : | Créer un BSP minimal pour la carte cible |
- Paquetages
- Divers systèmes de compilation de paquetages (autotools, CMake, …)
- Compiler un paquetage en croisée
- Les applications tout-en-un
- Busybox, les utilitaires basiques
- Dropbear: communications cryptées(ssh)
- Construire manuellement son système de fichier racine
- Fichiers de périphérique, programmes et bibliothèques
- Fichiers de configuration (réseau, udev, …)
- Installer des modules
- Chercher et installer les bibliothèques dont on a besoin
- Tester la cohérence et la complétude du système de fichier
Exercise : | Configurer et compiler Busybox et Dropbear | |
Exercise : | Créer un système de fichier racine minimal en utilisant Busybox et Dropbear |
- Paramètres du noyau Linux
- La séquence de démarrage de Linux
- Divers systèmes d'initialisation (busybox init, system V init, systemd)
- Démarrer automatiquement un système embarqué
Exercise : | Booter Linux en démarrant automatiquement une application utilisateur |
- Interfaces de stockage
- Péripéhrique bloc
- MTD
- Mémoires flash et MTDs Linux
- flash NOR
- flash NAND
- flash ONENAND
- Les divers formats de système de fichier pour flash
- JFFS2, YAFFS2, UBIFS
- Systèmes de fichier en lecture seule
- CRAMFS, SQUASHFS
- Systèmes de fichier standards de Linux
- Ext2/3/4, FAT, NFS
- Ramdisks et initrd
- Créer un initramfs
- Booter à travers un initramfs
- Choisir les bons formats de système de fichier
- Flasher le système de fichier
Exercise : | Construire un système de fichier racine de type initrd |
- Fonctionnement
- Configuration de la chaîne de compilation
- Sélection de paquetages
- Configuration système (port série, remplissage de /dev, …)
- Configuration du noyau et du boot-loader
- Construire une image de système de fichier
- Adaptation
- Utiliser une chaîne de compilation pré-compilée
- Ajouter un patch à un paquetage existant
- Ajouter un nouveau paquetage
- Utiliser un squelette de rootfs customisé
Exercise : | Construire un système de fichier racine avec Buildroot |
- Présentation de Yocto
- Histoire
- Yocto, Open Embedded et Poky
- Objetif du projet Yocto
- Les principaux projets
- Architecture Yocto
- Aperçu
- Recettes et classes
- Les tâches
Exercise : | Construire un système de fichier racine avec Yocto |
- Objectifs du système de compilation
- Construire des images déployables
- Couches et priorités de couches
- Mise en page de l'annuaire
- layout des dossiers
- Fichiers de configuration (local, machine et distribution)
- L’outil bitbake
- Utiliser Yocto
- Build d’un package
- Build d’une image (rootfs, u-boot et noyau)
Exercise : | Utiliser les commandes bitbake pour compiler des packages et des images |
- Architecture de recettes
- Les tâches
- Dépendances de tâches
- Dépendances de recettes
- Le langage bitbake
- Variables et fonctions standard
- Les classes et les recettes
- La classe « base »
- Les commandes principales de bitbake
- Ajouter un nouveau layer
- Structure de la couche (Layer)
- Différents types de couches (Layer)
Exercise : | Ajouter un nouveau layer | |
Exercise : | Ajouter une nouvelle recette |
- solutions temps-réel pour Linux
- xenomai
- patch rt preempt
- architecture de Xenomai
- co-kernel
- skins
- drivers RTDM
- installation
- installer Xenomai
- cross-compiler une application Xenomai
Exercise : | installer Xenomai 3.x | |
Exercise : | mesurer les temps de latence | |
Exercise : | cross-compiler une application Xenomai |
- Portage de U-Boot
- Structure de code source U-Boot
- Ajouter une nouvelle carte aux sources U-Boot
- Drivers U-Boot (RS232, réseau, flash, SD / MMC)
- Démarrage U-Boot et initialisation de la carte
Exercise : | Création d'un BSP dans U-Boot et configuration du code d'initialisation |
Plus d'information
Pour vous enregistrer ou pour toute information supplémentaire, contactez nous par email à l'adresse info@ac6-formation.com.
Les inscriptions aux sessions de formation sont acceptées jusqu'à une semaine avant le début de la formation. Pour une inscription plus tardive nous consulter
Vous pouvez aussi remplir et nous envoyer le bulletin d'inscription
Ce cours peut être dispensé dans notre centre de formation près de Paris ou dans vos locaux, en France ou dans le monde entier.
Les sessions inter-entreprises programmées sont ouvertes dès deux inscrits. Sous condition d'un dossier complet, les inscriptions sont acceptées jusqu'à une semaine avant le début de la formation.
Dernière mise à jour du plan de cours : 15 novembre 2022
L'inscription à nos formations est soumise à nos Conditions Générales de Vente