Device Driver: Vinod Kamath Cs691X Project Work
Device Driver: Vinod Kamath Cs691X Project Work
Device Driver: Vinod Kamath Cs691X Project Work
VINOD KAMATH
CS691X PROJECT WORK
Introduction
• How to write/install device drivers
• Systems, Kernel Programming
• Character, Block and Network devices
Tasks involved
• Building and Running modules
• Character device drivers
Building device driver
• Module vs. Applications
module
– Appln - single task
– Module - register for future
• Compiling and Loading
– ___KERNEL__, MODULE
– insmod,rmmod
– Global var-Symtab
• Do in Kernel space (not User space)
– response time; block/network devs
Character device drivers
• Scull - Simple Char. Util. for Loading
Localities
– Acts on mem. Area as though it is a device
– Demonstrate interface betn. Kernel and Char
drivers
– n devices for n mem. areas
• Major/Minor no.- (un)register chr_dev
Design and
implementation
• File operations/structure
of Scull
– Device id. By file structure
– Kenerl uses file ops. To access driver’s functions
• Open and Close
– Initialize device, usage count,
• Memory
– Device-memory Link List
• Read and Write
– Transfer data from Kernel-User
• Testing/Debugging
– cp, cat, dd wls-l > dev/scull0
Examples-Hello World
• #define MODULE
• #include <linux/module.h>