Linux 设备驱动开发这门课,解决的是“硬件接入系统后,怎么让内核认识它、应用层怎么用”的问题。如果你在公司里遇到一块新屏幕、一个触摸芯片或一颗传感器,内核默认不认,你就得自己写驱动。这门课覆盖的正是这类最常见的嵌入式外设:显示、触摸、传感器、摄像头、音频,以及它们背后的 I2C、SPI、CAN、GPIO 总线。它不是讲理论框架,而是直接对着具体硬件类型讲驱动怎么搭。

适合什么基础

你需要先会 C 语言,知道指针、结构体、回调函数怎么用。还要对 Linux 基本操作不陌生,比如交叉编译、内核模块编译、设备树。如果这些都没碰过,建议先补一点内核模块入门,再来看这门课。它默认你懂“驱动是内核里的一个模块,通过 file_operations 和上层交互”这一套。课程里出现的设备类型都是实际产品里常出现的,比如 RGB 屏、MIPI 屏、LVDS 屏,还有加速度计和陀螺仪,这决定了它的内容偏工程,不偏学术。

建议先看哪几块

如果你是第一次接触驱动开发,不要从头到尾顺序看。先看“输入设备子系统”和“触摸屏”这两节,因为触摸屏是输入子系统最典型的应用,你能看到从硬件中断到上报事件,再到应用层读取的完整链路。看完这两块,你对“驱动到底在干什么”会有具体印象。接着看“I2C 总线”和“SPI 总线”,因为大多数传感器和屏幕都挂在这两种总线上,理解了总线通信,后面看具体设备就顺了。最后再看显示相关的几节,它们内容最多,涉及颜色理论、panel 种类和不同接口的时序,适合在需要时查着看。

学完能独立做什么

学完这门课,你能独立为一块新的触摸屏写出基于输入子系统的驱动,让触摸事件能上报到用户态;能点亮一块 RGB 或 MIPI 接口的 LCD,把背光调起来;能读取加速度计和陀螺仪的数据并输出到 sysfs 或字符设备;也能给一个 I2C 设备写基本的读写驱动。这些技能对应的是智能硬件、工业控制、车载设备等岗位里最常见的驱动任务。如果你已经会写简单的字符设备驱动,这门课能帮你把视野扩展到真实产品中的复杂外设。

资料怎么配合练习?不要只看视频。每学完一个总线或设备,就找一块对应的开发板或芯片手册,照着课程里的思路自己写一个最小驱动。比如学完 I2C 总线,就自己写一个读温度传感器的驱动,先在应用层用 i2c-tools 验证地址,再写内核模块。学触摸屏时,先把 input 子系统里的 event 类型和上报函数搞清楚,再改一个现成的触摸驱动,看 dmesg 和 evtest 的输出。显示部分如果手头没有对应的屏,可以先在虚拟设备上跑,理解时序的配置逻辑。总之,把每一节当成一个“能动手的清单”,而不是知识点的堆砌。这样学完,你才能真的把驱动写出来,而不是只会在面试里说概念。

课程目录

课程目录12 集
  • 1 touch触摸屏 (09:39).mp4
  • 2 illumination(背光和灯效) (20:34).mp4
  • 3 display一(通用原理) (22:38).mp4
  • 4 display二(RGB屏) (19:12).mp4
  • 5 display三(mipi屏) (22:56).mp4
  • 6 display四(lvds屏) (24:51).mp4
  • 7 display五(panel种类和颜色理论) (29:40).mp4
  • 8 sensor(加速度计、磁力计、陀螺仪) (36:17).mp4
  • 9 输入设备子系统 (25:20).mp4
  • 10 camera(V4L2)、audio ALSA、杂项 (19:08).mp4
  • 11 spi总线、i2c总线 (26:34).mp4
  • 12 CAN总线、gpio (29:38).mp4