Reminders on kernel programming
- Reminders on kernel module development
- Kernel objects
||Writing a kernel module creating and using kernel objects and sets
||Interacting with a kernel module through a kernel object and the sysfs file sytem
||Writing a kernel module sending hotplug events to a user mode program.
||Cross-compiling, configuring and using Udev.
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
||Writing a platform device driver showing how device matching work
Power-management : APM and ACPI
- The APM standard.
- The ACPI standard.
||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
- Debugging power management
||Writing a kernel module reacting to suspend in RAM and system wakeup
Cpu frequency governors
- The cpufreq user interface.
- The various governors available.
Idle Cpu governors
- The Idle task.
- The Idle device concept.
- CpuIdle governors.
- The USB bus
- USB devices
- USB descriptors
- USB endpoints
- USB requests
- User view of the USB bus and devices
- USB device drivers
- Communicating with devices through URBs
||Writing a basic usb device driver using URBs
||Writing an usb device driver using synchronous request management
The libUSB user-mode USB driver framework
- The libUSB libraries.
- libUSB 0.1.12.
- libUSB 1.0
||Writing a user-mode USB driver using libUSB
USB gadget drivers
- Basic USB gadgets.
- Composite USB gaddget drivers.
||Writing a gadget driver and the corresponding host driver on the Linux workstation.
- The USB On-The-Go (OTG) specification.