- Cours pratique
- Informatique
Formation Uboot et BSP LINUX embarqué
Bootloader, BSP, DTB et drivers LINUX

- Durée
- 5 jours
- Niveau
- Avancé
- Modalités
- Présentiel / Distanciel
Description de la formation Uboot BSP Linux
Chaque jour LINUX est embarqué dans de nouvelles plateformes, téléphones portables, télévisions, systèmes de surveillance ou systèmes d'acquisition, spatial, automobile et aéronautique, IoT, c'est aujourd'hui le système d'exploitation le plus utilisé sous sa forme LINUX originale ou avec les additions fournies par ANDROID.
Le bootloader Uboot, utilisé sur les cartes ARM et PowerPC et est devenu le boot-loader de référence pour les systèmes embarqués. Il permet de préparer le matériel, de charger le device tree (DTB) contenant la configuration matérielle et le noyau LINUX depuis la plupart des solutions de stockage ou au travers du réseau.

Objectifs pédagogiques
À l'issue de cette formation Uboot BSP Linux, vous aurez acquis les connaissances et compétences nécessaires pour :
- Porter Uboot sur une nouvelle carte
- Comprendre et modifier un fichier DTS (Device Tree Source)
- Connaître les adaptations nécessaires au BSP LINUX pour un portage
- Créer un microsystème de fichier LINUX et d'y ajouter de nouveaux modules noyau
Objectifs opérationnels
Comprendre et mettre en œuvre les étapes d'un portage de Uboot et de Linux sur une nouvelle carte.
Programme
Contenu du cours
Outils
Présentation de LINUX embarquéNous effectuons un rappel sur les licences utilisées dans LINUX et abordons le boot de LINUX sur une carte générique.Chaîne de compilation croiséeAprès avoir détaillé les sources d'obtention des chaînes de compilation croisées nous détaillons les différents outils contenus dans celles-ci (objcopy, objdump, readelf, gdb).Chaînes de génération de systèmes embarquésBuildroot et Yocto sont les deux principaux outils de génération d'un système embarqué, nous en verrons les différences principales. Ces deux systèmes de fabrication utilisent tous deux busybox.QEMUFonctionnant comme émulateur QEMU est très utile pour la mise au point aussi bien au très bas niveau qu'au niveau applicatif.Travaux pratiquesConstruction d'un système embarqué avec Buildroot et installation dans l'émulateur QEMU.Jour 2UBoot
Présentation de UBootUboot est un mini système d'exploitation mono utilisateur et mono tâche. Nous en ferrons une courte présentation historique.Comment porter Uboot sur une nouvelle carteIci nous étudierons les points d'entrée qui permettent d'adapter Uboot au matériel utilisé.Utiliser Uboot pour débugger une carteDu fait que Uboot peut fonctionner directement depuis la ROM il peut être particulièrement intéressant de lui ajouter des fonctionnalités spécifiques à un matériel donné.Chargement de Linux par UBootNous voyons comment Uboot peut charger un noyau LINUX ou un autre système d'exploitation et placer le DTB et un système de fichier en mémoire.Travaux pratiquesAdaptation de Uboot à une carte imaginaire et test dans QEMU ou sur du matériel fourni.Modification de Uboot pour lui apporter une nouvelle commande de test mémoire.
Démarrage de LINUX dans QEMU ou sur une carte fournie.Jour 3
Linux
La phase de bootDans cette partie nous analysons comment le noyau LINUX, une fois placé en mémoire par Uboot va initialiser ses différents sous-systèmes et lancer le process utilisateur "init"Les modules et les driversNous abordons le "device driver framework", les modules et le sysfs.La gestion des threadsNous étudions comment le noyau LINUX crée et de ordonne les threads. (POSIX, SCHED-DEADLINE)Nous voyons comment les threads sont mis en attente de ressources puis réveillés. (schedule, wakeup)
Puis nous abordons les attentes de plus haut niveau. (Mutex, completions, RCU)La gestion des ProcessNous étudions comment la gestion mémoire du noyau (buddy allocator, slabs)
Puis nous abordons la gestion mémoire utilisateur (malloc vs mmap, OOM killer, procfs)Travaux pratiquesRéalisation d'un driver loopback permettant d’implémenter les principales primitives de gestion de thread et d'allocation mémoire.Jour 4
RootFS
Démarrage de l'espace utilisateurLe noyau lance le process "init", celui-ci initialise l'environnement de travail et lance les daemons.Organisation de l'espace utilisateurNous voyons ici, comment sont organisés la gestion des utilisateurs, l'interfaces réseau.Travaux pratiquesConstruction d'un système de fichier "root" basé sur busybox et utilisation de ce système de fichier sur la cible.Jour 5DTB
Utilisation des "device tree blobs"Comment Uboot et Linux coopèrent pour l'utilisation de DTB.Modifier un DTBLa syntaxe d'un DTS (Device Tree Source), modification, compilation et utilisation par un driver.Travaux pratiquesAjouter une nouvelle entrée pour un GPIO dans un DTB et récupérer les informations dans un driver LinuxProgramme mis à jour le 24/10/2025
Public concerné
Ce cours cible principalement les profils de développeurs, ingénieurs et chefs de projet qui souhaitent acquérir une formation complète et opérationnelle sur la mise en œuvre de LINUX dans un système embarqué.
Cette formation s’adresse aussi aux managers qui souhaitent acquérir une première expérience pratique du portage de Uboot et de LINUX, de l'écriture de drivers et de DTS afin d’être plus pertinent sur les facilités et difficultés de celui-ci pour un management au quotidien plus pertinent de leurs équipes.

Prérequis
Pour suivre ce cours il est nécessaire de connaître à la fois le langage C utilisé lors de tous les exercices de programmation et d'avoir une connaissance sommaire du SHELL de LINUX qui sera utilisé pour les exercices à la fois sur l'ordinateur de travail et sur le système embarqué construit pendant la session.
J’évalue mes connaissances pour vérifier que je dispose des prérequis nécessaires pour profiter pleinement de cette formation en faisant le test de prérequis.
Faire le testFinancement
Cette formation peut être prise en charge par votre entreprise, seule ou avec l’appui de son opérateur de compétences. Nous fournissons le devis et les pièces attendues par l’OPCO.
Formations liées
- Windows Server 2022 - MigrationRéf. WSMG2 joursIntermédiaireProchaine session : 5 nov.1 390 €
- AIX - Administration système III : Gestion des Performances Réf. AN51G5 joursAvancé
- AIX - Installation et administration pour les professionnels UNIX Réf. AN14G5 joursIntermédiaireProchaine session : 26 oct.4 250 €
- Automatiser les réseaux avec Red Hat Ansible Automation Platform (cours officiel)Réf. DO4574 joursIntermédiaireProchaine session : 12 oct.3 740 €