Prenez contact avec nous
 Durée 14 heures

Plan du cours

1. Introduction au noyau Linux

  • Aperçu de Linux embarqué
  • Architecture du noyau Linux
  • Espace utilisateur vs espace noyau
  • Rôles et responsabilités du noyau
  • Flux de travail de développement du noyau
  • Aperçu 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 requis
  • Configuration de la carte de développement BeagleBone Black
  • Configuration de la console série
  • Amorçage de l'appareil cible

3. Obtention et compréhension du code source du noyau

  • Arborescence du code source 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 des images de noyau
  • Installation des modules du noyau
  • Aperçu des chargeurs d'amorçage (bootloaders)
  • Amorçage d'un noyau personnalisé

5. Fondamentaux de l'arborescence d'appareils (Device Tree)

  • Objectif de l'arborescence d'appareils
  • Fichiers sources Device Tree (DTS)
  • Objets binaires Device Tree (DTB)
  • Concepts de description du matériel
  • Modification des fichiers Device Tree
  • Construction et déploiement des arborescences d'appareils

6. Modules du noyau Linux

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

7. Débogage du noyau Linux

  • Journaux 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 suivi de performance de base

8. Pilotes d'appareils à caractères

  • Modèle de pilote de périphérique Linux
  • Appareils à 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 du pilote

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

  • Appareils et pilotes de plateforme
  • Programmation des entrées/sorties numériques (GPIO)
  • Gestion des interruptions
  • Minuteries et tâches différées
  • Accès aux registres du matériel
  • Travail avec l'entrée/sortie mémo-mapée (memory-mapped I/O)

10. Contrôle de version avec Git

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

11. Laboratoires 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 d'appareil à caractères de base
  • Modification des fichiers Device Tree
  • Débogage des problèmes du noyau sur BeagleBone Black

12. Bonnes pratiques et résumé

  • Style de codage du noyau
  • Écriture de pilotes évolutifs et maintenables
  • Pièges courants du développement
  • Ressources de documentation du noyau
  • Flux de travail pour les contributions open source
  • Révision des concepts clés
  • Questions et réponses
  • Prochaines étapes 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