📸 Linux内核Camera子系统
从零上手
🎯 30章 · 完整实战
01
全景
Camera子系统全景
V4L2 · 硬件架构 Sensor/ISP/CSI
02
环境
开发环境搭建
交叉编译 · 内核源码 · 设备树 · QEMU
03
框架
V4L2框架初探
video_device/v4l2_device/subdev · 注册流程
04
基础
字符设备驱动基础
cdev · file_operations · 设备号 · miscdevice
05
模型
Platform驱动模型
platform_driver/device · probe/remove · DTS
06
I2C
I2C子设备驱动
I2C_client/driver · SMBus · Sensor寄存器
07
Sensor
Sensor驱动核心
初始化 · 电源序列 · MCLK配置
08
Subdev
V4L2 Subdev操作集
subdev_ops · s_power/s_stream · pad操作
09
Media
Media Controller框架
media_device/entity/pad · link · 拓扑
10
Buffer
Video Buffer管理
videobuf2 · queue/setup/prepare · DMA映射
11
DMA
DMA引擎与Scatter-Gather
映射类型 · SG表 · 硬件描述符
12
CSI
CSI主机控制器驱动
CSI-2 · DPHY · Lane映射 · 时钟
13
ISP
ISP图像处理管线
BLC/AWB/AE/CCM/Gamma · 参数传递
14
Control
V4L2 Control框架
ctrl_handler · 标准/自定义控制 · 事件
15
帧同步
帧同步与中断处理
VSYNC/HSYNC · 帧完成回调 · timestamp
16
MIPI
多路复用与MIPI虚拟通道
VC通道 · 解串器 · 多Sensor同步
17
电源
电源管理
Runtime PM · suspend/resume · 时钟门控
18
IOMMU
IOMMU/SMMU集成
映射 · 地址转换 · 页表 · CMA
19
调试
调试与性能优化
tracepoint/ftrace · printk · 帧率测量
20
用户API
用户空间API
open/close/ioctl · VIDIOC_* · 示例
21
libcamera
libcamera框架
PipelineHandler · CameraManager · Request
22
HAL
Camera HAL集成
Android HAL3 · CameraDevice · Metadata
23
编码
JPEG/RAW编码
硬件JPEG · RAW格式 · EXIF注入
24
热插拔
热插拔与设备树覆盖
Device Tree Overlay · 动态管理
25
安全
安全与权限控制
SELinux · Capability · Camera权限模型
26
多核
多核调度与缓存一致性
CPU/GPU/ISP缓存同步 · DMA_BUF · ion
27
虚拟化
虚拟化与容器Camera
VirtIO Camera · 容器直通 · KVM
28
测试
测试与验证
v4l2-compliance · 压力测试 · CI集成
29
社区
社区贡献与代码审查
补丁流程 · checkpatch · Review Checklist
30
实战
实战项目:OV5640驱动
从零编写驱动 · 用户空间测试 · 调优报告