Formation Linux Kernel et Drivers Développement de modules

Formation Linux embarqué

Durée : 4 jours
Sessions : intra-entreprise
Support : module i.MX 6

Référence produit : PHYTEC-5136

Tarif et adaptation de contenu sur demande

demande de prix

intra-entreprise
Formation PHYTEC-5136
Quote




Objectifs

Cette formation «Linux Kernel et Drivers» permet aux développeurs en informatique de maîtriser les concepts et les outils de développement croisé d’applications et de modules (drivers) GNU/Linux sur système industriel et cible embarquée sous Yocto.
Cette formation aborde les concepts du développement de modules en kernel mode et de drivers sous Linux par l’étude :

• des chaînes de développement GNU/Linux en mode kernel sous Yocto,
• des spécificités du système Linux et de son noyau,
• du développement de modules Kernel et de pilotes de périphériques sous OS Linux.

Pre-requis

La formation Linux Kernel et Drivers est adaptée aux développeurs en informatique et techniciens débutants dans le domaine de l’informatique Open Source, confrontés aux problèmes de portage d’applications, de contrôles industriels et de l’embarqué sous OS GNU/Linux. Une maîtrise du langage C est nécessaire.

1ère journée

Linux : Chaîne de développement croisé

• Méthodes, outils et chaîne de développement croisé, binutils, glibc, etc…

• Makefile, Compilateur et débogueur GNU

• SDK Yocto pour développement et mise au point Kernel/Driver

• Mise au point par port série et TCP/IP

Linux Kernel : Présentation

• Vue d’ensemble du système et rôle du noyau

• Historique, numérotation des versions, spécificité de la GPL

• Architectures matérielles supportées

• Support processeurs et File system

• Kernel 4.x pour systèmes embarqués et devicetree

Linux Kernel : Configuration et compilation du noyau

• Structure des sources et modules du noyau

• Optimisation - Ordonnancement préemptifs - Patchs low-latency PREEMPT-RT

• Fichiers utilisés par les outils de configuration

• Application de patchs et utilisation de BSP sous Yocto

• Configuration et compilation du noyau

Travaux pratiques

• Modification de devicetree et patch des sources noyau à l'aide de l'utilitaire GIT sous Yocto pour cible Cortex-A9 i.MX 6

• Compilation de noyau optimisé pour le cross développement sous Yocto Projet pour
   cible Cortex-A9 i.MX 6

• Mise en oeuvre du SDK Yocto pour cible Cortex-A9 i.MX 6

2ème journée

Linux Module : Développement de pilotes

• Pilotes de périphériques sous Linux

• Contraintes de programmation et API Kernel Mode

• Chargement, déchargement de modules

• Un module simple

• Accès aux registres d’E/S et à la mémoire

• Gestion de la mémoire en kernel mode

• Pilotes de type caractère

Linux Module : Installation et paramétrage de pilotes

• Paramètres de chargement de modules

• Systèmes de fichiers sysfs et entrées procfs

• Dépendances entre modules

• Intégration de module propriétaire dans la chaine de configuration et de compilation des 
   sources officielles

Travaux pratiques

• Compilation d’un noyau instrumenté pour le débogage de module

• Ajout de sources d’un module à l’arborescence du noyau

• Création de patchs Kernel

3ème journée

Linux Module : Services et configurations pour la mise au point en Kernel Mode
• Console série
• LTT : Linux Trace Toolkit
• Débogueur Kernel Mode : KGDB

Linux Driver : Développement avancé de pilotes
• Mise en sommeil, interruptions, mmap, DMA
• Fichiers de périphériques dynamiques avec udevs

Linux Driver : Périphérique de type caractères particuliers
• Driver de port série et support console série…

Travaux pratiques

• Création et installation d’un pilote de périphérique de type caractère sur cible iMX6

• Traitement d’interruption matérielle en Kernel mode sur port E/S

• Mise en oeuvre de débogage GDB / JTAG et traces ETM Lauterbach sur plate-forme i.MX 6

4ème journée

Linux Driver : Hardware detection et classe pilotes de périphériques industriels

  • Extensions ISA/PC104, bus CAN, I²C, SPI, ...
  • Cas particulier du PCI et PCIe

Linux Driver : Développement avancé de pilotes (suite)
• Architecture des pilotes de périphériques de type bloc
• Architecture des pilotes de périphériques de type réseau
• Frame Buffer vidéo

Linux Driver : Etude de périphériques de type USB
• Standard USB et support Linux Host et Device
• USB Core - Architecture des pilotes USB sous Linux
• Descripteur et classe USB device sous Linux : HID, CDC, Masse storage ...

Travaux pratiques
• Création et installation d’un pilote de périphérique de type bloc
• Accès Direct Frame Buffer
• Mise en oeuvre de drivers USB sous Linux avec analyseur Lecroy

Télécharger programme pdf

Télécharger programme en format pdf