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 |
Exercise: |
Interacting with a kernel module through a kernel object and the sysfs file sytem |
Hotplug
Exercise: |
Writing a kernel module sending hotplug events to a user mode program. |
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.
|