page header photo
share Twitter share LinkedIn

course Linux device drivers

This course is specific to the Linux system

This course teaches the design and construction of a device driver for Linux systems. In-depth information about the interface between the device driver and the rest of the Linux kernel is an important part of the course. Read more >>>

Target audience

  • This course is intended for experienced (system) programmers who have to design, develop and maintain device drivers for Linux.
Duration: 4 days        Register now
Contact
Price € 2390,- plus VAT       
         

Scheduled dates

This course is part of our regular programme, and scheduled once or twice yearly. The course material is in English, and the teaching language will be English unless the attendants prefer the Dutch language unanimously.

Currently scheduled course dates are:

23,24,27,28 Nov 2017   Nijmegen

Register for this course: "Linux device drivers".

Detailed information about this course

Devices

It requires certain precautions to connect new device hardware to a Linux machine. Apart from the required hardware interfaces, additional code must be added to the Linux kernel to interface between the hardware and the generic kernel routines of the I/O-subsystem. In order to write a device driver detailed knowledge is required of the internal concepts of certain parts of the Linux kernel, of the way the Linux kernel communicates with the device driver (and vice versa) and of the way a device driver handles the physical device. In addition, experience is needed with various types of device drivers and the way a new device driver can be loaded into the kernel.

A step by step construction of an actual device driver is part of the course, adding features as their theoretical coverage progresses.

The specific details of USB drivers are a separate topic in this course.

Prerequisite knowledge

Student must be fluent in C programming. Furthermore, a general understanding of Linux system programming is preferred.

Technical content of the course

The course will cover:

  • Recapitulation of kernel mechanisms.
  • General functionality of a driver: fifferent types of drivers, physical I/O, major and minor numbers. Loadable versus static drivers.
  • Driver entry points: character, block, network.
  • General mechanisms: Sleep and wakeup (wait queues). Buffer allocation. Timer handling. Interrupt handling.
  • Configuration and initialization: Error logging, debugging, the /proc and /dev file systems.
  • Character drivers: Data transport between user mode and kernel mode, error codes, the ioctl interface.
  • Block drivers: Buffer management, mount and unmount, request queues and the request-routine, interrupt and start routines.
  • USB drivers: the USB-skeleton driver dissected, probe, release, including an extensive lab exercise using a hardware board available to each student in the class-room.

The specific hardware details of devices must be obtained from the documents of the hardware manufacturer.

Documentation

Course attendees receive a practice book containing copies of the presentations, sample driver texts, exercises, answers to the exercises, and background information.

Certificate

Shortly after the course the student will receive a certificate as a proof of participation.

Register for this course now!

Valid XHTML 1.0 Strict   Valid CSS2