Prenez contact avec nous
 Durée 14 heures

Plan du cours

1. Introduction au noyau Linux

  • Vue d’ensemble de Linux embarqué
  • Architecture du noyau Linux
  • Espace utilisateur vs espace noyau
  • Responsabilités du noyau
  • Cycle de vie du développement du noyau
  • Vue d’ensemble des plateformes embarquées prises en charge

2. Configuration de l’environnement de développement

  • Préparation de la station de travail
  • Concepts de compilation croisée
  • Installation des outils de développement nécessaires
  • Configuration de la carte de développement BeagleBone Black
  • Configuration de la console série
  • Amorçage du périphérique cible

3. Obtention et compréhension des sources du noyau

  • Arborescence des sources du noyau Linux
  • Noyaux stables vs noyaux à support long terme
  • Téléchargement des sources du noyau
  • Exploration de la structure du code source
  • Documentation du noyau
  • Gestion des versions du noyau

4. Configuration, compilation et amorçage du noyau

  • Configuration du noyau à l’aide de menuconfig
  • Sélection des fonctionnalités du noyau
  • Compilation croisée du noyau
  • Construction d’images du noyau
  • Installation des modules du noyau
  • Vue d’ensemble du chargeur de démarrage (bootloader)
  • Amorçage d’un noyau personnalisé

5. Fondamentaux de l’arbre de périphériques (Device Tree)

  • Objectif de l’arbre de périphériques
  • Fichiers de source d’arbre de périphériques (DTS)
  • Binaire d’arbre de périphériques (DTB)
  • Concepts de description matérielle
  • Modification des fichiers d’arbre de périphériques
  • Construction et déploiement des arbres de périphériques

6. Modules du noyau Linux

  • Architecture des modules du noyau
  • Construction de modules de noyau chargeables
  • Chargement et déchargement des modules
  • Paramètres des modules
  • Dépendances entre modules
  • Interaction avec les modules du noyau
  • Techniques de débogage de modules

7. Débogage du noyau Linux

  • Journalisation du noyau avec printk()
  • Utilisation de dmesg
  • Débogage dynamique
  • Analyse des pannes critiques du noyau (kernel panic)
  • Messages d’erreur Oops
  • Débogage avec GDB
  • Outils de base de traçage des performances

8. Pilotes de périphériques en caractères

  • Modèle de pilote de périphérique Linux
  • Périphériques en caractères
  • Enregistrement des pilotes
  • Opérations sur les fichiers
  • Opérations de lecture et d’écriture
  • Interface IOCTL
  • Gestion de la mémoire
  • Nettoyage des pilotes (cleanup)

9. Intégration des pilotes et accès au matériel

  • Périphériques et pilotes de plateforme
  • Programmation des E/S en général (GPIO)
  • Gestion des interruptions
  • Minuteries et travaux différés
  • Accès aux registres matériels
  • Travail avec les E/S mappées en mémoire

10. Contrôle de version avec Git

  • Fondamentaux de Git
  • Gestion du code source du noyau
  • Création de branches et fusion
  • Création de correctifs (patches)
  • Revue des modifications
  • Collaboration sur le développement du noyau

11. Travaux pratiques de développement du noyau

  • Configuration d’un noyau personnalisé
  • Construction et déploiement du noyau
  • Création d’un module de noyau simple
  • Développement d’un pilote de périphérique en caractères de base
  • Modification des fichiers d’arbre de périphériques
  • Débogage de problèmes de noyau sur BeagleBone Black

12. Bonnes pratiques et synthèse

  • Style de codage du noyau
  • Rédaction de pilotes maintenables
  • Écueils courants du développement
  • Ressources de documentation du noyau
  • Flux de contribution open source
  • Rappel des concepts clés
  • Questions et réponses
  • Étapes suivantes pour le développement du noyau Linux

Pré requis

Connaissances de base de l’utilisation d’un système GNU/Linux

Nombre de participants


Prix par participant

Nos clients témoignent (2)

Cours à venir

Catégories Similaires