Developing Linux Drivers (LFD430)

Course Description Schedule
 

Course Overview

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.

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.

Prerequisites

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 Linux Kernel Internals and Development (LFD420).

Course Content

  • 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.

Classroom Training
Modality: C

Duration 5 days

Dates and Booking
 
Click on town name to book Schedule
Middle East
Europe
Germany
11/03/2019 - 15/03/2019 Münster
08/04/2019 - 12/04/2019 Hamburg
06/05/2019 - 10/05/2019 Düsseldorf
24/06/2019 - 28/06/2019 Berlin
08/07/2019 - 12/07/2019 Stuttgart
12/08/2019 - 16/08/2019 Frankfurt
09/09/2019 - 13/09/2019 Munich
16/09/2019 - 20/09/2019 Münster
Austria
13/05/2019 - 17/05/2019 Vienna (iTLS)
09/09/2019 - 13/09/2019 Vienna (iTLS)
25/11/2019 - 29/11/2019 Vienna (iTLS)
Italy
01/04/2019 - 05/04/2019 Rome
29/07/2019 - 02/08/2019 Milan
21/10/2019 - 25/10/2019 Rome
16/12/2019 - 20/12/2019 Milan
Romania
14/10/2019 - 18/10/2019 FLEX training This is an English language FLEX course.
Time zone: Europe/Bucharest
Switzerland
01/04/2019 - 05/04/2019 Zurich
08/07/2019 - 12/07/2019 Zurich
23/09/2019 - 27/09/2019 Zurich
Turkey
20/05/2019 - 24/05/2019 FLEX training This is an English language FLEX course.
Time zone: Asia/Istanbul
This is a FLEX course, which is delivered both virtually and in the classroom.