Linux Device Driver Crash Course
The fastest route to a working Linux driver: character devices, interrupts, I2C, SPI, PCI and USB in one course.
Beginner30 lessons
written lessons≈ 15 h
Linux Kernel & Device Drivers · 30 illustrated lessons (text/HTML)
Outcomes
- Write, load and test a character-device driver
- Handle interrupts, memory mapping and async notification
- Understand the device model and the main bus types
Where we teach this
The lessons
Every lesson in this curriculum, in the order we teach it.
- 1Course introduction
- 2Kernel module programming basics
- 3The character-device driver framework (part 1)
- 4The character-device driver framework (part 2)
- 5Linux kernel memory management
- 6Kernel synchronisation (part 1)
- 7Kernel synchronisation (part 2)
- 8Kernel timers and delays
- 9Interrupt handling (part 1)
- 10Interrupt handling (part 2)
- 11Platform device drivers and the device tree (part 1)
- 12Device tree (part 2)
- 13GPIO drivers
- 14Linux kernel I/O memory and ports
- 15Blocking and non-blocking I/O
- 16Asynchronous notification (signal-driven I/O)
- 17mmap device operations
- 18The Linux device model (part 1)
- 19The Linux device model (part 2)
- 20The input subsystem
- 21Linux kernel I2C subsystem driver crash course
- 22The SPI subsystem
- 23Introduction to PCI and PCIe drivers
- 24USB device drivers (part 1)
- 25USB device drivers (part 2)
- 26Linux kernel network device driver crash course
- 27Introduction to block device drivers
- 28Kernel debugging techniques
- 29Driver performance optimisation and security
- 30Course summary and project practice
All-access library
Every curriculum on this page, with the labs and lab sequences, for a year.