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
- Fonctions du noyau
- Méthodologie de développement du noyau
- Aperçu des plateformes embarquées prises en charge
2. Mise en place de l'environnement de développement
- Préparation de la station de travail de développement
- Concepts de la compilation croisée
- Installation des outils de développement requis
- Mise en place de la carte de développement BeagleBone Black
- Configuration de la console série
- Démarrage du périphérique cible
3. Obtention et compréhension du code source 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 démarrage du noyau
- Configuration du noyau via 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 programme de démarrage (bootloader)
- Démarrage d'un noyau personnalisé
5. Fondamentaux du Device Tree
- Objectif du Device Tree
- Fichiers source du Device Tree (DTS)
- Binaire du Device Tree (DTB)
- Concepts de description matérielle
- Modification des fichiers Device Tree
- Génération et déploiement des Device Trees
6. Modules du noyau Linux
- Architecture des modules du noyau
- Génération de modules chargeables (LKM)
- 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 kernel panic
- Messages Oops
- Débogage avec GDB
- Outils de base pour la traçabilité des performances
8. Pilotes de périphériques en caractères
- Modèle de pilote de périphérique Linux
- Périphériques caractères
- Inscription 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 pilates de plateforme
- Programmation GPIO
- Gestion des interruptions
- Horloges et travail différé
- Accès aux registres matériels
- E/S mappée en mémoire
10. Gestion 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 sur le développement du noyau
- Configuration d'un noyau personnalisé
- Génération et déploiement du noyau
- Création d'un module noyau simple
- Développement d'un pilote de périphérique caractère basique
- Modification des fichiers Device Tree
- Débogage des problèmes du noyau sur BeagleBone Black
12. Bonnes pratiques et synthèse
- Style de codage du noyau
- Rédaction de pilotes maintenables
- Pièges courants lors du développement
- Ressources de documentation du noyau
- Méthodologie de contribution au logiciel libre
- Revue des concepts clés
- Questions et réponses
- Prochaines étapes pour le développement du noyau Linux
Pré requis
Connaissance 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