2398147_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

2398147_zh-CN

2398147_zh-CN

IMX95 Aquila ISP 使用情况

你好,


我购买了一套 Aquila IMX95 评估套件 2,包含两个 ov5640 传感器( https://www.toradex.com/cart )。

我有传感器的驱动程序。主板固件已正确刷写,ISP模块已激活:

root@imx95-1:~# lsmod | grep -i isp
neoisp 69632 0

摄像头显示在 libcamera 中:

root@imx95-1:~# libcamera
-sh: libcamera: command not found
root@imx95-1:~# cam -l
[17:17:31.010001558] [2747] INFO Camera camera_manager.cpp:327 libcamera v0.4.0+dirty (2026-06-03T11:26:44UTC)
[17:17:31.044088474] [2748] WARN CameraSensor camera_sensor_legacy.cpp:354 'ov5640 4-003c': Recommended V4L2 control 0x009a0922 not supported
[17:17:31.044159391] [2748] WARN CameraSensor camera_sensor_legacy.cpp:426 'ov5640 4-003c': The sensor kernel driver needs to be fixed
[17:17:31.044178224] [2748] WARN CameraSensor camera_sensor_legacy.cpp:428 'ov5640 4-003c': See Documentation/sensor_driver_requirements.rst in the libcamera sources for more information
[17:17:31.044882558] [2748] WARN CameraSensor camera_sensor_legacy.cpp:594 'ov5640 4-003c': Failed to retrieve the camera location
[17:17:31.044918891] [2748] WARN CameraSensor camera_sensor_legacy.cpp:616 'ov5640 4-003c': Rotation control not available, default to 0 degrees
[17:17:31.045722599] [2748] WARN CameraSensor camera_sensor_legacy.cpp:354 'ov5640 3-003c': Recommended V4L2 control 0x009a0922 not supported
[17:17:31.045762974] [2748] WARN CameraSensor camera_sensor_legacy.cpp:426 'ov5640 3-003c': The sensor kernel driver needs to be fixed
[17:17:31.045783849] [2748] WARN CameraSensor camera_sensor_legacy.cpp:428 'ov5640 3-003c': See Documentation/sensor_driver_requirements.rst in the libcamera sources for more information
[17:17:31.046362016] [2748] WARN CameraSensor camera_sensor_legacy.cpp:594 'ov5640 3-003c': Failed to retrieve the camera location
[17:17:31.046388308] [2748] WARN CameraSensor camera_sensor_legacy.cpp:616 'ov5640 3-003c': Rotation control not available, default to 0 degrees
[17:17:31.048068724] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.048640224] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.048904099] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.049145974] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.049451724] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.049694683] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.049937141] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.050184266] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.050477516] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.050720433] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.050962433] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.051201724] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.051441724] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.051683308] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.051925308] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.052259141] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.052510099] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.061185308] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.061469974] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.061736058] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.061988683] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.062242933] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.062489474] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.062733266] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.062980349] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.063228266] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.063470391] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.063712849] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.063953933] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.064216891] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.064463349] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.064706683] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.064958766] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
[17:17:31.065200974] [2748] WARN V4L2 v4l2_pixelformat.cpp:346 Unsupported V4L2 pixel format AR30
Available cameras:
1: 'ov5640' (/base/soc/bus@42000000/i2c@42540000/camera@3c)
2: 'ov5640' (/base/soc/bus@42000000/i2c@426e0000/camera@3c)

为了检查 mipis 是否正常,我启动了一个 gstreamer 流水线,并成功地在两个摄像头上都获得了稳定的 30fps 流。我还成功地使用 v4l2-ctl 拍摄了快照。


现在,我想用我的摄像头测试一下 Aquila 的 ISP,看看它的表现如何。

请参阅https://www.nxp.com/docs/en/user-guide/UG10215.pdf我添加了环境变量:

root@imx95-1:~# export LIBCAMERA_PIPELINES_MATCH_LIST='nxp/neo'

但是这样做之后,libcamera 就检测不到摄像头了,我不知道为什么:

root@imx95-1:~# cam -l
[17:36:38.947430563] [2788] INFO Camera camera_manager.cpp:327 libcamera v0.4.0+dirty (2026-06-03T11:26:44UTC)
Available cameras:
root@imx95-1:~#

