本文章与以下文件强相关(建议优先阅读)
由于 rk3566 与 rk3568 属于同一系列,大量内容是通用的,因此如果你有 4K 画面的需求,那么这篇文章应该对你有帮助。
本文涉及到的部分代码、IQ 文件源自 正点原子 rk3568 开发板。
为避免资源因平台变化而丢失,我已将驱动文件、设备树文件、IQ 文件全部上传到 GitHub,需要自取即可。
👉 https://github.com/SweerItTer/imx415_about/tree/main
第一部分:内核驱动移植
以下操作基于一个前提:你清楚 make menuconfig 修改的是哪类配置文件。
* 号标记为可选步骤,根据实际情况执行。
如果是首次打开 SDK,建议先运行 ./build.sh lunch 并选择一个默认配置。
Step 1:选择驱动
-
cd进入 内核目录 -
运行
make menuconfig -
按
/进入搜索 -
输入 imx415
-
选择第一个完全匹配的选项

-
一路返回并保存配置(或直接在底部选择 save)
Step 2:检查配置
建议先执行:
bash
make savedefconfig
然后打开 kernel/.config,搜索:
CONFIG_VIDEO_IMX415=y
确认它已被正确启用。
Step 3:修改默认配置*
当你发现 menuconfig 修改无效(常见于某些 Rockchip SDK)时,可手动添加:
-
打开:
./kernel/arch/arm64/configs/rockchip_linux_defconfig
实际路径依你的 lunch 输出为准,如:
~/rk3566/device/rockchip/rk356x/BoardConfig-rk3566-tspi-v10.mk
-
找个合适的位置加入:
CONFIG_VIDEO_IMX415=y
示例:

Step 4 重新编译 kernel
回到 SDK 根目录执行:
bash
./build.sh kernel
Step 5:检查编译产物
bash
ls ./kernel/drivers/media/i2c/ | grep imx415
期待输出类似:
imx415.c
imx415.o
如果没有出现:
- 检查
.config是否变成了is not set
➜ 说明 menuconfig 设置没有被写入 - 或者在重新编译后配置又被覆盖
➜ 参考 Step 3 手动修改 defconfig
第二部分:设备树修改
直接前往仓库:
👉 https://github.com/SweerItTer/imx415_about
下载对应 DTS 文件并替换到:
~/rk3566/kernel/arch/arm64/boot/dts/rockchip
建议先备份原始的 tspi-rk3566-csi-v10.dtsi,不然设备树不兼容会被坑得很惨。
设备树修改原理(重要)
从 diff 对比可以总结 IMX415 移植的核心逻辑如下:
① 启用 MIPI DPHY 端口
默认 dphy 是 disabled,为摄像头启用必须写:
dts
status = "okay";
② 为两个摄像头建立独立端点(endpoint)
IMX415:4-lane(用于 4K)
OV5695:2-lane(1080P 足够)
示例:
dts
dphy0_imx415_in: endpoint@1 {
remote-endpoint = <&imx415_out>;
data-lanes = <1 2 3 4>; // IMX415 = 4 lanes
};
dphy0_ov5659_in: endpoint@2 {
remote-endpoint = <&ov5695_out>;
data-lanes = <1 2>; // OV5695 = 2 lanes
};
重点:IMX415 是 4K 传感器,带宽高,必须占满 4 lane;
OV5695 是普通 1080P,2 lane 足够。
③ I2C 配置:两摄共用引脚但地址不同
两个 sensor 共用:
- power-gpios
- pwdn-gpios
- reset-gpios
但地址不同:
- IMX415 → 0x37
- OV5695 → 0x36
这是常见的"共用供电和控制,但用地址区分"写法,硬件简单,驱动也能自动区分。
④ 重新绑定端点(双摄扩展基础)
原来单摄像头时:
dts
remote-endpoint = <&ov5695_out>;
扩展为双摄后切换为:
dts
remote-endpoint = <&imx415_out>;
或根据需求在 ISP 中动态选择。
这属于 Rockchip 常见的「单 CSI 支持双 Sensor」范式:
端点重映射 + 独立 lane + 分地址 I2C。
参考:
Winner1300 - 泰山派 OV5695 分析
第三部分:fs-overlay 添加 IQ 文件
详细步骤参考文首提到的:
这里给出主要目标:
① 下载 IQ 文件
从 GitHub 获取:
imx415_CMK-OT2022-PX1_IR0147-50IRC-8M-F20.json
(根据 ISP 版本选择,文中为 ISP2.1 → json 格式,而非 xml)
② 放入 fs-overlay
示例:
~/rk3566/buildroot/board/rockchip/rk356x/fs-overlay
└── etc
└── iqfiles
└── imx415_CMK-OT2022-PX1_IR0147-50IRC-8M-F20.json
③ 让系统加载 IQ 文件
你可以选择:
-
重新编译 buildroot → 自动 overlay
-
或者直接把文件手动推送到开发板:
/etc/iqfiles
然后按一次开发板的 RESET(或断电重启)。
完成 🎉
以上步骤正确完成后,IMX415 基本即可在 rk3566 上跑起来。
文章为付费内容, 请点个star继续阅读(反正CSDN没有DN)