问题定位:I2C 正常但驱动未加载
从您提供的截图看,I2C 通信确实正常(0x30/0x32 都能检测到),但 dmesg 无 MIPI/相机识别信息,说明内核驱动未正确加载或设备树配置缺失。
第一步:确认板卡型号(关键)
# 请执行并回复结果
cat /proc/device-tree/compatible
RDK X3 和 X5 的驱动配置完全不同,需要先确认型号。
第二步:检查 MIPI 驱动是否加载
# 1. 查看已加载的内核模块
lsmod | grep -i "vin\|mipi\|sensor"
# 2. 查看设备树中摄像头节点状态
cat /proc/device-tree/soc/cam/vcon@0/status
cat /proc/device-tree/soc/cam/vcon@2/status
# 正常应显示 "okay",如果是 "disabled" 说明设备树未启用
# 3. 查看完整 dmesg 中 cam/vin 相关信息
dmesg | grep -i "cam\|vin\|csi" | head -50
第三步:尝试重新加载驱动
# 1. 查看是否有 mipi 相关模块
lsmod | grep hb
# 2. 如果有,尝试重新加载(示例)
sudo rmmod hb_vin
sudo modprobe hb_vin
# 3. 重新检测
dmesg | tail -30
ls /dev/video*
第四步:确认系统镜像版本
# 查看系统版本
cat /etc/os-release
# 查看 mipi_cam 包版本
apt list --installed | grep mipi
如果系统镜像过旧,可能缺少 SC230AI 的驱动支持,建议更新到最新版本。
可能原因汇总
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| I2C 有地址但 dmesg 无识别 | 设备树节点 disabled | 检查 /proc/device-tree/soc/cam/vcon@*/status |
| I2C 有地址但 dmesg 无识别 | 驱动模块未加载 | lsmod 查看,手动 modprobe |
| I2C 有地址但 dmesg 无识别 | 系统镜像过旧 | 更新到官方最新镜像 |
| I2C 有地址但 dmesg 无识别 | 第三方模组不兼容 | 联系模组厂商获取适配配置 |
推荐参考资源
- mipi 双目摄像头 SC230AI 调试案例 - 与您问题高度相似,有完整排查流程
- 双目深度算法文档 - 官方连接与启动教程
- SC230AI 是否有 SDK - 确认数据流获取方式
请提供以下信息以便进一步定位
# 1. 板卡型号
cat /proc/device-tree/compatible
# 2. 驱动模块状态
lsmod | grep -i "vin\|mipi\|sensor"
# 3. 设备树节点状态
cat /proc/device-tree/soc/cam/vcon@0/status
cat /proc/device-tree/soc/cam/vcon@2/status
# 4. 完整 dmesg(保存为文件)
dmesg > dmesg_full.txt
优先操作:检查 vcon@0 和 vcon@2 的 status 是否为 okay,这是设备树是否启用摄像头的关键!