Noyau Linux et développement de pilotes

Formations





Accueil du site > fr > Formations > Ateliers - historique 2013 > Noyau Linux et développement de pilotes
Du 2 au 4 juillet 2013TALENCE (33)
Objectif : acquérir les compétences nécessaires aux développements de pilotes de périphériques sous Linux.
Le support pour les périphériques est assuré sous Linux par des pilotes (drivers) dont le code s’exécute 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.

Les pré requis minimum pour la participation à l’atelier sont les suivants :
Connaissance du développement en environnement Unix / Linux
Bonne maîtrise du langage C

Intervenant : Pierre FICHEUX – Société OPEN WIDE

PROGRAMME : Les tests seront réalisés sur des PC/x86 sous Linux. Quelques tests seront réalisés sur une carte ARM « Raspeberry Pi ». Chaque étape du cours sera agrémentée d’un ou plusieurs TP.

Rappels sur Linux
  • Bref historique
  • Licences

Présentation du noyau linux
  • Caractéristiques du noyau Linux : noyau statique et modules dynamiques
  • Présentation des sources, configuration
  • Compilation native (x86) et croisée
  • Compilation d’un noyau à partir des sources et utilisation dans une machine virtuelle QEMU (x86 et ARM)

Développement noyau linux
  • Développement d’un module noyau « Hello World »
  • Pilotes de périphériques : caractère, bloc, réseau
  • Interface avec /dev (majeur et mineur)
  • Présentation de l’API caractère.
    Fonctions open(), read(), write(), ioctl() pour les pilotes en mode caractère
    Echange de données avec l’espace utilisateur : copy_to/from_user()
  • Gestion d’interruption
    top-half et bottom-half
    Module de test pour le clavier x86 et un GPIO ARM
    Récupération d’une interruption dans l’espace utilisateur
  • Accès au matériel : bus USB et PCI
    Présentation des bus PCI & USB
    Utilisation sous Linux (lspci, lsusb, /sys, /proc, ...)
    Architecture d’un pilote générique pour chaque bus
  • Écriture d’un pilote PCI générique pour la carte
    Ethernet du PC de développement
  • Écriture d’un pilote USB pour le capteur de température « TEMPer »
  • Présentation de l’API réseau
    Écriture d’un module de test « faketh » pour l’interface virtuelle « fake0 », test avec tcpdump
    Pilote réseau sur bus PCI et USB (usbnet)
    Principes de la NAPI (Nouvelle API)

Mise au point
  • Présentation et mise en œuvre d’une sonde JTAG et
    de KGDB. On utilisera une émulation sous QEMU.
  • Présentation de Ftrace

INFORMATIONS PRATIQUES

Date et lieu : du mardi 02 juillet au jeudi 04 juillet 2013 de 09h00 à 17h00 – à l’ENSEIRB/MATMECA - Domaine Universitaire - 1 av du Docteur Schweitzer - 33405 TALENCE CEDEX

Public concerné : ingénieurs et techniciens de développement de produits sous Linux.

Participation aux frais :
Pour les adhérents CAP’TRONIC : prise en charge totale du coût de l’inscription dans la limite de 10 hommes.jour dans l’année d’adhésion de l’entreprise. La participation à l’atelier est donc gratuite, l’inscription sera validée à réception d’un chèque de 100 €TTC par personne qui sera renvoyé au participant après l’atelier. En cas d’absence non remplacée à l’atelier, la caution sera encaissée et une facture établie.
Si vous êtes une PME (*) non adhérente, vous pouvez adhérer à l’association JESSICA France pour un montant de 598,00 €TTC, pour cela contactez l’ingénieur CAP’TRONIC.
Pour les grandes entreprises et les PME qui ne souhaitent pas adhérer : 1435,20 € TTC (TVA 19,6 % incluse), soit 1 200 € HT pour les trois journées
Remarque : Nous n’avons pas de numéro d’agrément de formation continue.

Contact et inscription : Thierry ROUBEIX : 05 57 02 09 62 – Réservez votre place par email au plus tôt : cathalinat@captronic.fr Retournez votre chèque d’inscription par courrier : JESSICA France – 43-47 rue Marcel Sembat – 33130 BEGLES
Crédits © JESSICA FRANCE 2005 - 2016
Le programme CAP’TRONIC est financé par le Ministère de l’Economie et des Finances.