ac6-formation, un département d'Ac6 SAS
FR
FrançaisEnglish
 
go-up

ac6 ac6-formation Systèmes d'Exploitation Linux Linux embarqué avec Yocto
D1Y

Linux embarqué avec Yocto

Construire des plateformes Linux embarquées en utilisant Yocto

Objectifs

  • Comprendre l'architecture du système Linux
  • Apprendre à installer Linux sur votre matériel et à créer un BSP
  • Explorer l'architecture du système Linux
  • Démarrage de Linux
  • Initialiser le système
  • Installer les paquets existants sur la cible
  • Apprendre à installer Linux sur des puces flash
  • Utiliser et personnaliser Yocto
  • Créer des plateformes Linux embarquées basées sur Yocto
  • Utiliser Yocto pour développer des composants
Les travaux pratiques peuvent être menés soit sur qemu soit sur des cartes cibles, qui peuvent être :
    Cartes "STM32MP15-DK2" à double Cortex/A7 de STMicroelectronics
    Cartes "SabreLite" à base de Quad Cortex/A9 de NXP
    Cartes "imx8q-evk" à base de Quad Cortex/A53 de NXP
Nous utilisons la dernière version de Yocto supportée par le fournisseur de la puce
Nous utilisons un noyau linux récent (4.x), tel que supporté par le fournisseur de la puce
  • 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.
    • Un PC Linux pour deux stagiaires pour les activités pratiques
    • Une plateforme cible pour deux stagiaires (sauf en cas d'utilisation de qemu)
    • Exemples de code, exercices et solutions
    • Le formateur assiste les stagiaires pendant les exercices
  • Une machine virtuelle préconfigurée téléchargeable pour 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
  • Tout ingénieur ou technicien en systèmes embarqués possédant les prérequis ci-dessus
  • Les prérequis sont vérifiés avant l'entrée en formation, sur la base des prérequis publiés sur cette fiche.
  • Pendant la formation, les acquis sont évalués en continu : quiz de fin de séquence et observation directe du formateur.
  • À l'issue de la formation, chaque participant reçoit une attestation de fin de formation.

Plan du cours

  • Historique de Linux et gestion des versions
  • Architecture du système Linux
    • Processus et MMU
    • Appels système
    • Bibliothèques partagées
  • Les composants du système Linux
    • Toolchain
    • Bootloader
    • Kernel
    • Système de fichiers racine
  • Les paquets Linux
  • Les différentes licences utilisées par Linux (GPL, LGPL, etc)
  • Toolchains précompilées
  • Outils de génération de toolchains
    • Crosstool-ng
    • Buildroot
  • Compilation manuelle d'une toolchain
  • Bootloaders (UBoot, Redboot, barebox)
  • Bibliothèques optimisées (glibc, uClibc-ng, musl)
  • Interfaces graphiques embarquées
  • Busybox
  • Distributions embarquées
    • Commerciales
    • Standard
    • Outils de construction de distributions personnalisées
  • Introduction à U-Boot
  • Démarrer la carte avec U-Boot
    • Démarrage depuis la NOR
    • Démarrage depuis la NAND
    • Démarrage depuis l'eMMC
  • Variables d'environnement d'U-Boot
    • Variables définies par l'utilisateur
    • Variables prédéfinies
    • Substitution de variables
  • Le shell minimal d'U-Boot
    • Écrire des scripts dans des variables
    • Exécuter des scripts
    • Utiliser des variables dans les scripts : le motif set-script
  • Principales commandes d'U-Boot
    • Démarrer un OS
    • Accéder aux mémoires flash
    • Accéder aux systèmes de fichiers (NFS, FAT, EXTx, JFFS2…)
  • Le shell complet d'U-Boot
    • Structure d'un script
    • Instructions de contrôle de flux (if, for…)
  • Démarrer Linux
    • Paramètres du kernel Linux
    • La séquence de démarrage de Linux
  • Construire et installer U-Boot avec son système de build natif
  • Le système de build de Linux
  • Téléchargement du code source stable
    • Récupérer une archive tarball
    • Utiliser GIT
  • Configuration du kernel
  • Compilation du kernel et de ses modules
    • Modules livrés dans l'arborescence
    • Modules hors arborescence
  • Installation du kernel et des modules
  • Architecture du BSP Linux
    • Structure générale
    • Le BSP ARM
    • Le système de build de Linux
  • Définition et initialisation de la carte
  • Présentation des device drivers Linux
    • Utilisation du Flattened Device Tree
  • Paquets
    • Outils de construction des paquets (gcc, Makefile, pkg-config)
    • Autotools
    • Cross-compiler un paquet avec les autotools
  • Les applications tout-en-un
    • Busybox, les utilitaires de base
    • Dropbear : communications chiffrées (ssh)
  • Construire manuellement votre système de fichiers racine
    • Nœuds de périphériques, programmes et bibliothèques
    • Fichiers de configuration (réseau, udev, …)
    • Installation des modules
    • Recherche et installation des bibliothèques nécessaires
    • Test de la cohérence et de la complétude du système de fichiers
  • Paramètres du kernel Linux
  • La séquence de démarrage de Linux
  • Les différents systèmes d'initialisation
    • busybox init
    • system V init
    • systemd
  • Démarrage automatique d'un système embarqué
  • Interfaces de stockage
    • Périphériques bloc
    • MTD
  • Mémoires flash et MTD Linux
    • Flashes NOR
    • Flashes NAND
    • Flashes ONENAND
  • Les différents formats de systèmes de fichiers flash
    • JFFS2, YAFFS2, UBIFS
  • Système de fichiers en lecture seule
    • CRAMFS, SQUASHFS
  • Systèmes de fichiers Linux standard
    • Ext2/3/4, FAT, NFS
  • Ramdisks et initrd
    • Création d'un initramfs
    • Démarrage via un initramfs
  • Choisir les bons formats de systèmes de fichiers
  • Flasher le système de fichiers
  • Présentation de Yocto
    • Historique
    • Yocto, Open Embedded et Poky
    • Objectif du Yocto Project
    • Les principaux projets
  • Architecture de Yocto
    • Présentation
    • Recipes et classes
    • Tâches
  • Objectifs du système de build
    • Construire des images déployables
  • Layers et priorités des layers
  • Organisation des répertoires
  • Fichiers de configuration (local, machine et distribution)
  • L'outil bitbake
    • Options courantes
  • Utiliser Yocto
    • Construire un paquet
    • Construire une image (système de fichiers racine + u-boot + kernel)
  • Outils divers autour de Yocto
    • Le SDK Yocto
    • Le SDK extensible
  • Architecture d'une recipe
    • Tâches
    • Dépendances entre tâches
    • Dépendances entre recipes
  • Le langage bitbake
    • Variables et fonctions standard
    • Classes et recipes
    • Les classes Yocto de base
    • Principales commandes bitbake
  • Ajouter un nouveau layer
    • Structure d'un layer
    • Les différents types de layers
  • Les différents types de recipes et de classes
    • Programme simple
    • Paquet fondé sur un Makefile
    • Paquet fondé sur les autotools
    • u-boot
    • kernel
    • Module hors arborescence
  • Stratégies de création de recipes
    • Depuis zéro
    • Avec devtool
    • Avec recipetool
    • À partir d'une recipe existante similaire
  • Déboguer les recipes
    • Déboguer la sélection des recipes
    • Déboguer les dépendances
    • Déboguer les tâches
  • Définir le packaging
    • Découpage des paquets
  • Démarrer automatiquement un programme
  • Personnaliser la recipe d'un paquet existant (.bbappend)
  • Dépendances entre recipes
  • Créer et ajouter des patches
    • Créer un patch pour un composant fourni par la communauté
    • Créer un patch pour un composant maintenu par l'utilisateur
  • Définir de nouvelles tâches
    • Déclaration d'une tâche
    • Codage des tâches
  • Utiliser devtool pour créer un paquet et sa recipe
  • Utiliser devtool pour modifier un paquet et sa recipe existants
  • Utiliser devtool pour mettre à jour une recipe et construire une nouvelle version d'un paquet
  • Créer des classes
    • Créer de nouvelles classes indépendantes
    • Hériter d'une classe existante
  • Construire un système de fichiers racine avec Yocto
    • Créer un système de fichiers racine personnalisé
  • Écrire une recipe d'image
    • Choisir les paquets à construire
    • Choisir les types de systèmes de fichiers
    • Les différents types d'images
  • Hériter et personnaliser des images
    • Personnaliser les fichiers de configuration du système (réseau, points de montage, …)
  • Gestion des paquets
    • rpm
    • opkg
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 : 2 juillet 2026

L'inscription à nos formations est soumise à nos Conditions Générales de Vente

Sur le même sujet :

Yocto ou Buildroot : comment choisir pour votre projet Linux embarqué