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 la page Ecrivez nous

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
  • Un pc par binôme
  • Une carte cible par binôme
  • Support de cours
  • Bonne pratique de la programmation en C sous Linux.
  • Connaissance de la programmation Linux kernel (niveau cours D3)
  • Cours théorique
    • Support de cours imprimé et au format PDF (en anglais).
    • Le formateur répond aux questions des stagiaires en direct pendant la formation et fournit une assistance technique et pédagogique.
  • Activités pratiques
    • Les activités pratiques représentent de 40% à 50% de la durée du cours.
    • Elles permettent de valider ou compléter les connaissances acquises pendant le cours théorique.
    • Exemples de code, exercices et solutions
    • Un PC (Linux ou Windows) par binôme de stagiaires (si plus de 6 stagiaires) pour les activités pratiques avec, si approprié, une carte cible embarquée.
    • Le formateur accède aux PC des stagiaires pour l'assistance technique et pédagogique.
  • Une machine virtuelle préconfigurée téléchargeable pour refaire les activités pratiques après le cours
  • Au début de chaque demi-journée une période est réservée à une interaction avec les stagiaires pour s'assurer que le cours répond à leurs attentes et l'adapter si nécessaire
  • Tout ingénieur ou technicien en systèmes embarqués possédant les prérequis ci-dessus.
  • Les prérequis indiqués ci-dessus sont évalués avant la formation par l'encadrement technique du stagiaire dans son entreprise, ou par le stagiaire lui-même dans le cas exceptionnel d'un stagiaire individuel.
  • Les progrès des stagiaires sont évalués de deux façons différentes, suivant le cours:
    • Pour les cours se prêtant à des exercices pratiques, les résultats des exercices sont vérifiés par le formateur, qui aide si nécessaire les stagiaires à les réaliser en apportant des précisions supplémentaires.
    • Des quizz sont proposés en fin des sections ne comportant pas d'exercices pratiques pour vérifier que les stagiaires ont assimilé les points présentés
  • En fin de formation, chaque stagiaire reçoit une attestation et un certificat attestant qu'il a suivi le cours avec succès.
    • En cas de problème dû à un manque de prérequis de la part du stagiaire, constaté lors de la formation, une formation différente ou complémentaire lui est proposée, en général pour conforter ses prérequis, en accord avec son responsable en entreprise le cas échéant.

Plan du cours

  • 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.
  • 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.
  • 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 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.
  • 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.
  • 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.
  • 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.
  • 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
  • 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
  • The libUSB libraries.
    • libUSB 0.1.12.
    • libUSB 1.0
Exercise :  Building libUSB
Exercise :  Writing a user-mode USB driver using libUSB
  • 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