Linux Hardware Interaction: USB, PCIe & Network Drivers
Hardware interaction end to end: I/O, DMA, USB, PCI and network drivers, finished with a virtual-hardware project.
Intermediate30 lessons
written lessons≈ 15 h
Linux Kernel & Device Drivers, High-Performance Networking & Cloud-Native · 30 illustrated lessons (text/HTML)
Outcomes
- Explain how the CPU, bus and device exchange data
- Implement DMA engine usage and power management
- Integrate several bus drivers into one working system
Where we teach this
- DRV-201 · Low-Speed Bus Drivers & Interrupt Handling live cohort
- DRV-220 · PCIe Drivers & DMA Engines live cohort
The lessons
Every lesson in this curriculum, in the order we teach it.
- 1Introduction: Linux driver development overview
- 2Kernel module programming explained
- 3Character-device driver basics
- 4Character-device driver in practice
- 5Concurrency and synchronisation in Linux drivers explained
- 6Linux kernel memory management
- 7Interrupt handling
- 8Kernel time and delay mechanisms
- 9Platform device drivers: device trees and the platform bus model
- 10Course overview
- 11USB subsystem architecture: core concepts, host controller drivers (HCD) and the USB device driver model
- 12Course goals
- 13USB HID driver: parsing HID report descriptors and implementing an input device driver
- 14USB mass-storage driver: SCSI command set, Bulk-Only transport and a flash-drive example
- 15USB gadget driver overview
- 16PCI/PCIe bus architecture: configuration space, topology enumeration and resource allocation
- 17PCI/PCIe device driver basics: the PCI driver struct, probe and init, and resource acquisition
- 18Advanced PCIe device driver topics
- 19Network device driver overview
- 20Network device driver initialisation
- 21Course overview
- 22Overview
- 23Network device statistics and monitoring
- 24Wireless network device drivers: the IEEE 802.11 stack, mac80211 and cfg80211
- 25Course overview
- 26Kernel debugging and performance analysis
- 27Linux driver power management: runtime PM and system suspend/resume
- 28The device model and sysfs: kobject, kset, ktype and attribute files
- 29Driver security and stability
- 30Capstone: a virtual hardware driver integrating USB, PCIe and networking
All-access library
Every curriculum on this page, with the labs and lab sequences, for a year.