SETC Training844-434-7382
 Find a Course: 
 
Programming TrainingMicrosoft TrainingMS Office TrainingServer TrainingManagement TrainingNetwork TrainingAbout UsContact Us

LINUX Training


The course was very helpful for my career. It opened up my eyes on how the web has evolved. I would recommend this course to my colleagues.
Comment from Canada Revenue Agency

1. Title

  • Professional Linux Device Driver Development (LIDDEV, 5 days)
    View PDF

2. Course Pre-requisites

  • Good knowledge of C Programming and Linux Architecture

3. Target Audience

  • Professional developers who need to develop Linux Device Drivers

4. Dates and Pricing


Sep 25 to Sep 29, 2017$3,900.00/person

5. Outline

Module 1: Devices in Linux

Topic 1: Linux Device Drivers Overview

Topic 2: Device Classes

Topic 3: Creating Device Files

Topic 4: Kernel Modules vs. Applications

Topic 5: User Space Driver APIs

Module 2: Loadable Modules

Topic 1: Why Loadable Modules?

Topic 2: Working with Loadable Modules

Topic 3: Device Driver Code

Module 3: Compiling, Loading, Exporting

Topic 1: Setting up the Test System

Topic 2: A Simple Module

Topic 3: Compiling Modules

Topic 4: Loading and Unloading Modules

Topic 5: Initialization and Shutdown

Topic 6: Exporting Symbols from Loadable Modules

Topic 7: Working with Stacked Loadable Modules

Module 4: Character Devices

Topic 1: Major and Minor Numbers

Topic 2: Registering Character Devices Files

Topic 3: Driver Methods

Topic 4: Working with User Spaces

Module 5: Kernel Data Types (Overview Only)

Topic 1: Standard C Types

Topic 2: Working with Sizing Data Items

Topic 3: Interface-Specific Types

Topic 4: Linked Lists

Topic 5: Other Issues

Module 6: Debugging and Tracing

Topic 1: Using printk

Topic 2: Using /proc

Topic 3: Using strace

Topic 4: ksyms and ksymoops

Topic 5: Using gdb, kgdb

Module 7: Working with Queues

Topic 1: Wait Queues

Topic 2: Safe Blocking

Topic 3: Schedule()

Topic 4: Poll()

Module 8: Working with Memory

Topic 1: Linux Memory Management

Topic 2: Working with mmap

Topic 3: Direct I/O

Topic 4: Direct Memory Access

Module 9: Working with Hardware

Topic 1: I/O Ports and Memory Mapping

Topic 2: Allocating and Mapping I/O Space

Topic 3: Working with I/O ports

Topic 4: User Space Access

Module 10: Interrupts

Topic 1: Handling Interrupts

Topic 2: Installing Interrupt Handlers

Topic 3: Interrupt Sharing

Topic 4: Kernel Restrictions

Topic 5: Tasklets and Workqueues

Module 11: USB Drivers

Topic 1: USB Structure

Topic 2: Working with Endpoints, Interfaces and Configurations

Topic 3: USB Request Blocks

Topic 4: Organization and Structure of Drivers

Topic 5: Working with Gadget Drivers

Topic 6: Accessing Hardware from User Space

Module 12: Timing

Topic 1: Timer Interrupts

Topic 2: Short Delays

Topic 3: Task Queues

Topic 4: Kernel Timers

Module 13: CHAR Drivers

Topic 1: Major and Minor Numbers

Topic 2: scull Design

Topic 3: scull’s Memory Usage

Topic 4: Char Device Registration

Topic 5: Read and Write

Module 14: Block Device Drivers (Overview Only)

Topic 1: Block Device Drivers Overview

Topic 2: Working with Header Files

Topic 3: Registering Block Device Drivers

Topic 4: Structure of block_device_operations

Topic 5: Working with Special Methods

Module 15: Network Drivers

Topic 1: Network Drivers Overview

Topic 2: Structure of net_device

Topic 3: Sockets

Topic 4: Naming Scheme and Registration

Topic 5: Network Driver Methods

Topic 6: Working with NAPI

Module 16: Kernel Tree

Topic 1: Working with the Kernel Tree

Topic 2: The Kernel Layout

Topic 3: Makefile

Topic 4: Kconfig File

Module 17: Additional Topics – Overview Only

Topic 1: Configuring and building the kernel

Topic 2: Booting via TFTP

Topic 3: Root Filesystem over NFS

Topic 4: Monitoring File Systems (iNotify)

Topic 5: Development environment NFS

Topic 6: Initializing using the Device Tree method instead of board file

Topic 7: UDEV

Topic 8: Linux Real-Time

SETC Training on LinkedIn follow @CTESTraining Follow us on Facebook
  Programming Training
  Microsoft Training
  Network Training
  Management Training
  Server Training
  Microsoft Office Training
Site developed and authored by Jean-Marc Choquette