ac6-training, un département d'Ac6 SAS
Site displayed in English (USA)
View the site in FrenchSite affiché en English (USA)Voir le site en English (GB)
+ +
- -
Online Training
Calendar  Details
Operating Systems
Calendar  Details
Calendar  Details
Calendar  Details
Calendar  Details
+ +
> >
- -

ac6 >> ac6-training >> Operating Systems >> Linux >> USB Linux Drivers Download Catalog Download as PDF Write us Printable version

D8 USB Linux Drivers

Writing USB-2.0 and USB-3.0 host and gadget drivers on Linux

Writing USB-2.0 and USB-3.0 host and gadget drivers on Linux
  • Learn to write Linux drivers for USB-2.0 and USB-3.0
    • Explore the Linux USB host-driver stack
    • Learn the structure of USB device drivers
    • Discover USB gagdet drivers (2.0 and 3.0)
    • Understand the support for OTG-2.0 and OTG-3.0.
  • Understand the specifics of the Linux kernel in the management of devices and drivers.
  • Learn to configure the Linux kernel for optimal hotplug management.
    • Understand how hotplug events are generated and how to use them in drivers.
    • Install and use external hotplug daemons: udev, libusb, etc ...
  • Discover Linux kernel changes up to the latest versions (up to 3.6.39 and 3.x).
  • Master the techniques of kernel debugging.
We use a recent linux kernel, as provided by the distribution used or available on
Course environment
  • A PC workstation and a target board per two trainees group.
  • Printed course material.

First day
Reminders on kernel programming
  • Reminders on kernel module development
  • Kernel objects
Exercise:  Writing a kernel module creating and using kernel objects and sets
  • The sysfs file system
Exercise:  Interacting with a kernel module through a kernel object and the sysfs file sytem
  • 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.
Second Day
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