IMX219可识别但ISP hbn_vnode_set_attr返回-10

RDK X5,board_id 302,RDK OS 3.5.0,Kernel 6.1.83。

使用 IMX219 摄像头时,Sensor 可正常识别,但 ISP 初始化失败。

当前环境:


hobot-camera: 3.1.1-20260409105913
hobot-multimedia: 3.0.5-20260409105737
hobot-multimedia-samples: 3.1.1-20260409110018
hobot-dtb: 3.0.8-20260409105754
Kernel: 6.1.83 #1 SMP PREEMPT Wed Apr 8 21:09:59 CST 2026
board_id: 302

IMX219 在两个 MIPI 接口均能正常识别。

接口 1:


CSI2
I2C bus 4
addr 0x10
chip id 0x0219

换到另一 MIPI 接口后:


CSI0
I2C bus 6
addr 0x10
chip id 0x0219

使用官方 sample:


cd /app/multimedia_samples/sample_isp/get_isp_data
./get_isp_data -s 30 -c vf

输出:


INFO: Found sensor_name:imx219-1920x1080-30fps ...
create_and_run_vflow() src_out_channel : 0 , dst_input_channel : 0
use offline mode
create_vin_node() cim_isp_flyby = 0 , vin_ochn_ddr_en = 1
create_isp_node() isp_attr input_mode : 2
create_isp_node(381) failed, ret -10
create_and_run_vflow failed for sensor 30. ret = -10

查看源码确认失败 API 为:


ret = hbn_vnode_open(HB_ISP, 0, AUTO_ALLOC_ID, isp_node_handle); // success
ret = hbn_vnode_set_attr(*isp_node_handle, isp_attr);            // ret = -10

dmesg 对应日志:


vs-isp 3d000000.isp: failed to post on state changed (err=-22)
vs-isp 3d000000.isp: failed to call isp_set_state (err=-22)

已做以下交叉测试:

  • 1920x1080 + vf:失败

  • 1920x1080 + vo:失败

  • 640x480 + vo:失败

  • 官方 Python MIPI Camera demo:同样在 ISP 初始化阶段失败

  • CSI0、CSI2 两个接口均可识别 IMX219,但 ISP 均失败

同时日志持续出现:


mipi mclk is not configed.
csi0/csi2 ignore mclk ex attr, because not config mclk.
vin mipi0/mipi2: snrclk set en not support

Device Tree 中:


vcon0: I2C bus 6, rx_phy 0
vcon2: I2C bus 4, rx_phy 2

/proc/device-tree/boot/lib/firmware 搜索 cam_mclk 均无结果。

另外发现 NAND MiniBoot 原版本较旧:


NAND: 2025-06-18
IMG:  2026-04-08

已执行 rdk-miniboot-update 升级,并重启验证,问题仍然存在。

想请官方协助确认:

  1. board_id 302 是否需要额外的 Camera MCLK / DTB / DTBO 配置?

  2. hbn_vnode_set_attr(HB_ISP) 返回 -10、kernel vs-isp err=-22 是否为 RDK OS 3.5.0 已知问题?

  3. 是否有适用于 RDK X5 board_id 302 + IMX219 的设备树补丁或推荐修复方案?

当前目标是先让 IMX219 正常输出图像,后续用于相机内参标定。

① 结论:最可能是 board_id 302 的相机 MCLK/DTB 或 DTBO 未正确配置,导致 ISP 驱动返回参数错误;知识库未检索到 -10/-22 的明确已知问题或现成补丁。

② 排查步骤:

  1. 先确认设备树是否缺少 camera/MCLK 节点;日志中的 mipi mclk is not configed 是强指向。根据知识库,你当前 offline 参数 ddr_en=1、cim_isp_flyby=0、input_mode=2 组合本身正确,先不要改应用参数。
find /proc/device-tree -iname '*mclk*' -o -iname '*cam*'
  1. 更新/重装 DTB 和相机相关软件包后重启;若仍无 MCLK/camera 节点,则需要官方提供 board_id 302 的 DTBO/设备树补丁。
sudo apt update
sudo apt install --reinstall hobot-dtb hobot-camera hobot-multimedia hobot-multimedia-samples
sudo reboot
  1. 复现并采集版本与内核日志;内核 -22 按通用经验多为参数无效,需完整日志确认是否为驱动/设备树问题。
cat /etc/os-release; uname -a
dpkg -l | grep -E 'hobot-(camera|multimedia|dtb)'
dmesg -T | grep -Ei 'imx219|vs-isp|vin|mipi|csi'

③ 需补充信息:请补充系统镜像是否最新、/boot 下 DTB/DTBO 文件列表、完整 dmesg 与复现截图、摄像头模组型号/排线接法、同板是否验证过其他 camera。

你好是自己的IMX219还是系统支持列表中的