LFD430 Developing Linux Device Drivers

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.

Voraussetzungen

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.

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.

Inhalt

  • Introduction
  • Preliminaries
  • Device Drivers
  • Modules and Device Drivers
  • Memory Management and Allocation
  • Character Devices
  • Kernel Features
  • Transferring Between User and Kernel Space
  • Interrupts and Exceptions
  • Timing Measurements
  • Kernel Timers
  • ioctls
  • Unified Device Model and sysfs
  • Firmware
  • Sleeping and Wait Queues
  • Interrupt Handling: Deferrable Functions and User Drivers
  • Hardware I/O
  • PCI
  • Platform Drivers**
  • Device Trees**
  • Direct Memory Access (DMA)
  • Network Drivers I: Basics
  • Network Drivers II: Data Structures
  • Network Drivers III: Transmission and Reception
  • Network Drivers IV: Selected Topics
  • USB Drivers
  • Power Management
  • 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.

Kurszeiten

Wer möchte, reist bis 22 Uhr am Vortag an und nutzt den Abend bereits zum Fachsimpeln am Kamin oder im Park.

An den Kurstagen dann von 9-18 Uhr (mit 2 Kaffee- und 1 Mittagspause) etwa 60% Schulungen und 40% Übungen. Selbstverständlich arbeitet jeder Teilnehmer am von uns gestellten Notebook oft parallel zum Referenten mit.

Anschließend Abendessen und Angebote für Fachsimpeln, Ausflüge uvm. Wir schaffen eine Atmosphäre, in der Fachleute sich ungezwungen austauschen. Wer das nicht will, wird zu nichts gezwungen und findet auch jederzeit Ruhe.