Linux Training+32 (0)2 747 47 01Registration FormMail

Linux Kernel and Device Driver Development

In this course engineers will learn to write and improve Linux Kernel Drivers for Embedded Linux platforms and Linux in general. In a 50 to 60% lab-time approach, you will get direct hands-on experience, how to avoid pitfalls and get up and running quickly. In an interactive manner, you will be able to get direct feedback. We look deeper into the kernel architecture, the main APIs, integration of device drivers with other parts of the kernel and with userspace applications.
At the end of this course, you will be ready to work on Linux device driver development projects and you get the ARM development board to take with you for further experimentation.



  • Introduction to the kernel sources
  • Coding standards
  • Kernel source code structure
  • Kernel user interface
  • Kernel compiling
  • Kernel configuration, cross-compiling and booting on NFS

  • Linux kernel modules
  • Module dependencies
  • Kernel Memory Management
  • I/O memory and ports registration
  • Read/Write barriers
  • Read/Write device drivers
  • Character drivers

  • Processes, scheduling, sleeping
  • Interrupt handling
  • Top/bottom halves implementation in device drivers
  • Locking: mutexes, semaphores, spinlocks
  • Lock validator
  • Device Driver debugging techniques

  • Interface with userspace through /sys
  • mmap
  • PCI Driver API
  • Serial drivers

  • Porting the Linux kernel
  • Power management
  • Working with the community
  • Managing kernel sources with git
  • Userspace device drivers

Course Materials
Provided courseware and ARM-based development board which the participants can take with them.

Administrative Information
Course dates:
23 march - 27 march 2020
5 okt - 9 okt 2020

Price 3.150,- € + VAT

More information
Phone: +32 (0)2 747 47 01

Course Registration Form

You can find the Full Calendar here.

Copyright 2001-2023, Linux Belgium. All rights reserved. Linux is a trademark of Linus Torvalds.
Linux Belgium is a registered trademark of Linux Belgium b.v.b.a. All other trademarks are the property of their respective owners.