Signup as a Tutor

As a tutor you can connect with more than a million students and grow your network.

Linux Device Driver Programming

No Reviews Yet

Thiruvanmiyur, Chennai

Course ID: 25258

Thiruvanmiyur, Chennai

No Reviews Yet

Date and Time

Not decided yet.

Vijay kumar

linux architect

About Vijay kumar

Vijay Kumar is a GNU/Linux enthusiast, with over 8 years experience in embedded software and the Linux kernel. His technical skills include Linux device driver programming, Linux GUI programming, system administration and web design. His work experience includes terminal server software development, user interface design for handhelds and device driver development for telecom switches. Vijay holds a B.Tech. in Electronics and Communication Engineering from NIT, Trichy, India.
No reviews currently Be the First to Review

About the Course


The course aims at teaching the basics of device driver programming for the Linux kernel. The course covers LED driver, input driver and char device driver development. The course is taught on an ARM board with simple devices like the GPIOs, LEDs, seven segment displays, keypads, temperature sensors and EEPROM devices. The goal is to focus on learning the kernel interface, while still programming real hardware.

Since device driver development requires knowledge in varied disciplines, a quick review of the fundamentals of file IO, filesystems, microprocessors and kernel modules is included.

Topics Covered

Syllabus
File I/O

File Descriptors

Opening and Closing Files

Reading and Writing to Files Sequentially

Reposition Read/Write File Offset

File Tables and File Descriptor Tables

Filesystems

Filesystems Internals - inodes, dentry

Pseduo filesystems - proc, sysfs

Introduction to Devices

Device Interfacing

Controlling LEDs from Userspace

Controlling Seven segment displays

Accessing Drivers

Unix/Linux Device Abstraction

Device Files

Types of Drivers

Mouse Device Access

Sound Mixer Device

Kernel Compilation and Kernel Modules

Kernel Compilation

Kernel configuration

Building the kernel

Booting from the new kernel

Kernel Modules

Introduction

Advantages

Listing, Loading, Unloading

Writing Kernel Modules

Module Programming vs Application Programming

Hello World Module

Module Programming Basics

Compiling

Loading and Unloading

Module Parameters

Input Drivers

Kernel Timers

System Ticks

Scheduling timers

Keypad Input driver

Char Drivers

Major and Minor Numbers

Data Structures

File Operations Structure

File Structure

Registering Char Driver

Seven segment display

Debugging Techniques

Debugging by Printing

Kernel Log Mechanism

Turning on/off Debug Messages

Rate Limiting

Debugging by Querying

debugfs

Debugging by Watching

strace

Debugging System Faults

Decoding Oops

Recovering from a System Hang

Interrupts and Blocking I/O

Interrupts

Installing Interrupt Handlers

Blocking I/O

Process states

Wait Queues

Concurrency and Locking

Sources of Concurrency

Semaphores

Spinlocks

Common Locking Problems

Atomic Variables

Device Model

I2C and SPI bus

Bus Model

Device and Driver Binding

Module Autoloading


Who should attend

engineering professionals, Students from Electronic, Electric and Computer Science and also freshers ,interested in embedded programming

Pre-requisites


C Programming

Programming in GNU/Linux

Microprocessors


What you need to bring

note and pen

Key Takeaways

Knowledge on linux device driver
How Corporates work

Reviews

No reviews currently Be the First to Review

Discussions

Post your requirement and let us connect you with best possible matches for Linux Training Post your requirement now