Embedded Linux Device Driver Development

Course Overview

Embedded Linux Device Driver Development is a four-day course aimed at providing engineers a deeper insight into the detailed interaction between Linux and the underlying hardware components. The students will take an in depth look at the Linux kernel and the services used for developing character, network and block device drivers. The students will learn how to build, load and debug Linux device drivers in a cross development environment. In addition, the students will take an in depth look at Embedded Linux boot process including the boot sequence and boot loaders such as Universal Boot loader.

The course is comprised of both lecture and hands-on lab exercises. The labs are integral to the course and are designed to reinforce the concepts presented during lecture.

Course Objectives

The course is designed to introduce the concepts and characteristics of developing Linux device drivers. The students will learn:

  • Review of Linux boot process and the role of the boot loader
  • The role of the root file system in standalone and networked Linux configurations
  • Building and accessing modules
  • Linux Device driver debugging


  • Using Timer services and memory management techniques for developing device drivers
  • Overview of interrupt handling when implementing a Linux device driver
  • Steps necessary to develop character, block and network device drivers
  • Techniques for Debugging BSP and Device Drivers

Course Materials

The course materials include a workbook that contains all of the slides presented during the lectures as well as hands-on lab exercises. The course is taught using an embedded single board to demonstrate the concepts of the embedded Linux cross development.


Get more information on this course