Linux Driver Framework: Buses, Devices & Drivers
Understand the driver model every Linux driver plugs into: buses, devices, drivers, device tree and subsystems.
Intermediate29 lessons
written lessons≈ 15 h
Linux Kernel & Device Drivers · 30 illustrated lessons (text/HTML)
Outcomes
- Map any driver onto the bus, device and driver model
- Write platform, I2C and SPI drivers with device-tree bindings
- Use input, framebuffer, block and network subsystem frameworks
Where we teach this
- DRV-120 · Platform Drivers & Device Tree live cohort
The lessons
Every lesson in this curriculum, in the order we teach it.
- 2Kernel module overview
- 3The Linux character driver framework in detail
- 4Device files and user-space interaction
- 5Core concepts of the Linux device model
- 6Overview of the bus, device and driver model
- 7Platform device drivers explained
- 8Platform device drivers in practice: a simple virtual platform device driver
- 9Device tree basics
- 10Combining the device tree with drivers
- 11The Linux I2C bus driver model in depth
- 12I2C driver model overview
- 13The SPI bus driver model
- 14Writing an SPI device driver: data transfers, message queues, chip select and clock configuration
- 15The PCI/PCIe bus driver model
- 16The USB bus driver model
- 17The Linux input subsystem in detail
- 18Writing an input device driver
- 19Framebuffer drivers explained
- 20Network device drivers: net_device, NAPI and interface operations
- 21Block device drivers: gendisk, request_queue, the bio struct and block I/O requests
- 22Core concepts: classes and devices
- 23Linux power management overview
- 24Interrupt handling
- 25Linux kernel synchronisation in detail
- 26Course overview
- 27Introduction: why kernel debugging matters
- 28Driver porting and compatibility
- 29Driver capstone: a character driver using the device tree and the platform bus
- 30Core course recap
All-access library
Every curriculum on this page, with the labs and lab sequences, for a year.