Merci d'avoir envoyé votre demande ! Un membre de notre équipe vous contactera sous peu.
Merci d'avoir envoyé votre réservation ! Un membre de notre équipe vous contactera sous peu.
Plan du cours
1. Introduction au noyau Linux
- Vue d'ensemble de Linux embarqué
- Architecture du noyau Linux
- Espace utilisateur vs espace noyau
- Rôles du noyau
- Flux de travail de développement du noyau
- Vue d'ensemble des plateformes embarquées prises en charge
2. Mise en place de l'environnement de développement
- Préparation de la station de travail
- Notions 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
- Démarrage 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 pris en charge à 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 démarrage 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
- Vue d'ensemble du chargeur de démarrage (bootloader)
- Démarrage d'un noyau personnalisé
5. Fondamentaux de l'arborescence de périphériques (Device Tree)
- Objet de l'arborescence de périphériques
- Fichiers de source Device Tree (DTS)
- Objet binaire Device Tree (DTB)
- Concepts de description matérielle
- Modification des fichiers Device Tree
- Construction et déploiement des arborescences de périphériques
6. Modules du noyau Linux
- Architecture des modules du noyau
- Construction de modules de noyau chargables
- 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
- Journalisation du noyau avec printk()
- Utilisation de dmesg
- Débogage dynamique
- Analyse des pannes du noyau (kernel panic)
- Messages Oops
- Débogage avec GDB
- Outils de traçage des performances de base
8. Pilotes de périphériques en caractères
- Modèle de pilote de périphériques 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 du pilote
9. Intégration des pilotes et accès au matériel
- Périphériques et pilotes de plateforme
- Programmation GPIO
- Gestion des interruptions
- Minuteries et travaux différés
- Accès aux registres matériels
- Travail avec l'E/S mappée en mémoire
10. Contrôle de version avec Git
- Fondamentaux de Git
- Gestion du code source du noyau
- Branchement et fusion
- Création de correctifs (patches)
- Revue des modifications
- Collaboration dans 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 Device Tree
- Débogage des problèmes de noyau sur BeagleBone Black
12. Bonnes pratiques et synthèse
- Style de codage du noyau
- Rédaction de pilotes maintenables
- Pièges courants en 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
Notions de base de l'utilisation d'un système GNU/Linux
14 Heures
Nos clients témoignent (2)
La connaissance du formateur. Il a su répondre à toutes mes questions, y compris celles concernant notre plateforme. Il est également resté disponible jusqu'à ce que nous comprenions tous le matériel.
James O'Donnell - Tennant Company
Formation - Embedded Linux Kernel and Driver Development
Traduction automatique
I liked the hands-on nature of it.
Maurice Egan
Formation - Embedded Linux Kernel and Driver Development
Traduction automatique