感谢你的回复 !


此致敬礼,

Re: IMX95 Aquila ISP usage

查看您的日志后,我认为该问题与 MIPI 接口或 OV5640 驱动程序本身无关。

事实是:

  • libcamera 检测到了两台 OV5640 摄像头。
  • GStreamer 可以以 30 fps 的帧率进行流媒体传输。
  • v4l2-ctl 可以捕获图像

这表明传感器驱动程序、I2C 通信、 CSI-2 链接和媒体拓扑结构均运行正常。

关键在于 NXP Neo ISP 流水线需要原始的拜耳传感器输入。

OV5640 是一款 SoC 图像传感器,具有自己的内部图像处理流程,在 NXP 电路板支持包 中,它通常以 YUV 输出模式(例如 YUV422)使用,而不是作为 RAW Bayer 传感器使用。在这种配置下,可以通过标准的 V4L2/libcamera 流水线使用摄像头,但它不符合 Neo ISP 流水线的要求。

这就能解释为什么了:

  • `cam -l` 默认会显示两台 OV5640 摄像头。
  • 设置后

export LIBCAMERA_PIPELINES_MATCH_LIST='nxp/neo'

已检测不到任何摄像头

摄像头仍然存在于系统中,但 NEO 流水线处理程序找不到兼容的摄像头拓扑结构,因此没有向 libcamera 公开任何摄像头。

为了验证传感器的实际输出格式,请提供以下输出:

