Introduction
Explore Linux device drivers
()
What you should know
()
1. Working with the Linux Kernel
Getting Linux kernel source code
()
Linux kernel documentation tree
()
The kernel make system
()
Linux kernel headers
()
Challenge: Download and make a Linux kernel
()
Solution: Download and make a Linux kernel
()
2. How Loadable Modules Work
The benefits of loadable modules
()
Introduction to module commands
()
Depmod and modprobe
()
Module parameters
()
Module parameters in device driver code
()
Work with licensing and modules
()
Challenge: Work with loadable modules
()
Solution: Work with loadable modules
()
3. Compiling and Debugging
Writing a loadable kernel module
()
Build and load a loadable module
()
Use printk() and pr_*()
()
Tracing and debugging
()
Challenge: Write, trace, debug
()
Solution: Write, trace, debug
()
4. Character Device Drivers
Use device files
()
Create device files
()
Character device driver file operations
()
Implementing operation functions
()
Write a character device driver
()
The /dev/null driver
()
Understand the user and kernel address spaces
()
Challenge: Write a character driver
()
Solution: Write a character driver
()
5. Block Drivers
Use block device files
()
Describe the function of the block layer
()
Block driver operations
()
Handle I/O requests
()
Challenge: Investigate block layer and devices
()
Solution: Investigate block layer and devices
()
6. Network Drivers
Look at the role of network device drivers
()
Network driver interrupt handling
()
Examine the net_device_ops structure
()
Examine PCI-related APIs in network drivers
()
Challenge: Using tools with a network driver
()
Solution: Using tools with a network driver
()
7. User Space Device Drivers
Introduction to user space device drivers
()
UIO, mapping device memory, and interrupts
()
Kernel modules for user space drivers
()
User space Ethernet driver
()
I2C from user space
()
Challenge: Modify and test a user space driver
()
Solution: Modify and test a user space driver
()
Ex_Files_Linux_Device_Drivers.zip
(142.5 MB)