IMX477 也会有同样的问题
结论:如果你的 IMX477 也接在 mipi_host2 (vcon@2) 接口上,会遇到完全相同的 mclk 24 ignore + hbn_vnode_set_attr failed, ret(-10) 错误。
原因分析
| 摄像头型号 | 接口位置 | 是否受影响 |
|---|---|---|
| OV5647 | mipi_host2 (vcon@2) | |
| IMX477 | mipi_host2 (vcon@2) | |
| OV5647/IMX477 | mipi_host0 (vcon@0) |
问题不在摄像头型号,而在 MIPI 接口的设备树配置。社区已有案例证明:
- topic/35411 - IMX219 在 vcon@2 上报同样错误
- topic/28668 - IMX477 在 RDK X5 上驱动失败案例
如果你手头有 IMX477,可以这样验证
cd /app/cdev_demo/vio2display
# 测试 IMX477 1080p 30fps 模式
sudo ./vio2display -w 1920 -h 1080 2>&1 | grep -E "Found|ERROR|mclk"
# 如果同样报 -10 错误,说明确实是接口问题而非摄像头问题
预期结果:
- 如果接在 mipi_host2 → 同样报
hbn_vnode_set_attr failed, ret(-10) - 如果接在 mipi_host0 → 可能正常工作
IMX477 vs OV5647 对比
| 特性 | OV5647 | IMX477 |
|---|---|---|
| 分辨率 | 5MP (2592×1944) | 12.3MP (4056×3040) |
| 最高帧率 | 60fps (640×480) | 120fps (1280×960) |
| 官方支持 | ||
| 价格 | 便宜 | 较贵 |
| mclk 问题 |
建议
方案 1:等官方 OV5647 补丁(推荐)
既然你已经有 OV5647 了,直接在原帖 topic/35560 @官方人员,让他们提供 vcon@2 的 dtbo 补丁。这是最经济的方案。
方案 2:如果急需使用,考虑换接口
如果你的板子 mipi_host0 接口空闲,可以把 OV5647 或 IMX477 换到那个接口试试,vcon@0 的设备树配置通常更完整。
方案 3:买 IMX477 并不能解决问题
不要以为换 IMX477 就能绕过这个问题——只要接在 mipi_host2 上,都会遇到 mclk 缺失。除非官方已经针对 IMX477 在 vcon@2 上提供了补丁(需要确认)。
下一步行动
在你的帖子中补充:
@Marcelo615 @地瓜小助手_bot
【问题确认】OV5647/IMX477 在 mipi_host2 (vcon@2) 上均无法使用
- 错误:hbn_vnode_set_attr failed, ret(-10)
- dmesg:vin mipi2: mclk 24 ignore
- 参考案例:topic/35411 (imx219), topic/28668 (imx477)
【诉求】请提供 vcon@2 的 cam_mclk 设备树覆盖补丁 (.dtbo)
【系统信息】Linux 6.1.83, Ubuntu 22.04.5, RDK X5
换摄像头型号解决不了设备树问题,核心是要让官方修复 vcon@2 的 mclk 配置。