```bash
media-ctl -p
v4l2-ctl --list-formats-ext
我们特别感兴趣的是,该传感器是否支持任何 RAW Bayer 格式,例如:
SBGGR8
SBGGR10
SRGGB10
RG10
BA10
如果只有 YUV 格式(例如 YUYV/UYVY)可用,则表示相机未在 RAW 模式下运行,无法通过 Neo ISP 处理流程进行处理。
虽然 OV5640 硬件能够输出 RAW Bayer 格式图像,但 BSP 相机驱动程序通常不会启用 RAW 支持,NXP Neo ISP 堆栈也依赖于传感器特定的调整数据。即使启用了 RAW 输出,由于缺少专用的 OV5640 调谐配置文件,可能会阻止 ISP 的正常操作(AE/AWB/图像质量调谐)。
如果您的目标是评估 Neo ISP 框架本身,那么使用已知可与 NXP ISP 协议栈配合使用的传感器可能会更容易。常见候选人包括:

OS08A20
OX03C10
OX05B1S
AR0521
AR1335(可能需要额外调校)

能否分享一下上述命令的输出结果?这将使我们能够确认当前的 OV5640 配置是否向系统暴露了 RAW Bayer 格式。
此致,

Re: IMX95 Aquila ISP usage

谢谢回复。

我做了一些额外的检查:

  • 您是对的,OV5640 最初运行在UYVY 模式下,但我手动将一个传感器切换到了RAW Bayer (SRGGB8)
  • media-ctl -p 现在显示:
 
root@imx95-1:~# media-ctl -p
Media controller API version 6.12.55

Media device information
------------------------
driver          mxc-isi
model           FSL Capture Media Device
serial          
bus info        platform:4ad50000.isi
hw revision     0x0
driver version  6.12.55

Device topology
- entity 1: crossbar (13 pads, 11 links, 8 routes)
            type V4L2 subdev subtype Unknown flags 0
            device node name /dev/v4l-subdev0
	routes:
		2/0 -> 5/0 [ACTIVE]
		3/0 -> 6/0 [ACTIVE]
		2/0 -> 7/0 [ACTIVE]
		3/0 -> 8/0 [ACTIVE]
		2/0 -> 9/0 [ACTIVE]
		3/0 -> 10/0 [ACTIVE]
		2/0 -> 11/0 [ACTIVE]
		3/0 -> 12/0 [ACTIVE]
	pad0: SINK,MUST_CONNECT
	pad1: SINK,MUST_CONNECT
	pad2: SINK,MUST_CONNECT
		[stream:0 fmt:SRGGB8_1X8/1920x1080 field:none]
		<- "4ac10000.syscon:formatter@20":1 [ENABLED,IMMUTABLE]
	pad3: SINK,MUST_CONNECT
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none]
		<- "4ac10000.syscon:formatter@120":1 [ENABLED,IMMUTABLE]
	pad4: SINK,MUST_CONNECT
		<- "mxc_isi.output":0 [ENABLED,IMMUTABLE]
	pad5: SOURCE
		[stream:0 fmt:SRGGB8_1X8/1920x1080 field:none]
		-> "mxc_isi.0":0 [ENABLED,IMMUTABLE]
	pad6: SOURCE
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none]
		-> "mxc_isi.1":0 [ENABLED,IMMUTABLE]
	pad7: SOURCE
		[stream:0 fmt:SRGGB8_1X8/1920x1080 field:none]
		-> "mxc_isi.2":0 [ENABLED,IMMUTABLE]
	pad8: SOURCE
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none]
		-> "mxc_isi.3":0 [ENABLED,IMMUTABLE]
	pad9: SOURCE
		[stream:0 fmt:SRGGB8_1X8/1920x1080 field:none]
		-> "mxc_isi.4":0 [ENABLED,IMMUTABLE]
	pad10: SOURCE
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none]
		-> "mxc_isi.5":0 [ENABLED,IMMUTABLE]
	pad11: SOURCE
		[stream:0 fmt:SRGGB8_1X8/1920x1080 field:none]
		-> "mxc_isi.6":0 [ENABLED,IMMUTABLE]
	pad12: SOURCE
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none]
		-> "mxc_isi.7":0 [ENABLED,IMMUTABLE]

- entity 15: mxc_isi.0 (2 pads, 2 links, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev1
	pad0: SINK
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none
		 compose.bounds:(0,0)/1920x1080
		 compose:(0,0)/1920x1080]
		<- "crossbar":5 [ENABLED,IMMUTABLE]
	pad1: SOURCE
		[stream:0 fmt:YUV8_1X24/1920x1080 field:none
		 crop.bounds:(0,0)/1920x1080
		 crop:(0,0)/1920x1080]
		-> "mxc_isi.0.capture":0 [ENABLED,IMMUTABLE]

- entity 18: mxc_isi.0.capture (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video2
	pad0: SINK
		<- "mxc_isi.0":1 [ENABLED,IMMUTABLE]

- entity 26: mxc_isi.1 (2 pads, 2 links, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev2
	pad0: SINK
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none
		 compose.bounds:(0,0)/1920x1080
		 compose:(0,0)/1920x1080]
		<- "crossbar":6 [ENABLED,IMMUTABLE]
	pad1: SOURCE
		[stream:0 fmt:YUV8_1X24/1920x1080 field:none
		 crop.bounds:(0,0)/1920x1080
		 crop:(0,0)/1920x1080]
		-> "mxc_isi.1.capture":0 [ENABLED,IMMUTABLE]

- entity 29: mxc_isi.1.capture (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video3
	pad0: SINK
		<- "mxc_isi.1":1 [ENABLED,IMMUTABLE]

- entity 37: mxc_isi.2 (2 pads, 2 links, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev3
	pad0: SINK
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 compose.bounds:(0,0)/1920x1080
		 compose:(0,0)/1920x1080]
		<- "crossbar":7 [ENABLED,IMMUTABLE]
	pad1: SOURCE
		[stream:0 fmt:YUV8_1X24/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 crop.bounds:(0,0)/1920x1080
		 crop:(0,0)/1920x1080]
		-> "mxc_isi.2.capture":0 [ENABLED,IMMUTABLE]

- entity 40: mxc_isi.2.capture (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video4
	pad0: SINK
		<- "mxc_isi.2":1 [ENABLED,IMMUTABLE]

- entity 48: mxc_isi.3 (2 pads, 2 links, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev4
	pad0: SINK
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 compose.bounds:(0,0)/1920x1080
		 compose:(0,0)/1920x1080]
		<- "crossbar":8 [ENABLED,IMMUTABLE]
	pad1: SOURCE
		[stream:0 fmt:YUV8_1X24/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 crop.bounds:(0,0)/1920x1080
		 crop:(0,0)/1920x1080]
		-> "mxc_isi.3.capture":0 [ENABLED,IMMUTABLE]

- entity 51: mxc_isi.3.capture (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video5
	pad0: SINK
		<- "mxc_isi.3":1 [ENABLED,IMMUTABLE]

- entity 59: mxc_isi.4 (2 pads, 2 links, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev5
	pad0: SINK
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 compose.bounds:(0,0)/1920x1080
		 compose:(0,0)/1920x1080]
		<- "crossbar":9 [ENABLED,IMMUTABLE]
	pad1: SOURCE
		[stream:0 fmt:YUV8_1X24/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 crop.bounds:(0,0)/1920x1080
		 crop:(0,0)/1920x1080]
		-> "mxc_isi.4.capture":0 [ENABLED,IMMUTABLE]

- entity 62: mxc_isi.4.capture (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video6
	pad0: SINK
		<- "mxc_isi.4":1 [ENABLED,IMMUTABLE]

- entity 70: mxc_isi.5 (2 pads, 2 links, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev6
	pad0: SINK
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 compose.bounds:(0,0)/1920x1080
		 compose:(0,0)/1920x1080]
		<- "crossbar":10 [ENABLED,IMMUTABLE]
	pad1: SOURCE
		[stream:0 fmt:YUV8_1X24/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 crop.bounds:(0,0)/1920x1080
		 crop:(0,0)/1920x1080]
		-> "mxc_isi.5.capture":0 [ENABLED,IMMUTABLE]

- entity 73: mxc_isi.5.capture (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video7
	pad0: SINK
		<- "mxc_isi.5":1 [ENABLED,IMMUTABLE]

- entity 81: mxc_isi.6 (2 pads, 2 links, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev7
	pad0: SINK
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 compose.bounds:(0,0)/1920x1080
		 compose:(0,0)/1920x1080]
		<- "crossbar":11 [ENABLED,IMMUTABLE]
	pad1: SOURCE
		[stream:0 fmt:YUV8_1X24/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 crop.bounds:(0,0)/1920x1080
		 crop:(0,0)/1920x1080]
		-> "mxc_isi.6.capture":0 [ENABLED,IMMUTABLE]

- entity 84: mxc_isi.6.capture (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video8
	pad0: SINK
		<- "mxc_isi.6":1 [ENABLED,IMMUTABLE]

- entity 92: mxc_isi.7 (2 pads, 2 links, 0 routes)
             type V4L2 subdev subtype Unknown flags 0
             device node name /dev/v4l-subdev8
	pad0: SINK
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 compose.bounds:(0,0)/1920x1080
		 compose:(0,0)/1920x1080]
		<- "crossbar":12 [ENABLED,IMMUTABLE]
	pad1: SOURCE
		[stream:0 fmt:YUV8_1X24/1920x1080 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range
		 crop.bounds:(0,0)/1920x1080
		 crop:(0,0)/1920x1080]
		-> "mxc_isi.7.capture":0 [ENABLED,IMMUTABLE]

- entity 95: mxc_isi.7.capture (1 pad, 1 link)
             type Node subtype V4L flags 0
             device node name /dev/video9
	pad0: SINK
		<- "mxc_isi.7":1 [ENABLED,IMMUTABLE]

- entity 103: mxc_isi.output (1 pad, 1 link)
              type Node subtype V4L flags 0
	pad0: SOURCE
		-> "crossbar":4 [ENABLED,IMMUTABLE]

- entity 110: 4ac10000.syscon:formatter@120 (2 pads, 2 links, 1 route)
              type V4L2 subdev subtype Unknown flags 0
              device node name /dev/v4l-subdev9
	routes:
		0/0 -> 1/0 [ACTIVE]
	pad0: SINK
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none]
		<- "csidev-4ad40000.csi":1 [ENABLED,IMMUTABLE]
	pad1: SOURCE
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none]
		-> "crossbar":3 [ENABLED,IMMUTABLE]

- entity 115: 4ac10000.syscon:formatter@20 (2 pads, 2 links, 1 route)
              type V4L2 subdev subtype Unknown flags 0
              device node name /dev/v4l-subdev10
	routes:
		0/0 -> 1/0 [ACTIVE]
	pad0: SINK
		[stream:0 fmt:SRGGB8_1X8/1920x1080]
		<- "csidev-4ad30000.csi":1 [ENABLED,IMMUTABLE]
	pad1: SOURCE
		[stream:0 fmt:SRGGB8_1X8/1920x1080]
		-> "crossbar":2 [ENABLED,IMMUTABLE]

- entity 120: csidev-4ad30000.csi (2 pads, 2 links, 1 route)
              type V4L2 subdev subtype Unknown flags 0
              device node name /dev/v4l-subdev11
	routes:
		0/0 -> 1/0 [ACTIVE]
	pad0: SINK
		[stream:0 fmt:SRGGB8_1X8/1920x1080 colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
		<- "ov5640 4-003c":0 [ENABLED]
	pad1: SOURCE
		[stream:0 fmt:SRGGB8_1X8/1920x1080 colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range]
		-> "4ac10000.syscon:formatter@20":0 [ENABLED,IMMUTABLE]

- entity 125: csidev-4ad40000.csi (2 pads, 2 links, 1 route)
              type V4L2 subdev subtype Unknown flags 0
              device node name /dev/v4l-subdev12
	routes:
		0/0 -> 1/0 [ACTIVE]
	pad0: SINK
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none]
		<- "ov5640 3-003c":0 [ENABLED]
	pad1: SOURCE
		[stream:0 fmt:UYVY8_1X16/1920x1080 field:none]
		-> "4ac10000.syscon:formatter@120":0 [ENABLED,IMMUTABLE]

- entity 130: ov5640 4-003c (1 pad, 1 link, 0 routes)
              type V4L2 subdev subtype Sensor flags 0
              device node name /dev/v4l-subdev13
	pad0: SOURCE
		[stream:0 fmt:SRGGB8_1X8/1920x1080@1/30 colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range
		 crop.bounds:(0,0)/2624x1964
		 crop:(336,434)/1952x1088]
		-> "csidev-4ad30000.csi":0 [ENABLED]

- entity 134: ov5640 3-003c (1 pad, 1 link, 0 routes)
              type V4L2 subdev subtype Sensor flags 0
              device node name /dev/v4l-subdev14
	pad0: SOURCE
		[stream:0 fmt:UYVY8_1X16/1920x1080@1/30 field:none colorspace:srgb xfer:srgb ycbcr:601 quantization:full-range
		 crop.bounds:(0,0)/2624x1964
		 crop:(336,434)/1952x1088]
		-> "csidev-4ad40000.csi":0 [ENABLED]

(第二个OV5640仍保持UYVY模式,用于对比)

所以 :
  • OV5640 -> SRGGB8
  • CSI -> SRGGB8
  • 格式化程序 -> SRGGB8
  • 横杆 -> SRGGB8

=> RAW Bayer 成功通过传感器、CSI 和格式化器进行传输。


neoisp内核模块已加载:

root@imx95-1:~# modprobe neoisp
root@imx95-1:~# lsmod | grep -i isp
neoisp                 69632  0

运行中的设备树中存在 ISP 节点:

 
/sys/firmware/devicetree/base/soc/isp@4ae00000
 

=> 但是,我只看到一个媒体设备(/dev/media0)暴露了 CSI/Formatter/ISI 管道。媒体图中没有出现新独立党派实体。我在媒体图中没有看到任何 neoisp 实体,我不知道这是否正常。

=> cam -l (libcamera) 仍然返回没有可用的摄像头。


目前看来,RAW Bayer 路径似乎可以正常工作,但我无法确定 Neo ISP 在哪个环节成为活动流程的一部分。

 
如何验证该流是否确实由 Neo ISP 处理,而不是仅仅遵循 CSI -> 格式化程序 -> ISI 路径?
 
另外,请参阅https://www.nxp.com/docs/en/user-guide/UG10215.pdf对于这种配置,目前还是推荐的指南吗?或者有没有针对 i.MX95 上 OV5640 + Neo ISP 的更具体的参考资料?
 
 
 
此致敬礼,
Re: IMX95 Aquila ISP usage

我目前怀疑以下情况之一正在发生:

  1. OV5640 很可能运行在 YUV 模式而不是 RAW Bayer 模式
  2. 摄像头 DT 叠加层不是 ISP 启用版本
  3. 根文件系统中缺少 Neo IPA/校准组件
  4. Neo 管道看到的媒体拓扑结构与预期的 i.MX95 ISP 图不匹配。

media-ctl -p 的输出通常会指出哪个才是真正的问题所在。

Tags (1)
No ratings
Version history
Last update:
18 hours ago
Updated by: