Formation Ecriture de drivers et programmation noyau Linux


REFERENCE
 
 
ULED
DUREE
 
 
4 jours
TARIFS
 
 
2290 € HT
Niveau : Expert
Cours à distance: Possible
OBJECTIFS :
 

Le support pour les périphériques est assuré sous Linux par des pilotes (drivers) dont le code se déroule dans le noyau du système d'exploitation. Il est donc nécessaire pour le développeur amené à écrire ou à tester des pilotes de périphériques de maîtriser les concepts propres à la programmation noyau. Cette formation Linux Drivers propose une approche originale, s'appuyant sur l'écriture progressive de pilotes de différents types, pour appréhender les mécanismes parfois complexes (préemptibilité, multiprocesseur, support d'architectures différentes, etc.) inhérents au code exécuté en mode noyau. Cette formation Linux drivers vous permettra de maîtriser le développement de pilotes de périphériques (drivers) robustes et adaptés aux différentes déclinaisons de Linux. Outre les périphériques classiques (caractère, bloc, réseau), son étudié les sous-systèmes du noyau tels que les systèmes de fichiers ou l'ensemble USB.

PRÉ-REQUIS :
 

Connaissance de Linux (utilisateur) et bonne familiarité avec le langage C.

PROGRAMME :
 

Programmer pour le noyau Linux

Noyau Linux et modules modèle, version, licence GPL, développement du kernel, appels-système, modules. Travaux pratiques Observation des appels-système invoqués par des applications et commandes utilisateur. Manipulation des modules précompilés. Outils de développement noyau sources, compilation noyau et modules,écriture et compilation de modules, cross-compilation, messages, dépendances. Travaux pratiques Compilation et installation d'un noyau. Écriture de module simple. Intégration dans le noyau. Paramètres de boot. Cross-compilation sur Raspberry Pi. API du noyau chaînes, blocs mémoire, fonctions numériques et conversions, éléments temporels et actions différées, préemptibilité du noyau.Travaux pratiques Écriture d'un module d'horodatage. Chronométrage des phases de boot. Mesure de précision d'horloge. Mesure de durée d'appel-système. Environnement du noyau tâches et processus current, espaces d'adressage, dialogue avec /proc. Travaux pratiques Écriture d'un module d'information sur les structures internes des processus. Écriture d'un module d'horodatage via /proc. Test sur Raspberry Pi.

Écriture d'un driver Linux

Écriture d'un pilote de périphérique principes, numéros majeurs et mineurs, classes de périphériques, enregistrement du driver, fonctions de lecture et écriture. Travaux pratiques Manipulation des fichiers spéciaux. Réservation de numéro majeur. Enregistrement de périphérique. Écriture d'un driver simple. Appels-systèmes et I/O Paramétrage par ioctl. Synchronisation d'appels-système par mutex. Accès matériel. Ports d'entrée-sorties. GPIO sur carte embarquéTravaux pratiques Mise en évidence de la nécessité des mutex. Écriture d'un driver d'entrée-sorties sur GPIO du Raspberry Pi. Gestion d'interruptions contextes d'exécution, installation d'un handler, traitement différé (tasklet, workqueue et threaded interrupts).Travaux pratiques Écriture d'un gestionnaire d'interruption sur interruption clavier PC et sur GPIO du Raspberry Pi. Visualisation des threadeds interrupts. Interactions entre appels-système et interruptions protection des variables globales (spinlock), attentes d'événements (waitqueue), appels-système bloquants.Travaux pratiquesInfluence des priorités temps-réel sur les threads d'interruption. Mesure de temps de latence des interruptions du Raspberry Pi.

Aspects avancés d'un driver de périphérique

Entrées-sorties avancées multiplexage d'entrée-sorties (select et poll), principes des transferts de données par DMA.Travaux pratiques Création d'un périphérique "file de messages" virtuel implémentant plusieurs appels-système. Implémentation de select sur des entrées GPIO.  Gestion de la mémoire allocation et libération de mémoire (kmalloc, vmalloc, get_free_pages, kmem_cache), projections (mmap).Travaux pratiques Expériences sur la projection mémoire en espace utilisateur. Allocations mémoire maximales. Périphériques blocs et VFS principes, enregistrement, disque générique, file de requêtes,partitionnement, sous-système Block, i/o scheduler, Virtual File System. Travaux pratiques Écriture d'un driver de disque virtuel. Partitionnement, formatage et montage de disque virtuel. Observation des effets des caches-disques du VFS. Périphériques PCI Express principe, détection et enregistrement de driver, Base Address Registers, interruptions classiques et MSI.Travaux pratiques Étude d'un driver PCIe de pilotage d'une carte à FPGA.

