Prenez contact avec nous

Plan du cours

1. Introduction au noyau Linux

  • Aperçu du Linux embarqué
  • Architecture du noyau Linux
  • Espace utilisateur vs. espace noyau
  • Rôle du noyau
  • Flux de travail du développement du noyau
  • Aperçu des plateformes embarquées prises en charge

2. Configuration de l'environnement de développement

  • Préparation du poste de travail de développement
  • 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
  • Démarrage du périphérique cible

3. Obtenir et comprendre le code source du noyau

  • Arborescence des sources du noyau Linux
  • Noyaux stables vs. à support à long terme (LTS)
  • 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 démarrage du noyau

  • Configuration du noyau à l'aide de menuconfig
  • Sélection des fonctionnalités du noyau
  • Compilation croisée du noyau
  • Génération des images du noyau
  • Installation des modules du noyau
  • Aperçu du chargeur d'amorçage (bootloader)
  • Démarrage d'un noyau personnalisé

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

  • Objectif de l'arbre des périphériques
  • Fichiers source de l'arbre des périphériques (DTS)
  • Blob de l'arbre des périphériques (DTB)
  • Concepts de description matérielle
  • Modification des fichiers de l'arbre des périphériques
  • Génération et déploiement des arbres des périphériques

6. Modules du noyau Linux

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

7. Débogage du noyau Linux

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

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

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

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

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

10. Gestion des versions avec Git

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

11. Travaux pratiques : développement du noyau

  • Configuration d'un noyau personnalisé
  • Génération et déploiement du noyau
  • Création d'un module de noyau simple
  • Développement d'un pilote de périphérique caractère basique
  • Modification des fichiers de l'arbre des périphériques
  • Débogage des problèmes du noyau sur la BeagleBone Black

12. Meilleures pratiques et résumé

  • Style de codage du noyau
  • Rédaction de pilotes maintenables
  • Pièges courants du développement
  • Ressources de documentation du noyau
  • Flux de travail de contribution open source
  • Revue 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

 14 Heures

Nombre de participants


Prix par participant

Nos clients témoignent (2)

Cours à venir

Catégories Similaires