ac6-training, un département d'Ac6 SAS
 
Site affiché en Français
Site affiché en FrançaisVoir le site en English (USA)Voir le site en English (GB)
+ +
- -
Cours en ligne
 
Calendrier  Détails
Systèmes d'Exploitation
 
Calendrier  Détails
Programmation
Calendrier  Détails
Processors
 
Calendrier  Détails
Communications
 
 
 
Calendrier  Détails
+ +
> >
- -

ac6 >> ac6-training >> Systèmes d'Exploitation >> Linux >> Drivers USB Linux Télécharger le catalogue Télécharger la page Ecrivez nous Version imprimable

D8 Drivers USB Linux

Ecriture de drivers USB-2.0 et USB-3.0 sous Linux

Ecriture de drivers USB-2.0 et USB-3.0 sous Linux
formateur
Objectifs
  • Apprendre à créer des drivers device et gadgets pour USB-2.0 et USB-3.0
    • Explorer la richesse de Linux concernant les drivers USB hôte.
    • Comprendre le support Linux des gadgets USB.
    • Découvrir le support du standard OTG (2.0 et 3.0)
  • Comprendre les spécificités du noyau Linux dans la gestion des devices et des drivers.
  • Savoir paramétrer le noyau Linux à la compilation et en fonctionnement pour une gestion optimale du hotplug.
    • Comprendre comment sont générés les événements hotplug et savoir les utiliser dans l'écriture de ses drivers.
    • Installer et utiliser les projets externes hotplug : Udev, libusb, etc...
  • Connaître les évolutions de Linux jusqu'au noyaux 2.6.3ç et 3.x.
  • Maîtriser les techniques de debugging noyau.
Nous utilisons un noyau Linux récent, disponible sur www.kernel.org ou fourni avec la distribution Linux utilisée
Matériel
  • Un pc par binôme
  • Une carte cible par binôme
  • Support de cours
Pré-requis
  • Bonne pratique de la programmation en C sous Linux.
  • Connaissance de la programmation Linux kernel (niveau cours D3)
Prerequisite

1er jour
Programmation noyau (rappels)
  • Le développement de module noyau.
  • Les objets du noyau.
  • Le système de fichier sysfs.
Exercise :  Ecriture d'un module noyau illustrant la création et l'utilisation des ksets et kobjs.
First day
Hotplug
  • Hotplug Kernel : Les uevents
  • Hotplug Utilisateur : Udev
  • Hotplug Utilisateur : Hal et Dbus
Exercise :  Ecriture d'un module noyau émettant ses propres événements hotplug.
Exercise :  Compilation croisé, paramétrage et utilisation de l'outil Udev.
2ème jour
Devices et Drivers
  • Le modèle device/driver sous Linux.
  • Les classes et types de périphériques.
  • Les types de bus.
  • Devices & drivers génériques.
  • Devices & drivers système.
  • Devices & drivers plate-forme.
Exercise :  Ecriture d'un device et d'un driver plate-forme illustrant les mécanismes de matching interne.
Hotplug
  • Hotplug in the kernel
    • uevents
Exercise :  Writing a kernel module sending hotplug events to a user mode program.
  • Hotplug at user level
    • Udev
    • Hal and Dbus
Exercise :  Cross-compiling, configuring and using Udev.
Drivers USB
  • Le bus USB.
  • Les périphériques USB.
  • L'interface utilisateur USB.
  • Les descripteurs USB.
  • Les requêtes USB.
  • Les pilotes USB.
Exercise :  Ecriture d'un module noyau usb illustrant l'utilisation des urbs.
Exercise :  Ecriture d'un version du même module utilisant les requêtes usb synchrones.
3ème jour
La libUSB
  • Les bibliothèques libUSB.
  • La libUSB 0.1.12.
  • La libUSB 1.0
Exercise :  Compilation croisée de la libusb.
Exercise :  Ecriture d'un driver usb tournant dans l'espace utilisateur.
Second Day
Drivers USB gadget
  • Les pilotes gadget USB.
  • Les pilotes gagdet USB composites.
  • Les pilotes gadget USB OTG.
Exercise :  Ecriture d'un driver gadget coté cible et du driver correspondant coté pc.
Devices and Drivers
  • The Device/Driver model in Linux
    • Device class and types
    • Bus drivers
  • Bus types
    • Generic devices and drivers
    • System devices and drivers
    • Platform devices and drivers
Exercise :  Writing a platform device driver showing how device matching work
USB Drivers
  • The USB bus
    • USB devices
    • USB descriptors
    • USB endpoints
    • USB requests
  • User view of the USB bus and devices
  • USB device drivers
    • Hotplug
    • Communicating with devices through URBs
Exercise :  Writing a basic usb device driver using URBs
Exercise :  Writing an usb device driver using synchronous request management
Third Day
The libUSB user-mode USB driver framework
  • The libUSB libraries.
    • libUSB 0.1.12.
    • libUSB 1.0
Exercise :  Building libUSB
Exercise :  Writing a user-mode USB driver using libUSB
USB gadget drivers
  • Basic USB gadgets.
  • Composite USB gaddget drivers.
Exercise :  Writing a gadget driver and the corresponding host driver on the Linux workstation.
  • The USB On-The-Go (OTG) specification.
    • OTG support in Linux