运行测试程序无法识别到我的GS130W相机
根据你提供的错误日志和照片,我来帮你分析问题:
问题诊断
从错误日志可以看到关键信息:
WARN: Sensor Name: ov8x83d-30fps, Expected Chip ID: 0xCB34, Actual Chip ID Read: 0x00
WARN: Sensor Name: ov8x83d-30fps, Expected Chip ID: 0xCB34, Actual Chip ID Read: 0x00
ERROR [openCamera][0310]No camera sensor found, please check whether the camera connection or video_idx is correct.
核心问题:系统检测到摄像头传感器,但读取到的 Chip ID 是 0x00(应该是 0xCB34),说明 I2C 通信失败。
可能原因
- 摄像头排线接触不良 - 从照片看排线连接可能有问题
- 拨码开关设置错误 - S100 的 MIPI 摄像头需要正确设置拨码
- 摄像头供电异常 - 摄像头可能没有正常上电
- I2C 总线冲突 - 多个设备占用同一 I2C 地址
排查步骤
1. 检查硬件连接
# 重新插拔摄像头排线,确保完全插入
# 检查排线金手指是否氧化,可用橡皮擦轻轻擦拭
从你的照片看,摄像头排线似乎没有完全插入,请确保:
- 排线完全插入 MIPI CSI 接口
- 卡扣已经扣紧
- 排线方向正确(金手指朝向正确)
2. 检查拨码开关
S100 使用 MIPI 摄像头需要设置拨码开关:
- SW1 拨码:根据使用的 MIPI 接口设置
- 如果使用 CSI0:拨码设置参考官方文档
请提供你的拨码开关当前设置照片。
3. 检测 I2C 设备
# 检测 I2C 总线 1 上的设备
i2cdetect -y 1
# 查看摄像头是否在 0x10 地址
# GS130W 的 I2C 地址通常是 0x10
4. 检查系统版本
# 查看当前系统版本
cat /etc/rdk_version
# 建议升级到最新版本(4.0.4+)
5. 尝试其他测试程序
# 尝试使用 TROS 的 MIPI 摄像头 demo
cd /app/tros_demo/camera
python mipi_camera_test.py
建议操作顺序
- 重新插拔摄像头排线(最可能的问题)
- 确认拨码开关设置正确
- 运行
i2cdetect -y 1查看是否能检测到设备 - 提供拨码开关照片,我帮你确认设置
参考案例
社区有类似问题可以参考:RDK S100 mipi 摄像头 demo 无法跑通
请先重新插拔排线并确认连接牢固,然后运行 i2cdetect -y 1 把结果发出来。
您好,有关双目的使用需要提供以下信息来协助排查:
-
硬件连接方式,清晰图像信息
-
参考使用的手册地址和链接
-
相关软件包信息,包括 系统镜像版本 和 软件包版本信息
-
具体的命令行操作步骤以及相关的日志打印信息
上面是硬件来你姐
这是参考地址:hobot_mipi_cam/README.md at develop · D-Robotics/hobot_mipi_cam
这是参考手册:
系统版本是 4.0.4.软件包信息您是指?
下面是根据教程的打印信息:
根据你提供的最新信息,我来帮你深入分析问题:
问题诊断
从错误日志看:
[ERROR] camera init failure
[ERROR] camera validation parameter failed
[ERROR] Can't find device: /dev/sunxi_mipi_csi0
核心问题:MIPI CSI 设备节点未创建成功,说明底层驱动未正确识别摄像头。
关键排查点
1. 拨码开关设置(最可能的问题)
从你的硬件连接照片看,使用的是 双 MIPI 摄像头。S100 的拨码开关需要正确设置:
| MIPI 接口 | SW1 拨码设置 |
|---|---|
| CSI0 单目 | 1-ON, 2-OFF, 3-OFF, 4-OFF |
| CSI1 单目 | 1-OFF, 2-ON, 3-OFF, 4-OFF |
| CSI0+CSI1 双目 | 1-ON, 2-ON, 3-OFF, 4-OFF |
请提供 SW1 拨码开关的清晰照片,确认设置是否正确。
2. 检查 I2C 通信
# 检测 I2C 总线上的摄像头设备
i2cdetect -y 1
# 应该能在 0x10 地址看到设备(GS130W 的 I2C 地址)
# 如果显示 -- 说明 I2C 通信失败
3. 检查设备树和驱动加载
# 查看 MIPI CSI 设备是否注册
ls -la /dev/sunxi_mipi_csi*
# 查看内核日志中的摄像头相关信息
dmesg | grep -i camera
# 查看 MIPI 相关日志
dmesg | grep -i mipi
4. 软件包信息
# 查看 hobot_mipi_cam 包版本
pip show hobot-mipi-cam
# 或查看已安装的包
pip list | grep hobot
建议操作顺序
- 确认拨码开关设置 → 提供清晰照片
- 运行
i2cdetect -y 1→ 查看 I2C 设备列表 - 运行
dmesg | grep -i camera→ 查看内核日志 - 重新插拔排线 → 确保连接牢固
参考资源
请先运行以下命令并把结果发出来:
i2cdetect -y 1
dmesg | grep -i camera
ls -la /dev/sunxi_mipi_csi*
这样我能更准确地定位问题所在。
问题分析
你发现的问题很关键!这不是编译 BUG,而是代码配置问题。
从日志可以看到:
Searching camera sensor on device: /proc/device-tree/soc/vcon@0 i2c bus: 4
问题根源:hobot_mipi_cam 库的默认配置是针对 RDK X5 平台的(I2C bus 4/6),而 S100 的 I2C bus 是 1/2。
解决方案
方案 1:修改配置文件(推荐)
查看 hobot_mipi_cam 的配置文件位置:
# 找到配置文件
find /usr -name "*.json" | grep -i camera
# 或
find /usr -name "*.yaml" | grep -i camera
# 或查看 Python 包的安装位置
pip show hobot-mipi-cam
通常在以下位置之一:
/usr/lib/python3/dist-packages/hobot_mipi_cam/config//etc/hobot/camera_config.json- 包内的
config.py或camera_cfg.py
修改 I2C bus 配置:
# 找到类似这样的配置并修改
# RDK X5 配置(错误)
I2C_BUS = 4 # 或 6
# 改为 RDK S100 配置(正确)
I2C_BUS = 1 # CSI0 使用 bus 1
# 或
I2C_BUS = 2 # CSI1 使用 bus 2
方案 2:使用环境变量覆盖
某些版本支持通过环境变量配置:
# 尝试设置环境变量
export MIPI_I2C_BUS=1
export CAM_TYPE=mipi
# 然后运行你的程序
python your_camera_test.py
方案 3:直接修改源码(临时方案)
如果找不到配置文件,可以直接修改 Python 包源码:
# 找到 hobot_mipi_cam 的安装位置
python3 -c "import hobot_mipi_cam; print(hobot_mipi_cam.__file__)"
# 编辑相关文件,搜索 "bus 4" 或 "i2c_bus" 并修改
sudo nano <找到的路径>
方案 4:使用官方推荐的 sample_pipeline(最稳定)
根据社区案例,官方推荐使用 sample_pipeline 来替代 pydev_demo:
# 参考官方文档
# https://developer.d-robotics.cc/rdk_doc/rdk_s/Advanced_development/multimedia_development/multimedia_application/sample_pipeline
# 使用 multi_pipe_vin_isp_ynr_pym_gdc_vpu 示例
cd /app/hbn_sample/sample_pipeline
./multi_pipe_vin_isp_ynr_pym_gdc_vpu
快速验证
先运行以下命令确认 I2C 设备:
# 确认 S100 的 I2C bus
i2cdetect -y 1 # CSI0
i2cdetect -y 2 # CSI1
# 查看设备树配置
cat /proc/device-tree/soc/vcon@0/i2c-bus
cat /proc/device-tree/soc/vcon@1/i2c-bus
建议操作顺序
- 先运行
i2cdetect -y 1和i2cdetect -y 2确认摄像头在哪个 bus 上 - 查找
hobot_mipi_cam的配置文件 并修改 I2C bus 设置 - 如果找不到配置文件,考虑使用
sample_pipeline替代方案 - 将问题反馈到社区,帮助其他 S100 用户避免同样问题
请运行以下命令并把结果发出来:
python3 -c "import hobot_mipi_cam; print(hobot_mipi_cam.__file__)"
i2cdetect -y 1
i2cdetect -y 2
这样我可以帮你定位具体的配置文件位置。
hobot mipi 这个包在官方的源里面是有编译好的版本的,可以直接apt install
软件包版本其实指的就是 hobot_mipi_cam 这一类软件包的版本,自行编译的话可以看看cmakelist里面有没有对应的编译参数可选,







