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

Limited Time Offer:

Get a FREE Deluxe Course and a GREAT Corporate Discount for your Company. Click Here.

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 Completion Certificate
Course Materials
Instructors Answer Your Questions
$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
Need Help Playing Your Videos?
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

What should I do if my video will not play?

There are many things that can affect the quality of your video so we have put together these instructions to help you review all the things that need to be tested in order to trouble-shoot video quality.

The first thing we want to assure you is that we have done everything possible to make sure that our videos will play well.  Our videos are hosted in the cloud by Akamai.  Akamai has servers around the world to make sure that your videos are sent from the server that is closest to you.  By hosting our videos with Akamai we make sure that you receive the highest video quality. If you are experiencing video buffering or freezing at home or at the office there are a number of things you can do to help us troubleshoot.

  • Buffering: We provide you with three (3) speed choices that you can select when watching a video.  If the video is buffering then the first thing you want to click on a slower speed option found at the bottom of the video window. Try clicking on Medium and Low and see if that allows the video to play without buffering. If it does not, please read through the rest of this FAQ and follow the steps outlined below.
  • Video will not play: In order to play our videos, you have to have Adobe Flash Player installed. If you click on the video and nothing happens, then you do not have Adobe Flash Player installed.  Click on this link to download and install it.
    • If you have Adobe Flash Player installed and your video is not playing, complete the following steps:
      • Go to your course page, select a video, and click play.
      • Once the video begins playing, place your mouse over the video and right click.
      • You will see the several links and the last link has the words “About Adobe Flasher Player xx.xx.xx” (version # you have).
      • Click here , where you will see your version and what is the latest version. You need to have the latest version installed.
      • If you do not have Adobe Flash Player, click here to download and install it.
  • Popup Blockers: Please check to make sure that your pop-up blocker is turned off when you go to our website. This will prevent the video window from opening.
  • Your Connection Speed: Internet speed needs to be 2.0 Mbps upload and download to successfully watch the videos.  You will want to check and see if your connection speed is 2.0 Mbps or higher.  You can do this by clicking on this link and running a speed test.
  • Jitter and Packet Loss: Your Jitter rate lets us know if your connection speed is consistent while your Packet Loss rate lets us know if your internet connection could be losing pieces of the video.
    • Go to www.pingtest.net to determine if there is any Jitter or Packet Loss on your connection.
    • This is measured by a letter scale with A being the best.
      • If your Packet Loss is below a B, your connection is losing pieces of the video and causing the video to skip.
      • If your Jitter is below a B, your connection speed is very inconsistent and may be changing while you are watching the video which will result in buffering issues.
      • If either of these is the case you will need to contact your internet provider.
  • Ports: You will need to have ports 1935, 443 and 80 open. You can run a port test at this link.
    • If you are watching from work and those ports are not open, check with your IT department.
  • Shared Internet Connection: If you are on a shared internet connection, test playing videos during non-peak hours when usage by others on your network is low.
  • Reset Your Browser: If you've tried all the previous steps, your browser may be retaining data that needs to be deleted, and this requires a reset. If you are using Chrome, use the instructions in this link to reset your browser. If you are using Internet Explorer (IE) you may need to reset it. You can do this by clicking on the cog icon on the top right of your page. Then click on tools, internet options, advanced and reset. If you are using Firefox, use the instructions in this link to reset your browser.
  • Other things to check:
    • At home or at work, test using different browsers and computers to see if you get the same result.
      • Make sure you have the latest version of the browser you are using.
    • If you are using Internet Explorer (IE) you may need to reset it. You can do this by clicking on the cog icon on the top right of your page. Then click on tools, internet options, advanced and reset.
    • Try from a different location using a different network.
    • If you are on a wireless connection try a wired solution.
    • If you are on a home network:
      • Test playing the videos when you are the only user on the network.
      • Try by-passing your router to eliminate it as the point of failure. A direct plug from your ISP to your computer will take care of this and will make sure that neither your router nor other users are affecting your connection.
  • Make sure you do not have any other programs open. File sharing and peer to peer sharing programs, even when limited to low bandwidth, can make it almost impossible to stream properly.

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 is an AIX course?

Cobol Programming
vSphere Essentials
AIX Fundamentals
AIX Fundamentals
vSphere Essentials
Linux Essentials
vSphere Essentials
Linux Essentials
Cobol Programming
AIX Fundamentals
Cobol Programming
Linux Essentials