+ +
- -
Online Training
Calendar  Details
Operating Systems
Calendar  Details
Calendar  Details
Calendar  Details
Calendar  Details
+ +
> >
- -

ac6 >> ac6-training >> Operating Systems >> Linux >> Linux USB Drivers, HotPlug and Power Management Download Catalog Download as PDF Write us Printable version

D7 Linux USB Drivers, HotPlug and Power Management

Writing drivers with hot-plug and power management support

Writing drivers with hot-plug and power management support
  • Configure the Linux kernel for optimal hotplug and power management.
  • Understand the specifics of the Linux kernel in the management of devices and drivers.
  • Understand how are generated hotplug events and how to use them in writing its drivers.
  • Understand how Linux manages the power-management
    • To write drivers integrated in this scheme
    • To optimize low power modes
  • Install and use hotplug and power-management utilities: udev, libusb, etc ...
  • Explore the wealth of Linux drivers for USB host and OTG gagdet.
  • Know the changes in the latest Linux kernels (2.6.30 and beyond).
  • Master the techniques of kernel debugging with Lauterbach JTAG probes.
Labs are conducted on target boards, that can be:
    Atmel ARM9-based boards, with Lauterbach JTAG probes.
We use the last linux kernel, as delivered on www.kernel.org.

Labs are conducted using the System Workbench for Linux - Basic Edition IDE.

Course environment
  • A PC workstation and a target board per two trainees group with Lauterbach JTAG probe.
  • Printed course material.
  • CDROM with documentation and exercises solutions.
  • Good practice of C programming on Linux
  • Basic knowledge of Linux kernel and driver programming (see our D3 - Linux Drivers course)

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
Power-management : APM and ACPI
  • The APM standard.
  • The ACPI standard.
Exercise:  Writing a user program to shut down the system.
Power-management, suspend and hibernate
  • Power management in drivers
  • Freezing tasks
  • Suspend in RAM
  • Suspend on Disk
    • Hibernate
  • Debugging power management
Exercise:  Writing a kernel module reacting to suspend in RAM and system wakeup
Third Day
Cpu frequency governors
  • The cpufreq user interface.
  • The various governors available.
Idle Cpu governors
  • The Idle task.
  • The Idle device concept.
  • CpuIdle governors.
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
Fourth 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