• Advance Your Career Today
  • Learn New Skills
  • Save Money
  • Save Time
  • Get Certified
  • Get Promoted
  • Learn More
  • Advance Your Career Today

Linux Device Drivers: Programming at the Kernel Level Enroll Today!

Select The Package That's Right for You
Standard Deluxe Premium
Videos
1 Year Access to Course
Transcript
Course Materials
Instructors Answer Your Questions
Course Completion Certificate
$195 $425 $695
Add to Cart Add to Cart Add to Cart

Linux Device Drivers: Programming at the Kernel Level

Key Course Benefits

  • Achieve Workplace Success by Learning from Real World Experts
  • Learn and Implement New Skills Faster With Real World Examples
  • Take High Quality Classroom Courses Without the Hassles of Travel
  • Student Guide Makes it Easy for You to Take Notes and Increase Learning
  • Course Demos and Exercises Help You Learn More
  • Eliminate Scheduling Conflicts by Training Anytime 24/7 for 1 year
  • Video Training with Materials, Exercises, and Instructor Support Maximizes Learning
  • 1 Year Course Access Gives You Time to Learn and Master Concepts
  • Use Your Course Completion Certificate to Build Your Resume
  • Responsive Customer Service Makes Independent Learning Easy and Smooth
  • Save Money and Learn More
Video Title Minutes
00: Course Introduction 5
01: So What is a Device Driver? 21
02: Kernel Loadable Modules 17
03: Basic Character Driver 17
04: Debugging Kernel Code 18
05: Blocking I/O 18
06: Accessing Hardware 18
07: Handling Interrupts 22
08: Memory Allocation 15
09: Time 27
10: Block Drivers 20
11: Network Drivers 29
12: PCI Drivers 23
13: USB Drivers 26
14: Linux Driver Model 15
15: Integrating a Driver With The Kernel Source Tree 35
16: Course Summary & Evaluation 6
Course Survey
Total: 5 hours 32 minutes

For more information, contact us or call 1-877-546-4446

Description

This Linux device driver course introduces Linux device drivers and shows how they interact with the Linux kernel. Numerous programming exercises reveal the rich set of kernel APIs that provide a multitude of services to driver programmers. This class teaches you how Linux handles asynchronous I/O in a way that is totally transparent to applications. You'll examine the unique problems of debugging in Kernel space. Perhaps most important, you'll see how much of a device driver involves interactions with the kernel that have nothing to do with accessing physical hardware. Although the exercises are carried out on a PC, much of the code is easily ported to other architectures supported by Linux.

Prerequisites

You need to have equivalent experience or have taken the following GogoTraining courses:

Objectives

As a result of taking this Linux device driver course, you will be able to:

  • Describe the four types of devices and their properties
  • Design, program, and debug kernel loadable modules

Related Training

For more information, contact us or call 1-877-546-4446

Prerequisites

You need to have equivalent experience or have taken the following GogoTraining courses:

Linux Device Drivers: Programming at the Kernel Level Outline

Module 00: Linux Device Drivers: Programming at the Kernel Level Online Training - Course Introduction

Module 01: So What's a Device Driver?

  • Why device drivers
  • User space I/O APIs
  • Four types of devices
  • The /dev directory

Module 02: Kernel Loadable Modules

  • What is a kernel loadable module?
  • Module utilities
  • A module example
  • Kernel modules and the GPL

Module 03: Basic Character Driver

  • Registering and initializing a driver
  • The file operations table, fops
  • Driver example
  • Mutual exclusion, the semaphore

Module 04: Debugging Kernel Code

  • printk()
  • strace
  • The /proc file system
  • ioctl()
  • kgdb

Module 05: Blocking I/O

  • The wait queue
  • Putting a process to sleep
  • Blocking example
  • The seq file interface
  • Poll and select
  • Asynchronous notification

Module 06: Accessing Hardware

  • Side effects and compiler optimization
  • I/O APIs
  • The hardware
  • Driver example
  • Barriers
  • Accessing hardware from User Space

Module 07: Handling Interrupts

  • Interrupt context
  • Registering an interrupt handler, the IRQ flags
  • Interrupt example
  • Probing for the interrupt source
  • The bottom half - tasklets and workqueues

Module 08: Memory Allocation

  • kmalloc() and kfree()
  • kmalloc() flags
  • get_free_pages()
  • vmalloc()

Module 09: Time

  • jiffies
  • Implementing time delays - example
  • Timers
  • Current time

Module 10: Block Drivers

  • The block subsystem
  • Device registration
  • The request queue and function
  • Block driver example

Module 11: Network Drivers

  • Device registration
  • The socket buffer
  • Driver example - "snull"
  • NAPI - the "new" API

Module 12: PCI Drivers

  • PCI addressing and bridging
  • Accessing configuration space
  • PCI data structures and macros
  • modules.pcimap
  • Sample PCI driver

Module 13: USB Drivers

  • USB structure and characteristics
  • Device classes
  • USB data structures and macros
  • USB Request Block, URB
  • Sample USB driver

Module 14: Linux Driver Model

  • Power Management and Shutdown
  • User Space Communication
  • Hot Pug
  • Device Classes

Module 15: Integrating a Driver with the Kernel Source Tree

  • Configuring and building the kernel
  • The config. file
  • Source code mods
  • Kconfig files

Module 16: Linux Device Drivers: Programming at the Kernel Level Online Training - Course Summary

For more information, contact us or call 1-877-546-4446

Course Materials

Want to be able to access these helpful materials? Contact Us!

  • Student Guide
  • Lab Setup Guide
  • Exercise Guide
  • Exercise Code Files

Important Links

  • Course Survey

For more information, contact us or call 1-877-546-4446

When you purchase a Premium course from GogoTraining, you can submit comments or questions to our expert instructors.

For more information, contact us or call 1-877-546-4446

System Requirements

Hardware:

  • Linux machine with native parallel port
  • For some exercises you will need a standard 25-pin parallet port

Software:

  • Current distribution software such as Fedora 11 or 12
  • GNU compiler collection for the x86.  This package is called gcc.
  • Kernal headers and makefiles sufficient to build kernel loadable modules.  This package is call kernel-devel.

For more information, contact us or call 1-877-546-4446

When you purchase a Deluxe or Premium course from GogoTraining, you can use your transcript to view and monitor your progress and when you complete the course, you can print or email the transcript, or print a course completion certificate.


For more information, contact us or call 1-877-546-4446

We show that you have been logged out, probably due to automatic session limits. Please Login to continue viewing content.

Sign up today for your FREE GogoTraining account to access hundreds of free resources.

Security Question

Answer this question to complete your registration.

Which course that is NOT a Linux course?

Linux Essentials
Linux Network Administration
Linux Network Administration
Linux Network Administration
Embedded Linux
Programming in Java 6
Linux Essentials
Programming in Java 6
Embedded Linux
Linux Essentials
Embedded Linux
Programming in Java 6