LINUX DEVICE DRIVERS - Training atBangalore
LINUX DEVICE DRIVERS - Training at
Bangalore
Prerequisites :
· Knowledge in Linux OS
Course Goals :
People new to Linux often hear that it has excellent support for all kinds of cards and that the device drivers are stable and fast. Sometimes, though, setting up devices under Linux is often not all plug-and-play. Below we try to demystify Linux device drivers, with the aim of smoothing device selection during installs.
Many modern operating systems have a method for installing special files to make hardware work. On the Apple Mac, for instance, the drivers for the hardware devices are usually special files that go in the System Extensions folder. Linux also has special files that it uses to control the hardware.
Linux device drivers work through special kernel code that directly accesses the hardware. To make the services that the card or other device offers available to normal user programs, the kernel uses the special files in
/devOne end of the file in
/devcan be opened normally and the other end is attached to the kernel. That is of course an oversimplification, but I think you get the general idea: hardware, kernel, special file, user program and the same path back from user program to hardware. There are two forms of the kernel portion of this equation: compiled-in drivers that are coded in permanently when the kernel is built, and modules.This course is designed for starters on Device Drivers on Linux Platform,
Course Content :
Introduction - Linux & Device drivers
Overview of Linux system
The Kernel and what it does
User Space Vs Kernel Space
User Process
User view of devices
The Role of a device driver
Major and Minor device number
Making a device file
Classes of devices and modules
Linux code development
vi, the Unix Visual Editor at a Glance
C Compiler Identifying File Types using Filename C
Command Line Flags
Using 'make'
How Loadable Modules Work
Benefits of loadable modules
Loadable device drivers
Correct use of insmod, modprobe, rmmod, and lsmod
Passing parameters to a loadable module
Module Mechanics
Identifying important header files
Writing a simple module
Compiling modules
Loading/unloading modules
Exporting symbols from a loadable module
Creating stacked loadable modules
The /proc File System
Character Drivers
Typical Character Drivers
Creating device files with mknod
Registering character device file
Listing character device driver methods
Character Device Special File and Device Numbers
file_operations structure
struct file, struct inode
Character Device Methods open(), release(), read(), write()
Data Transfers between User Process and Driver
copy_from_user(), copy_to_user()
Kernel Memory Character Driver Example
IOCTLs
What is ioctl
Using ioctl commands to interact with a device
Implementing IOCTL in drivers
Tracing and Debugging
printk for debugging
Device information in /proc
strace to track system calls
ksyms
Debugger gdb
Blocking and Wait Queues
Blocking and Non Blocking Operations
Wait Queues, sleep & wake up
Schedule
Time Flow
Time intervals in the kernel
Knowing current time
Delaying execution
Utilizing Kernel Timers, Wait queues, and Task Queues
Memory Management
Accessing Memory
Get Some Space (kmalloc())
Get Some Pages (get_free_page())
Get Some Virtual Memory
Get Some Boot-time Space
Hardware Mangement interrupts
I/O ports and I/O Memory
IRQs
Functions used for reading and writing I/O ports
Interrupt Management
Handling and Registration
Enabling and Disabling Interrupts
Splitting Interrupt Handling - Top Half & Bottom Half
Combating Race Conditions - Spinlocks
Restrictions of kernel code running in an interrupt context
Block Device Drivers
Block Device Driver Characteristics
Similarities to Character Drivers
Differences between Block and Character Drivers
Registering block drivers
The block_device_operations structure
Network Drivers
Network Driver Characteristics
netdevice structure fields
netdevice structure methods
Opening and Closing
Packet Transmission
Packet Reception
The Interrupt handler
Socket buffer
A. Case Study: Parallel port Printer device driver
Understanding the parallel port
Preparing the parallel port
Implementing interrupt handler for parallel port
Tasklets and bottom half processing
Race conditions and spinlocks
Implementing read/write
Fecilities :
· State of the art Lab facilities
· Special session by professionals from the Industry
· Employment oriented curriculum
· Small size batch
· Unlimited lab timings
· PG Accomdations will be provided to outstation candidates
· placement assisatance can be provided to Project trainees and H1B / B1 Visa Holders
· Assured placement opportunities
· Flexible timing
· Realtime projects
Please contact Mr Prashanth for Registrations
Regards
Prashanth - overseas placement consultant
training4it
Ph : 98454 05119
E-mail : training4it@...
Do you Yahoo!?
Yahoo! Small Business - Try our new resources site!