01
驱动与Rootfs集成概述
什么是驱动集成、Rootfs集成,为什么需要集成,失败的一般后果
概念基础
02
内核编译环境搭建
交叉编译工具链配置、内核源码获取与解压、menuconfig、编译常见错误
环境编译
03
Rootfs制作基础
Busybox编译与安装、最小根文件系统、init与inittab、启动流程
文件系统Busybox
04
驱动模块编译与加载
内核模块编写、Makefile、insmod/rmmod、模块依赖处理
模块加载
05
设备树 (Device Tree) 基础
DTS语法、DTC编译、设备树与驱动匹配、常见错误
设备树DTS
06
驱动与Rootfs集成流程
驱动放入内核源码树、配置支持、Rootfs放置模块、自动加载
集成流程
07
文件系统挂载问题
根文件系统挂载失败、VFS错误、找不到init、挂载点权限
挂载VFS
08
驱动依赖缺失问题
内核符号依赖、模块顺序、modprobe/depmod、循环依赖
依赖modprobe
09
设备节点创建问题
udev/mdev机制、手动创建节点、devtmpfs、节点权限
设备节点udev
10
内核Panic与Oops分析
Panic信息解读、Oops栈回溯、addr2line定位、kdump/crash
调试Panic
11
Rootfs空间不足问题
磁盘空间规划、日志清理、符号链接优化、squashfs
空间优化
12
驱动与内核版本不匹配
API变更、结构体变化、版本检查、兼容层
版本兼容
13
Rootfs中缺少动态库
ldd检查依赖、库路径配置、静态编译、buildroot
动态库ldd
14
启动参数配置问题
bootargs、root=、init=、console参数设置
启动参数
15
网络驱动集成问题
网卡驱动编译、网络协议栈、IP获取、NFS Rootfs
网络NFS
16
存储驱动集成问题
MMC/SD卡、NAND Flash、UBIFS、坏块管理
存储Flash
17
显示驱动集成问题
Framebuffer、DRM/KMS、分辨率设置、控制台切换
显示DRM
18
USB驱动集成问题
USB主机/设备、HID、存储类、USB Gadget
USBGadget
19
音频驱动集成问题
ALSA架构、音频编解码器、音量控制、音频测试
音频ALSA
20
GPIO与中断驱动问题
GPIO编号映射、中断号申请、中断处理、共享中断
GPIO中断
21
I2C/SPI总线驱动问题
总线设备注册、设备地址、通信时序、速率设置
I2CSPI
22
时钟与定时器驱动问题
时钟源配置、定时器中断、高精度定时器、时钟同步
时钟定时器
23
电源管理驱动问题
休眠唤醒、电源域、频率调节、功耗优化
电源PM
24
Rootfs中脚本与初始化问题
rcS脚本、服务启动顺序、环境变量、开机自启
脚本init
25
调试工具与技巧
printk、动态调试、ftrace、perf性能分析
调试ftrace
26
日志分析与问题定位
dmesg、syslog、日志级别、日志持久化
日志dmesg
27
常见硬件兼容性问题
端序、内存对齐、缓存一致性、DMA问题
硬件兼容
28
安全启动与签名问题
内核签名、模块签名、文件系统校验、SELinux
安全签名
29
性能优化与稳定性
驱动性能瓶颈、中断延迟、内存泄漏、看门狗
性能看门狗
30
综合案例实战
从零构建完整系统、驱动集成全流程、问题排查实战
实战综合