Developing Linux Device Drivers (LFD430)

Learn how to develop device drivers for Linux systems. This course will teach you about the different types of Linux device drivers as well as the appropriate APIs and methods through which devices interface with the kernel.

$3150 Enroll Get A Quote

Course Overview

This course will teach you how to develop device drivers for Linux systems, grounded with a basic familiarity and understanding of the underlying Linux kernel.

Show More

You’ll learn:

  • The different kinds of device drivers used in Linux
  • The appropriate APIs through which devices (both hardware and software) interface with the kernel.
  • Necessary modules and techniques for developing and debugging Linux drivers
  • And more.

The information in this course will work with any major Linux distribution.


1/28/2019 - 1/31/2019
GuaranteedThis course has reached its minimum class size and is guaranteed to run on the scheduled date.
$3150 Add to cart Generate A Quote
3/11/2019 - 3/14/2019
$3150 Add to cart Generate A Quote
4/29/2019 - 5/2/2019
$3150 Add to cart Generate A Quote
6/17/2019 - 6/20/2019
$3150 Add to cart Generate A Quote
If none of these fits your schedule, check out our Partner offerings >

Course Outline

  1. Introduction
  2. Preliminaries
  3. Device Drivers
  4. Modules and Device Drivers
  5. Memory Management and Allocation
  6. Character Devices
  7. Kernel Features
  8. Transferring Between User and Kernel Space
  9. Interrupts and Exceptions
  10. Timing Measurements
  11. Kernel Timers
  12. ioctls
  13. Unified Device Model and sysfs
  14. Firmware
  15. Sleeping and Wait Queues
  16. Interrupt Handling: Deferrable Functions and User Drivers
  17. Hardware I/O
  18. PCI
  19. Platform Drivers**
  20. Device Trees**
  21. Direct Memory Access (DMA)
  22. Network Drivers I: Basics
  23. Network Drivers II: Data Structures
  24. Network Drivers III: Transmission and Reception
  25. Network Drivers IV: Selected Topics
  26. USB Drivers
  27. Power Management
  28. Block Drivers

** These sections may be considered in part or in whole as optional. They contain either background reference material, specialized topics, or advanced subjects. The instructor may choose to cover or not cover them depending on classroom experience and time constraints.


Knowledge of basic kernel interfaces and methods such as how to write, compile, load and unload modules, use synchronization primitives, and the basics of memory allocation and management, such as is provided by LFD420 Linux Kernel Internals and Development. Pre-class preparation material will be provided before class.

At a Glance

Delivery Method

Live Online (Virtual)

Delivery Method

Live (Classroom)


  • 4 days of Instructor-led class time
  • Hands-on Labs & Assignments
  • Resources & Course Manual
  • Certificate of Completion
  • Free Chromebook

Experience Level


Course Rating



Training 5 or more individuals?
Get a Corporate Quote >


Get training and a free Chromebook.

When you train with The Linux Foundation you’re already getting the best open source training straight from the source. And now, we are including a free Chromebook with the purchase of select Linux Foundation instructor-led training courses to help you get the most out of your training experience.

Learn More