EncartaLabs

Linux Device Driver

( Duration: 3 Days )

This Linux Device Driver training course teaches experienced C programmers already familiar with the Linux kernel architecture the skills and strategies they need to develop device drivers.

This course covers device driver models (including character, block, and network device drivers); device interaction (including port I/O, memory mapped I/O, interrupt handling, and DMA transfers); managing PCI and USB devices; strategies for deferring activity using tasklets and work queues; device registration using the Unified Device model and the sysfs filesystem; and process interaction, including basic file operations, polling, and wait queues.

By attending Linux Device Driver workshop, Participants will learn:

  • Introduction and Review of Kernel Programming
  • Device Drivers
  • Unified Device Model
  • Interrupt Handling
  • Advanced File Operations
  • Interacting With Devices
  • Direct Memory Access
  • PCI Drivers
  • USB Drivers
  • Introduction to Network Device Drivers
  • Introduction to Block Device Drivers

  • Experience in C programming
  • Experience in Linux Kernel Internals

Experienced C programmers with a good understanding of the Linux kernel who want to learn how to develop device drivers for Linux systems.

COURSE AGENDA

1

Embedded Linux

  • Introduction to embedded Linux
  • C libraries. Building a cross-compiling toolchain
  • Bootloaders. Focus on U-boot
  • Configuring, (cross)compiling and booting a Linux kernel
  • Creating a simple, BusyBox based root filesystem from scratch
  • Block filesystems
  • Flash filesystems – Manipulating flash partitions
  • Cross-compiling libraries and applications
  • Embedded system building tools
  • Lightweight tools for embedded systems. Graphical toolkits
  • Developing and debugging applications for the embedded system
  • Implementing realtime requirements
  • Hotplugging
  • System optimizations
2

Embedded Linux kernel and driver development

  • Introduction to the Linux kernel
  • Kernel source code
  • Configuring, compiling and booting the kernel
  • Linux kernel modules
  • Memory management and accessing hardware
  • Character device drivers
  • Processes, scheduling, waiting for resources and interrupt management
  • Locking
  • Kernel debugging techniques
  • mmap
  • Using DMA
  • Kernel architecture for device drivers. Illustration by many examples in the kernel code.
  • Kernel booting details
  • Porting the Linux kernel to a new hardware platform
  • Power management
  • Working with the community
  • Managing sources with git

Encarta Labs Advantage

  • One Stop Corporate Training Solution Providers for over 4,000 Modules on a variety of subjects
  • All courses are delivered by Industry Veterans
  • Get jumpstarted from newbie to production ready in a matter of few days
  • Trained more than 50,000 Corporate executives across the Globe
  • All our trainings are conducted in workshop mode with more focus on hands-on sessions

View our other course offerings by visiting http://encartalabs.com/course-catalogue-all.php

Contact us for delivering this course as a public/open-house workshop/online training for a group of 10+ candidates.

Top