For Corporates & Industries

About Linux Device Driver Training

To learn & explore the development of Device Drivers and to have a sound knowledge on implementing the device drivers for your Product and services.

LINUX DEVICE DRIVER TRAINING Course is about developing device drivers for linux, how device drivers work with the Linux kernel, how drivers can be compiled and loaded, how drivers can be debugged, and other essential topics. LINUX DEVICE DRIVER TRAINING course is designed for new Linux device drivers software engineers. Participants should have C experience, be able to execute basic Unix commands, and have some experience with gcc, gdb, and make basic Gnu tools.
Embedded Linux Device Driver training helps in understanding of the essentials of Linux device drivers, purpose and functionality of device drivers and how Compiling and linking device drivers does is processed. Register today at the website to learn more and call us directly at the help desk.

  • Learning about device tree & kernel source tree.
  • Learning about development of Char & Block derivers.
  • Implementing drivers in OS and analysis.
  • Understanding the Linux Kernel, Third Edition 3rd Edition by Daniel P.Bovet, Marco Cesati.
  • Linux Device Drivers, Third Edition by Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman.


Course Duration

30 working days

8 Weekends



Delivery Mode

Class Room Training

Apply Online

Click Now
Engineering Student
Working Professionals
Industry Experts
Post Graduate Students
Embedded Developers
People looking to enhance their Skillsets


Schedule of Topics

Session 1 File I/O & Filesystems
  • File Descriptors
  • Opening and Closing Files
  • Reading and Writing to Files Sequentially
  • File Handling
  • Reposition Read/Write File Offset
  • File Tables and File Descriptor Tables
  • Filesystems Internals - inodes, dentry
  • Pseduofilesystems - proc, sysfs
Introduction to Devices & Accessing Drivers
  • Device Interfacing
  • Controlling LEDs from Userspace
  • Controlling Seven segment displays
  • Unix/Linux Device Abstraction
  • Device Files/li>
  • Types of Drivers/li>
  • Sound Mixer Device/li>
Session 2 Kernel Compilation and Kernel Modules
  • Kernel Compilation
  • Kernel configuration
  • Building the kernel
  • Booting from the new kernel
  • Kernel Modules
  • Introduction
  • Advantages
  • Listing, Loading, Unloading
Writing Kernel Modules & Input drivers
  • Module Programming vs Application Programming
  • Hello World Module
  • Module Programming Basics
  • Compiling
  • Loading and Unloading
  • Module Parameters
  • Input Drivers
  • Kernel Timers
  • System Ticks
  • Scheduling timers
Session 3 Char Drivers
  • Major and Minor Numbers
  • Data Structures
  • File Operations Structure
  • File Structure
  • Registering Char Driver
Debugging Techniques
  • Debugging by Printing
  • Kernel Log Mechanism
  • Turning on/off Debug Messages
  • Debugging by Querying
  • Debugging by Watching
Session 4 Block Drivers& Memory Mapped Device Access
  • USB
  • Memory devices
  • Accessing Memory devices like RAM
  • Writing file to memory
Debugging System Faults
  • Decoding Oops
  • Recovering from a System Hang
  • Interrupts and Blocking I/O
  • Examples
Session 5 Practical sessions on Embedded board
  • GPIO driver.
  • I2C Driver.
  • Serial Driver.
  • Creating a Tasklet.
Practical sessions on Embedded board
  • Case studies
  • Analyzing device drivers
  • User performance & optimizing

Method of Instruction

The Sessions will be carried out as theory & practical sessions. In order to provide to-the-best service to the clients, it is advised to have 1 system & Board /attendee. Practical sessions will be carried out in Both Virtual Machines / Linux systems and in Target Embedded boards. Several Case studies which mainly impact on the importance of Embedded Linux systems will be discussed.

Raspberry Pi 2 with touchscreen for participant. Kindly Arrange on it.


The audience can be from any Industrial Sector or R&D Division, who has the interest in migrating to Embedded Linux with the following pre-requisites.

  • C Programming

  • Programming in GNU/Linux

  • Microprocessors