核心结论
MIPI 摄像头的 I2C 检测不到是正常现象! RDK X5 的 MIPI CSI 接口不走标准 V4L2/I2C 路径,i2cdetect 检测不到设备地址不代表硬件有问题。
根据社区案例(如 官方双目摄像头 i2cdetect 无法探测到),这是 RDK X5 的架构特性:
- USB 摄像头:走 V4L2 驱动,
/dev/video*可见,i2cdetect可检测 - MIPI CSI 摄像头:走地平线专用 ISP 管道,不暴露为标准 I2C 设备
正确排查步骤
第一步:确认摄像头型号和连接
# 1. 检查 MIPI 接口物理连接
# - 确认排线方向正确(金属面朝内/外参考手册)
# - 确认接口插紧无松动
# - 如使用转接线,确认兼容性(15pin↔22pin)
# 2. 查看系统识别的 MIPI 设备
dmesg | grep -i mipi
dmesg | grep -i camera
dmesg | grep -i isp
第二步:使用官方 MIPI 样例测试
# 进入 MIPI 摄像头样例目录
cd /app/pydev_demo/03_mipi_camera_sample/
# 运行样例(根据你连接的 CSI 接口选择 pipeId)
sudo python3 ./mipi_camera.py
关键参数说明:
pipeId=0→ 对应 CSI-1 接口pipeId=1→ 对应 CSI-2 接口- 需要根据你的摄像头型号修改传感器配置
第三步:检查设备树和驱动加载
# 查看内核日志中摄像头相关报错
dmesg | tail -100 | grep -E "camera|mipi|isp|sensor"
# 检查是否有 ISP 节点创建失败
dmesg | grep "creat_isp_node"
第四步:确认系统版本和摄像头兼容性
# 检查系统版本
cat /etc/issue
# 确认摄像头型号是否在官方支持列表中
# 参考:https://developer.d-robotics.cc/rdk_doc/Quick_start/hardware_introduction/rdk_x5#mipi_port
常见原因
| 问题 | 现象 | 解决方案 |
|---|---|---|
| 摄像头型号不兼容 | 样例运行报错 creat_isp_node failed |
使用官方支持型号(如 SC130AI、SC230AI、GS130W 等) |
| 系统版本过旧 | 驱动加载失败 | 升级到 3.1.0+ 版本 |
| 硬件连接错误 | 无任何输出 | 检查排线方向、接口松动 |
| 转接线不兼容 | 间歇性识别失败 | 使用官方转接线或直接连接 |
| 设备树未配置 | 检测不到传感器 | 参考手册配置对应传感器节点 |
下一步行动
请提供以下信息,我可以帮你进一步定位:
- 摄像头具体型号(如 SC130AI、OV5647、IMX219 等)
- 连接的 MIPI 接口(CSI-1 还是 CSI-2)
- 运行官方样例的报错信息
dmesg | grep -i mipi的输出
相关资源
建议:先运行官方样例确认硬件是否正常,不要依赖 i2cdetect 判断 MIPI 摄像头状态。