Embedded Linux Device Drivers
Instructor-led online program on Embedded Linux Device Drivers
Who is it for
This course is for Linux developers who are looking to work on device drivers for embedded Linux systems
What you will learn
Upon program completion you will be familiar with the fundamentals of device drivers, including architecture, types, and development environment setup
Who will be your Mentor
Learn from Raghu Bharadwaj, India’s leading Linux mentor, consultant and author
Program Contents
Driver Architecture
- Device Drivers defined
- Linux Driver model
- Types of Linux drivers
- Driver stacks
Char Driver Model
- Synchronous drivers defined
- Driver registration and de-registration
- Driver file interface
- Device file operations
- Driver data structures
- Device Configuration ops
- Wait Queues & polling
- Memory mapping
DMA
- What is DMA?
- DMA Directly to User
- DMA and Interrupts
- DMA Memory Constraints
- DMA Masks
- DMA API
- DMA Pools
- Scatter/Gather Mappings
Hardware Access
- Device Addresses
- Port mapped I/O
- Interacting with port mapped devices
- Memory Mapped I/O
- Reserving address space MMIO
- MMIO Access
- Device Access side effects
- Device access from u-space
Interrupt Handling
- Understanding Interrupts
- Linux Interrupt handlers
- Implementing Driver ISR
- Need for deferred routines
- Linux Deferred Routines
- Interrupt event management
Platform Drivers
- What are Platform Drivers?
- Main Data Structures
- Registering Platform Devices
- An Example
- Hardcoded Platform Data
- The New Way: Device Trees
Device Tree
- What are Device Trees?
- What Device Trees Do and What They Do Not Do
- Device Tree Syntax
- Device Tree Walk Through
- Device Tree Bindings
- Device Tree support in Boot Loaders
- Using Device Tree Data in Drivers
- Coexistence and Conversion of Old Drivers
IOCTL
- What are ioctls?
- Driver Entry point for ioctls
- Defining ioctls
Unified Device Model & Sysfs
- Unified Device Model
- Basic Structures
- Real Devices
- sysfs
- kset and kobject examples
MTD
- What are MTD Devices?
- NAND vs. NOR vs. eMMC
- Driver and User Modules
- Flash Filesystems
Drivers
- I2C
- SPI
- GPIO
USB Host Driver
- USB Topology & Terminology
- Endpoints
- Descriptors
- USB Device Classes
- USB Support in Linux
- Registering USB Device Drivers
- Moving Data
- Example of a USB Driver
PCI
- PCI Device Drivers
- Locating PCI Devices
- Accessing Configuration Space
- Accessing I/O and Memory Spaces
- PCI Express
Block Driver
- Understanding Block driver model?
- Buffering
- Registering a Block Driver
- gendisk Structure
- Request Handling
Network Driver Model
- Network Layers and Data Encapsulation
- Datalink Layer
- Network Device Drivers
- Loading/Unloading
- Opening and Closing
- net_device Structure
- net_device_ops Structure
- sk_buff Structure
- Socket Buffer Functions
- texttt {netdev_printk() and Associates
- Transmitting Data and Timeouts
- Receiving Data
Who Should Enroll
- Linux programmers looking to upskill on embedded Linux driver development
- System programmers looking for a structured program on embedded device drivers
- Kernel programmers looking to build a deeper understanding on Linux device drivers
Program Schedules & Fee
- Program Starts: 14th December 2024
- Session Timings: 10am – 1:30pm (Sat. & Sun.)
- Training Mode: Online, live, interactive (zoom)
- Program Duration: 30+ hours.
- Program Fee: ₹19,942/- (Inclusive of GST)
Support Services
- Missed sessions: Backup recording will be provided for missed sessions
- Offline support: Delivered via Whatsapp
- Batch transfers: Available within 1 year
- Placement support: Offered on program completion (any experience category)
Interested. Apply Now
On receiving the application, we will contact you with further registration process
Know your trainer
Raghu Bharadwaj
- Leading Linux mentor. Trained over 40 clients including Xilinx, Qualcomm, Broadcom, NXP, Harman, Mercedes among others
- Trained over 3000 participants across 7 nations
- Attended by professionals from over 100 companies
- Leading authority and speaker on the Linux Kernel
FAQs
What are the pre-requisite skills to enroll for this program?
You must be good at Linux kernel programming.
How is the program delivered?
This program is delivered online through a live, interactive session. You must login whenever there is a live session to access it. This program may have few recorded sessions.
What if I miss some sessions due to work or other issues?
Do not worry, we have it covered. If you miss any session due to any reason, you can request to listen the backup recording at your convenient time
What is the validity of my registration?
Your registration is valid for a period of 1 year. That is, after you make the payment you can take the program once within 1 year