MIPI CSI 接口转换
本页用于整理 MIPI CSI 相关接口转换、桥接与树莓派等平台的方案说明。
说明
请在此补充方案概述、硬件连接、驱动与验证步骤。若与 LK_X2MIPI 树莓派编译包相关,可与同目录下的专题页交叉引用。
树莓派本地编译包(LK_X2MIPI)
这个目录用于放到树莓派上直接本地编译:
module/:外部内核模块(.ko)overlay/:设备树 overlay(.dtbo)scripts/:一键构建与安装脚本
目录结构
lk_x2mipi/
├─ module/
│ ├─ Makefile
│ └─ lk_x2mipi.c # 模块源码(构建产物 lk_x2mipi.ko)
├─ overlay/
│ └─ lk_x2mipi-overlay.dts
└─ scripts/
├─ build.sh
└─ install.sh1) 放到树莓派
将整个 lk_x2mipi 目录拷贝到树莓派,例如:
/home/pi/lk_x2mipi/
2) 准备依赖(树莓派执行)
sudo apt update
sudo apt install -y bc bison flex libssl-dev make device-tree-compiler raspberrypi-kernel-headers确认内核头可用:
ls -l /lib/modules/$(uname -r)/build3) 驱动源码说明
当前驱动源码已是可编译版本(最小 bring-up):
- 已匹配
compatible = "ultrasemi,lk-x2mipi"; - 已实现基础 subdev 注册、I2C 访问、stream 开关、timings 查询;
- 后续可在此基础上继续补充中断、EDID、音频和更完整的模式管理。
4) 编译
cd /home/pi/lk_x2mipi
chmod +x scripts/*.sh
./scripts/build.sh编译成功后会得到:
module/lk_x2mipi.kooverlay/lk_x2mipi.dtbo(与dtoverlay=lk_x2mipi对应;源文件为lk_x2mipi-overlay.dts)
5) 安装并加载
cd /home/pi/lk_x2mipi
sudo ./scripts/install.sh脚本会执行:
- 安装
lk_x2mipi.ko到/lib/modules/$(uname -r)/extra/ depmod -amodprobe lk_x2mipi- 安装
lk_x2mipi.dtbo到/boot/overlays/(如目录存在)或/boot/firmware/overlays/
6) 启用 overlay
在 /boot/firmware/config.txt(部分系统是 /boot/config.txt)中添加:
camera_auto_detect=0
dtoverlay=lk_x2mipi本 overlay 默认 2-lane CSI(树莓派摄像头 FFC 的 D0/D1),与 i2c_csi_dsi 上的 SCL/SDA 一致,无需再写 2lane 参数。
接在 CAM0 接口时使用:
dtoverlay=lk_x2mipi,cam0若硬件实际接了 4 条 CSI data lane,再启用:
dtoverlay=lk_x2mipi,4lane如需 media-controller 模式:
dtoverlay=lk_x2mipi,media-controller=1重启后验证:
dmesg | grep -i lk_x2mipi
media-ctl -p
v4l2-ctl --list-devices若没有 /dev/video0、列表里也没有 unicam
dtoverlay=lk_x2mipi 只会加载 /boot/firmware/overlays/lk_x2mipi.dtbo。若你曾使用过旧文件,请在本仓库里重新执行 ./scripts/build.sh 与 sudo ./scripts/install.sh 覆盖安装。
7) 通过字符设备更新 EDID
驱动会创建字符设备:
/dev/lk_x2mipi
向该设备写入 EDID 二进制(最大 512 字节)即可下发到桥接芯片。例如:
sudo dd if=/path/to/edid.bin of=/dev/lk_x2mipi bs=512 count=1查看更新结果:
dmesg | grep -i "EDID updated"