Agenda for Training course Linux Device Drivers
Day 1: Introduction
- Introduction to Linux device drivers
- Versioning scheme
- Kernel vs. user-space
- License issues
- Where to find help
- A first driver and its Makefile
- The kernel build system
- Working with git
Day 2: Character Drivers
- Stepwise extension of first driver to a real character driver
implementing all methods.
- Basic debugging techniques
- Device registration and un-registration
- Resource allocation
- Memory issues
- Data exchange between kernel- and user-space
Day 3: Advanced character drivers functions
- Blocking and nonblocking
- Poll and select
- Memory mapping
- Dealing with concurrency and race conditions
- Advanced locking and lockless techniques
Day 4: Advanced debugging
- Hardware debuggers (BDI2000)
- Procfs and sysfs
- Oops decoding
- Time and delays
Day 5: Interfacing hardware
- Device tree issues (powerpc specific)
- Accessing memory mapped hardware
- Interrupt handling
- Delaying work