Linux embarqué

BSP UBoot et Linux embarqué

Objectifs pédagogiques

  • Comprendre les étapes nécessaires pour la mise en œuvre d'un BSP Linux embarqué sur une nouvelle carte
  • Connaître les constituants d'un système Linux et les spécificités liées à l'environnement embarqué
  • Savoir porter et développer efficacement du code applicatif métier sur un système Linux embarqué

Programme de la formation

Linux embarqué

  • Licences, implications pour l'embarqué. Principe des drivers.
  • Composant d'un système Linux. Boot d'un système embarqué.
  • Outils de développement. Chaîne de compilation croisée

Travaux pratiques

Compilation, installation et test de Qemu.

Build Systems

  • Présentation de Buildroot.
  • Construction d'une chaîne de cross-compilation (Crosstool-NG).
  • Construction d'un système embarqué avec Buildroot.
  • Présentation du Yocto Project.

Travaux pratiques

Création d'une chaîne de cross-compilation. Production d'une image pour Raspberry Pi.

Noyau Linux

  • Fonctionnalités du noyau. Modèle de développement.
  • Configuration et compilation du noyau.
  • Application de patchs.
  • Transfert de l'image du noyau. Paramètres de démarrage du kernel.
  • Types de système de fichiers. Formatage et préparation d'une arborescence.

Travaux pratiques

Compilation et test d'un noyau (Buildroot, émulateur Arm, Raspberry Pi). Application d'un patch.

Bootloader et Root Filesystem

  • Les bootloaders : Lilo et Grub. U-Boot, barebox...
  • Installation de U-Boot.
  • Boot par TFTP et par NFS.
  • Formats pour disques et mémoire flash. Systèmes de fichiers spéciaux.
  • Organisation des partitions. Gestion de versions.

Travaux pratiques

Test de Grub. Compilation et test de U-boot sur Raspberry.

Espace utilisateur

  • Busybox : présentation, configuration.
  • Configuration du réseau et des serveurs . Authentification des utilisateurs et connexion distante.

Travaux pratiques

Compilation et installation de Busybox.

Code métier

  • Outils de développements : compilateurs, interpréteurs, IDE.
  • Débogueur, profileur, couverture de code.
  • Bibliothèques statiques et dynamiques.
  • Gestion de mémoire sous Linux.

Travaux pratiques

Utilisation d'Eclipse, de gdbserver, de Gprof et de Gcov.

Drivers et modules spécifiques

  • Principe des drivers : intégration de modules externes.
  • Principes de la programmation noyau.
  • Aperçu de la programmation de drivers en mode caractère.

Travaux pratiques

Compilation et chargement de module externe.

Multiprocesseurs et temps réel

  • SMP, multicœurs, hyperthreading. Gestion des tâches et des interruptions.
  • Temps réel : principes. Temps-réel souple.
  • Amélioration avec le patch PREEMPT_RT.
  • Temps-réel strict : Présentation de Xenomai.

Travaux pratiques

Configuration des emplacements des tâches et des interruptions.

Please login to get access to the quiz
(Next Lesson) Yocto, développer son propre système embarqué sous Linux
Back to Linux embarqué
Public

Architecte ou ingénieur devant porter Linux sur un nouveau matériel ou étendre un système embarqué.

Pré-requis

Bonnes connaissances du langage C et du système Linux.