Linux 内核
Linux 内核子系统源码分析(Linux 6.8)。
USB 子系统
- USB 2.0 枚举流程
- hub_port_init 调用链
- usb_get_descriptor 调用链
- 枚举与两轮 Probe
- UVC 驱动分析
- Gadget 子系统概览 — UDC / composite / configfs 四层架构
- Configfs 组装分析 —
gadget_info/cdev脚本拼装与 bind - UDC bind 分析 —
udc_bind_to_driver、pending、pullup - DWC2 接口总览 —
gadget_ops、ep_ops与框架交付边界 - Composite EP0 枚举 —
composite_setup、SET_CONFIGURATION - ACM Function 路径 —
f_acm.c、gserial_connect与 ttyGS - Gadget CDC ACM 串口实践 — configfs +
ttyGS0/ Hostcdc_acm
Media / V4L2 子系统
- i.MX6ULL OV5640:设备树到 /dev/video — DVP DTS、引脚冲突与 mx6s 出现 video 节点(Linux 4.9.88 BSP)
- OV5640 横纹与偏色 — CSI 同步极性 vs ffplay 像素格式(Linux 4.9.88 BSP)
- PXP PRIMARY 直写 fb0 — YUYV→RGB 硬件显示与内核 patch(Linux 4.9.88 BSP)
- PXP USERPTR 零拷贝 — CSI 缓冲直交 PXP,降低 CPU 占用(Linux 4.9.88 BSP)
- V4L2 设备注册与 video 节点
- V4L2 ioctl 分发
- videobuffer2:Buffer 状态机与双链表
Pinctrl / GPIO 子系统
SPI 子系统
Sound / ALSA
对照内核以百问 Linux 4.9.88 BSP 为主(文首已注明;与上方多数 6.8 文不同)。
- i.MX6ULL
/dev/snd设备节点 —controlC0/pcmC0D0·D1、dai_link与file_operations - i.MX6ULL 声卡播放路径 —
aplay→ SDMA / SAI / WM8960 与调用栈 - i.MX6ULL 声卡录音路径 —
arecord/read/DEV_TO_MEM/ SAI RX - ALSA PCM 状态机与 XRUN — 状态、阈值与 underrun/overrun
系列概览:Sound / ALSA
BPF / kprobe
对照内核以 Ubuntu HWE 5.15 为主(文首已注明;与上方多数 6.8 文不同)。
- eBPF kprobe:load / attach / 命中 — PROG_LOAD / 插桩 / LINK / 多 BPF 分发
- kprobe-on-ftrace 插桩实测 — 入口 NOP↔CALL 与 handler 上下文
系列概览:BPF / kprobe
调试与实践
针对具体问题的排查记录与实验笔记(与上方流程分析互补)。