Linux内核驱动开发实战精讲
📘 30章 · 从入门到项目
01
内核开发环境搭建
虚拟机
交叉编译
内核源码
最小系统
📂 环境准备
开始学习 →
02
内核模块基础
模块加载/卸载
参数传递
依赖
许可证
🧩 模块机制
开始学习 →
03
字符设备驱动框架
设备号
file_operations
cdev
设备节点
⚙️ 字符设备
开始学习 →
04
驱动中的并发控制
自旋锁
信号量
互斥锁
原子操作
🔒 并发
开始学习 →
05
阻塞与非阻塞IO
等待队列
轮询
异步通知
信号
📨 IO模型
开始学习 →
06
驱动中的内存管理
kmalloc
vmalloc
内存池
DMA
🧠 内存
开始学习 →
07
驱动中的时间管理
内核定时器
高精度定时器
jiffies
延迟
⏱️ 时间
开始学习 →
08
中断处理
注册/注销
上半部/下半部
tasklet
工作队列
⚡ 中断
开始学习 →
09
平台设备驱动
platform总线
platform_device
设备树匹配
📟 平台驱动
开始学习 →
10
设备树详解
语法
绑定
中断控制器
pinctrl
🌳 设备树
开始学习 →
11
I2C驱动开发
I2C协议
核心层
设备驱动
总线驱动
🔌 I2C
开始学习 →
12
SPI驱动开发
SPI协议
核心层
设备驱动
总线驱动
🔗 SPI
开始学习 →
13
USB驱动开发
USB协议
核心数据结构
设备驱动
主机驱动
🔌 USB
开始学习 →
14
PCIe驱动开发
配置空间
BAR空间
DMA
MSI中断
💻 PCIe
开始学习 →
15
块设备驱动
块设备框架
请求队列
bio
gendisk
💾 块设备
开始学习 →
16
网络设备驱动
网络协议栈
sk_buff
net_device
NAPI
🌐 网络
开始学习 →
17
帧缓冲设备驱动
framebuffer
fb_info
显存映射
显示参数
🖥️ 帧缓冲
开始学习 →
18
输入子系统驱动
输入核心
设备注册
事件上报
多点触摸
🖱️ 输入
开始学习 →
19
ALSA音频驱动
ALSA架构
声卡创建
PCM
控制接口
🎵 音频
开始学习 →
20
V4L2视频驱动
V4L2框架
视频设备
缓冲区管理
采集流程
📹 视频
开始学习 →
21
DMA引擎驱动
DMA引擎框架
通道申请
描述符
回调
🚀 DMA
开始学习 →
22
时钟与电源管理
时钟框架
电源管理
休眠唤醒
动态调频
🔋 电源
开始学习 →
23
Regmap子系统
Regmap框架
I2C/SPI映射
缓存策略
批量读写
📋 Regmap
开始学习 →
24
Pinctrl与GPIO子系统
Pinctrl
GPIO操作
中断映射
复用配置
🔧 引脚控制
开始学习 →
25
内核调试技术
printk
动态调试
procfs/sysfs
ftrace
🐞 调试
开始学习 →
26
内核崩溃分析
Oops
kdump
crash工具
堆栈回溯
💥 崩溃
开始学习 →
27
性能优化与调优
perf
lockdep
内存泄漏
延迟分析
⚡ 性能
开始学习 →
28
内核安全机制
SELinux
Capabilities
IMA
KASLR
🛡️ 安全
开始学习 →
29
内核模块签名与验证
模块签名
密钥管理
强制验证
安全启动
🔑 签名
开始学习 →
30
驱动开发实战项目
IMX6ULL
STM32MP157
GPIO/I2C/SPI
综合项目
🚧 实战
开始学习 →
⭐ 点击卡片跳转对应章节 · 30章完整目录 ⭐