Périphériques réseau et USB

Périphériques réseau interfaces bas-niveau et protocoles réseau, périphérique net_device, enregistrement, activation, émission et réception de paquets. Travaux pratiques Ecriture progressive d'un driver pour périphérique virtuel permettant l'utilisation du protocole IPv4. Communications réseau Statistiques d'utilisation d'interface, principes de la pile IP, communications entre protocoles et interface bas-niveau. Travaux pratiques Examen du trajet des données au sein de la pile IPv4 lors de réception et d'émission de données avec le protocole TCP/IP. Périphériques USB  Organisation du sous-système USB de Linux, implémentation d'un driver Interrupt, type de endpoints, Communication avec les URB. Travaux pratiques Écriture d'un driver pour carte d'entrée-sortie Velleman K8055. Aspects avancés  écritures successives rapides, déconnexions intempestives, accès concurrents, Exemples de drivers Bulk, Control et Isochrones.

TRAVAUX PRATIQUES :
 

Les exercices et démonstrations ont lieu, suivant les sujets, sur plate-forme PC ou sur carte ARM Raspberry Pi.

Les avis figurant ci-dessous sont issus des fiches d’évaluation que remplissent les participants à la fin de la formation. Ils sont ensuite publiés automatiquement si les personnes ont explicitement accepté que nous les diffusions. Avis des participants à la formation Ecriture de drivers et programmation noyau Linux : Note moyenne : 5/5
5/5
Avis certifié A suivi un cours chez PLB
LA
Mon avis sur le contenu du stage: Support très bien organisé et itératif, bien indexé. Les seules idée d'évolution du support auquel je pense (minimes) sont les suivantes : * voir s'il est possible d'avoir un repère encore plus direct entre un slide et l'exemple de code source en cours. * renommer les exemples pour ajouter un caractère avant les indices afin de dissocier les chapîtres. Il n'y a alors plus de confusion possible quand on lit "exemple_03" dans le document papier. Mon avis sur le formateur: Parfait. La chance d'être le peu de stagiaires a permis une très grande interactivité. Mon avis sur la salle de formation: Les postes de travail Cent-OS ont une installation un peu étrange. Certains paquets basiques ne sont pas installés (un navigateur web, les man pages). Ce que j'ai le plus apprécié: Comité (très) réduit, environnement propre est clair, Ce que j'ai le moins apprécié: fil de la souris mal placé car il se bloque systématiquement entre les tables, Le switch vidéo était à redémarrer à certains boots de la machine du formateur
S'INSCRIRE À CETTE
FORMATION LINUX DRIVERS
Cliquez sur une date pour vous inscrire
Information pratiques sur
LA FORMATION
Lieu de la formation Paris - LA DEFENSE
Nous contacter 01 43 34 90 94
CETTE FORMATION SUR-MESURE Ce cours est réalisable en intra-entreprise, dans vos locaux ou nos salles de cours CONTACTER NOTRE SERVICE INTRA
D'autres formations
SUR LE MÊME THÈME

3 j

 
Le Développement d'application système sous Linux ou Unix exige de la rigueur et une connaissance structurée des API. Cette formation vous permettra de maîtriser...

4 j

 
Cette formation Linux embarqué vous permettra de: - Découvrir l'ensemble des outils de développement industriel disponibles librement sous Linux, - Disposer de...

3 j

 
En fonction des contraintes temporelles qui lui sont imposées, le développeur dispose de plusieurs possibilités pour construire une application sur Linux. Depuis les processus...

3 j

 
Le Raspberry Pi est un ordinateur « low cost » (il faut compter dans les 35€) de la taille d’une carte de crédit, le but initial était de donner accès...
Plus de formations sur le même thème

Des questions ?

ON VOUS RAPPELLE

 

0

Formations
Informatique
et Management
en ligne à ce jour

+ 0

Stagiaires dans nos
salles de cours sur
l'année

0%

De participants
satisfaits ou très
satisfaits de nos
formations

0

Formateurs experts
validés PLB