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. [4days]

Course description

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.

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.

Course details

Who should attend?

This course is designed for anyone interested in learning how to write device drivers for Linux. Students should be proficient in the C programming language and be familiar with basic Linux utilities and text editors.


Previous knowledge

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. Pre-class preparation material will be provided before class, an outline of which is provided in the details below.

Preparation before class

In order to take LFD430 Developing Linux Device Drivers , you should have a good working 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. Pre-class preparation material will be provided before class, an outline of which is provided here:
1. Kernel Architecture I
2. Kernel Programming Preview
3. Modules
4. Kernel Architecture II
5. Kernel Configuration and Compilation
6. Kernel Style and General Considerations
7. Race Conditions and Synchronization Methods
8. Memory Addressing
9. Memory Allocation

Course Materials

As part of your registration, a printed copy of the course manual will be provided.

Details

Questions? Use the form below to get in touch! Go to form

Where
Stockholm
When
26 Nov, 2018
Number of days
4
Price
USD 3150
Where
Stockholm, Bucharest or On-Site
When
On request
Number of days
4
Price

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.

See the full course outline for LFD430

Want to know more?

If you have a question or want to know more about this training, please fill in the form below and we will reply as soon as we can.