这条路线按照“先跑通环境,再理解内核抽象,最后完成驱动与调试闭环”的顺序,整理 RongCraft 现有的 20 篇嵌入式 Linux 笔记。你可以从第一阶段顺序阅读,也可以直接跳到正在解决的问题。
建议用法:初学者按阶段顺序阅读;有开发经验时先查看对应子系统,再进入具体驱动实战。每篇文章末尾都提供返回路线和相关主题的入口。
第一阶段:环境、启动与系统移植
先把开发环境、启动链路和内核移植串起来,建立从主机到开发板的完整视角。
- WSL2 搭建 iMX6ULL 开发环境完整教程
从安装 WSL2、配置镜像网络,到搭建 NFS/TFTP 和交叉编译工具链,完整讲解 iMX6ULL 嵌入式 Linux 开发环境搭建与常见故障排查。 - 芯片上电到 Linux 启动全流程
以 iMX6ULL 为例梳理嵌入式 Linux 从 BootROM、U-Boot、内核到 init 和 Shell 的完整启动流程,并总结常见面试要点。 - iMX6ULL Linux 5.15 内核移植:defconfig、DTS 与以太网驱动
记录 iMX6ULL Linux 5.15 内核移植全过程:defconfig 裁剪、DTS 适配、U-Boot 启动配置,以及以太网驱动问题的定位与修复。
第二阶段:Linux 设备模型与内核子系统
理解 Platform 总线后,再按 GPIO、PWM、TTY、Watchdog、IIO、SPI 和 Input 逐个掌握内核抽象。
- Linux Platform 设备驱动模型
系统讲解 Linux Platform 设备驱动模型:platform_device、platform_driver、匹配机制、资源获取、probe 流程与完整驱动示例。 - GPIO Hog 机制详解
详解 Linux 设备树 GPIO Hog 机制,包括自动预占 GPIO、输入输出配置、初始化时序、典型 DTS 写法和常见问题。 - PWM 子系统与 Host 驱动开发
以 iMX6ULL pwm-imx 为例分析 Linux PWM 子系统、Host 驱动注册与 probe 流程、核心数据结构和 sysfs 控制方法。 - TTY 子系统架构与源码文件解析
基于 Linux 4.14 和 iMX6ULL,解析 TTY 子系统分层架构及 drivers/tty 关键源码文件职责,梳理字符设备到串口驱动的数据路径。 - Linux Watchdog 接口与 API 参考
整理 Linux Watchdog 用户态接口与 API:/dev/watchdog、Magic Close、ioctl 命令、超时设置、状态查询和环境监测。 - Linux IIO 子系统详解
系统讲解 Linux Industrial I/O(IIO)子系统:设备模型、通道、sysfs、buffer、trigger、核心数据结构与传感器驱动流程。 - Linux SPI 子系统详解
系统讲解 Linux SPI 子系统:总线架构、spi_device、spi_driver、spi_transfer、同步传输 API、DTS 配置与常见故障。 - Linux Input 子系统详解
系统讲解 Linux Input 子系统:input_dev、input_event、事件类型与键码、驱动注册和上报、用户态读取与常见问题。
第三阶段:驱动开发实战
通过 LED、蜂鸣器、按键、传感器、IMU 和 WiFi,把设备树、probe、资源管理与用户态验证连成闭环。
- LED Platform 驱动开发
以 iMX6ULL GPIO LED 为例,使用 Platform Driver 实现字符设备驱动,涵盖 DTS、probe、write 控制、定时器闪烁与测试程序。 - Beep Platform 驱动开发(miscdevice 框架)
以 iMX6ULL 蜂鸣器为例,使用 Platform Driver 与 miscdevice 实现字符设备驱动,涵盖设备树、GPIO 控制、注册流程和测试。 - Key Platform 驱动开发(中断与定时器消抖)
以 iMX6ULL 按键为例,实现 Platform Driver、miscdevice、中断和定时器消抖,讲解事件处理、DTS 配置与用户态测试。 - Key Input 子系统驱动开发
将 iMX6ULL 按键驱动从 miscdevice 重构为 Linux Input 子系统,讲解 input_dev 注册、中断消抖、事件上报、DTS 与测试。 - AP3216C IIO 驱动开发
以 AP3216C 三合一传感器为例实现 Linux IIO 驱动,涵盖 I2C 寄存器、通道定义、数据读取、DTS 配置与调试验证。 - ICM-20608 SPI IIO 驱动开发
以 ICM-20608 六轴 IMU 为例实现 SPI IIO 驱动,涵盖寄存器协议、通道设计、中断与 workqueue、DTS 和测试。 - RTL8189FS WiFi 驱动移植与配置
记录 iMX6ULL 平台 RTL8189FS WiFi 驱动移植、SDIO 配置、模块编译加载、热点连接及常见故障排查。
第四阶段:工具与网络调试
最后补齐终端效率与网络吞吐测试工具,让环境配置和驱动验证更可重复。
- Shell 提示符(PS1)配置
讲解 Linux Shell 提示符 PS1 的常用转义符、临时与永久配置、颜色和多行样式,适合开发板 rootfs 定制与多设备调试。 - iperf3 交叉编译与网络吞吐测试
讲解如何为 iMX6ULL 交叉编译 iperf3,并使用 eth0 与 wlan0 测试有线和 WiFi 网络吞吐、分析结果与瓶颈。
路线会随着新文章持续更新。若你正在排查具体硬件问题,可先从所属子系统文章建立模型,再回到对应实战记录。