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
- 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
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