在 imx93 中添加对 RPi 摄像头 V2 的支持 你好, 我使用的是 imx93-11x11 evk 而且我有 RPi 摄像头 V2,我想在使用我正在构建的核心映像基础的 yocto 版本中增加对它的支持,谁 能为我提供我需要连接到 Up 摄像头模块的 dts 和 h/w 连接的补丁吗? Yocto Project Re: Add support for RPi camera V2 in imx93 嗨 joanxie,你 能分享一下你提到的补丁以供参考吗? Re: Add support for RPi camera V2 in imx93 最后,移植成功了吗?我目前也在尝试移植它,现在我可以看到视频设备列表,但是流媒体的视频数据是空的。 Re: Add support for RPi camera V2 in imx93 @joanxie 我解决了那个问题现在得到了 /dev/video0 但是在捕获时我遇到了问题 我会给你所有日志以供参考 root@imx93-11x11-lpddr4x-evk:~# media-ctl -p
Media controller API version 6.6.23
Media device information
------------------------
driver mxc-md
model FSL Capture Media Device
serial
bus info platform:42800000.bus:camera
hw revision 0x0
driver version 6.6.23
Device topology
- entity 1: mxc_isi.0 (16 pads, 2 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
pad0: Sink
<- "mxc-mipi-csi2.0":4 [ENABLED]
pad1: Sink
pad2: Sink
pad3: Sink
pad4: Sink
pad5: Sink
pad6: Sink
pad7: Sink
pad8: Sink
pad9: Sink
pad10: Sink
pad11: Sink
pad12: Source
-> "mxc_isi.0.capture":0 [ENABLED]
pad13: Source
pad14: Source
pad15: Sink
- entity 18: mxc_isi.0.capture (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video0
pad0: Sink
<- "mxc_isi.0":12 [ENABLED]
- entity 22: mxc-mipi-csi2.0 (8 pads, 2 links)
type Node subtype V4L flags 0
device node name /dev/v4l-subdev0
pad0: Sink
<- "imx219 2-0010":0 [ENABLED,IMMUTABLE]
pad1: Sink
pad2: Sink
pad3: Sink
pad4: Source
-> "mxc_isi.0":0 [ENABLED]
pad5: Source
pad6: Source
pad7: Source
- entity 31: imx219 2-0010 (1 pad, 1 link, 0 routes)
type V4L2 subdev subtype Sensor flags 0
device node name /dev/v4l-subdev1
pad0: Source
[stream:0 fmt:SRGGB10_1X10/3280x2464 field:none colorspace:raw xfer:none quantization:full-range
crop.bounds:(8,8)/3280x2464
crop:(8,8)/3280x2464]
-> "mxc-mipi-csi2.0":0 [ENABLED,IMMUTABLE]
root@imx93-11x11-lpddr4x-evk:~#
root@imx93-11x11-lpddr4x-evk:~# v4l2-ctl --list-device
FSL Capture Media Device (platform:42800000.bus:camera):
/dev/media0
mxc-isi-cap_v1 (platform:4ae40000.isi:cap_devic):
/dev/video0
root@imx93-11x11-lpddr4x-evk:~#
$ gst-launch-1.0 v4l2src device=/dev/video0 ! videoconvert ! queue ! tcpclientsink host=192.168.68.209 port=>video/x-raw,format=NV12,width=1920,height=1080 ! videoconvert ! queue ! tcpclientsink host=192.168.68.209 port=5000
Setting pipeline to PAUSED ...
$ gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=YUY2,width=1920,height=1080 ! videoconvert ! queue ! tcpclientsink host=192.168.68.209 port=5000
Setting pipeline to PAUSED ...
$ gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=YUY2,width=640,height=480 ! videoconvert ! autovideosink
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
WARNING: from element /GstPipeline:pipeline0/GstAutoVideoSink:autovideosink0: Failed to initializ[ 46.432183] mxc_isi.0: Call subdev s_power fail!
e egl: EGL_NOT_INITIALIZED
Additional debug info:
/usr/src/debug/gstreamer1.0-plugins-base/1.24.7.imx/ext/gl/gstglimagesink.c(1140): _ensure_gl_setup (): /GstGLImageSinkBin:autovideosink0-actual-sink-glimage/GstGLImageSink:sink
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Failed to allocate required memory.
Additional debug info:
/usr/src/debug/gstreamer1.0-plugins-good/1.24.7.imx/sys/v4l2/gstv4l2src.c(956): gst_v4l2src_decide_allocation (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Buffer pool activation failed
Execution ended after 0:00:00.016970917
Setting pipeline to NULL ...
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Internal data stream error.
Additional debug info:
/usr/src/debug/gstreamer1.0/1.24.7.imx/libs/gst/base/gstbasesrc.c(3177): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
streaming stopped, reason not-negotiated (-4)
Freeing pipeline ...
[ 158.156378] mxc_isi.0: Call subdev s_power fail!
[ 328.749218] mxc_isi.0: Call subdev s_power fail!
[ 350.954960] mxc_isi.0: Call subdev s_power fail!
[ 509.022065] mxc_isi.0: Call subdev s_power fail!
[ 826.091379] mxc_isi.0: Call subdev s_power fail!
[ 1043.341463] mxc_isi.0: Call subdev s_power fail!
[ 1454.303027] mxc_isi.0: Call subdev s_power fail!
Re: Add support for RPi camera V2 in imx93 请参考错误信息和有限的信息,调试 imx8-media-dev.c、您可以添加更多打印,以检查根本原因是什么、 Re: Add support for RPi camera V2 in imx93 @joanxie 我解决了问题,并获得了 /dev/video0 root@imx93-11x11-lpddr4x-evk:~# media-ctl -p
Media controller API version 6.6.23
Media device information
------------------------
driver mxc-md
model FSL Capture Media Device
serial
bus info platform:42800000.bus:camera
hw revision 0x0
driver version 6.6.23
Device topology
- entity 1: mxc_isi.0 (16 pads, 2 links, 0 routes)
type V4L2 subdev subtype Unknown flags 0
pad0: Sink
<- "mxc-mipi-csi2.0":4 [ENABLED]
pad1: Sink
pad2: Sink
pad3: Sink
pad4: Sink
pad5: Sink
pad6: Sink
pad7: Sink
pad8: Sink
pad9: Sink
pad10: Sink
pad11: Sink
pad12: Source
-> "mxc_isi.0.capture":0 [ENABLED]
pad13: Source
pad14: Source
pad15: Sink
- entity 18: mxc_isi.0.capture (1 pad, 1 link)
type Node subtype V4L flags 0
device node name /dev/video0
pad0: Sink
<- "mxc_isi.0":12 [ENABLED]
- entity 22: mxc-mipi-csi2.0 (8 pads, 2 links)
type Node subtype V4L flags 0
device node name /dev/v4l-subdev0
pad0: Sink
<- "imx219 2-0010":0 [ENABLED,IMMUTABLE]
pad1: Sink
pad2: Sink
pad3: Sink
pad4: Source
-> "mxc_isi.0":0 [ENABLED]
pad5: Source
pad6: Source
pad7: Source
- entity 31: imx219 2-0010 (1 pad, 1 link, 0 routes)
type V4L2 subdev subtype Sensor flags 0
device node name /dev/v4l-subdev1
pad0: Source
[stream:0 fmt:SRGGB10_1X10/3280x2464 field:none colorspace:raw xfer:none quantization:full-range
crop.bounds:(8,8)/3280x2464
crop:(8,8)/3280x2464]
-> "mxc-mipi-csi2.0":0 [ENABLED,IMMUTABLE]
root@imx93-11x11-lpddr4x-evk:~#
root@imx93-11x11-lpddr4x-evk:~# v4l2-ctl --list-device
FSL Capture Media Device (platform:42800000.bus:camera):
/dev/media0
mxc-isi-cap_v1 (platform:4ae40000.isi:cap_devic):
/dev/video0
root@imx93-11x11-lpddr4x-evk:~# 但我无法捕获?我怎样才能捕获?你能分析一下上面然后给我下捕获命令吗? Re: Add support for RPi camera V2 in imx93 你好 @joanxie 我在 dts 中应用了补丁并成功地进行了探测 imx219 但是在加载驱动程序 imx8_media_dev root 时掉线了 @imx93 -11x11-lpddr4x-evk:~# dmesg | grep-E 'imx219|mx8-img-md ' [2.529849] imx219:启动 imx219_probe () 函数 [2.529859] imx219: 为 imx219 结构分配的内存 [2.529888] imx219:已初始化 CCI regmap [2.529898] imx219:获得系统时钟 (xclk) [2.529901] imx219:xclk 频率已验证:24000000 Hz [2.529916] imx219 2-0010:找不到供应 VANA,使用 虚拟调节器 [2.536651] imx219 2-0010:未找到电源 VDIG,使用虚拟调节器 [2.543291] imx219 2-0010:未找到电源 VDDL,使用虚拟调节器 [2.549915] imx219:监管机构收购 [2.550112] imx219:请求可选的 RESET GPIO [2.557779] imx219:传感器设置为直播模式 [2.558012] imx219:传感器恢复到待机模式 [2.558181] imx219:子开发标志和功能集 [2.558185] imx219:媒体实体键盘已初始化 [2.558189] imx219:子开发初始化完成 [2.558199] imx 219:Subdev 传感器异步注册 [2.558296] imx219:运行时 PM 已初始化 [7.541231] mx8-img-md:将 mxc_isi.0.捕获注册为 /dev/ video0 [7.567996] mx8-img-md:注册的传感器子设备:imx219 2-0010 (1) [7.600977] mx8-img-md:已创建链接 [c_isi.0] = > [mxc_isi.0.capture] [7.643109] mx8-img-md:已创建链接 [mxc-mipi-csi2.0]=> [mxc_isi.0] [ 7.685370] mx8-img-md: subdev_notifier_complete 错误退出 [ 7.697350] mx8-img-md:取消注册所有实体 Re: Add support for RPi camera V2 in imx93 您可以从最小图像开始,然后自己添加额外的模块,我们的 AN 是基于多媒体或完整图像的,而不是基于最小图像的,如果您对不同图像上的相机移植有进一步的问题,请创建一个新案例,并附上您的详细问题 Re: Add support for RPi camera V2 in imx93 你好@joanxie ,你能检查一次吗? Re: Add support for RPi camera V2 in imx93 minimal 是仅允许设备启动的小映像。我以前使用过多媒体,但没有测试过 imx93 相机移植的最小值,应该没问题。 Re: Add support for RPi camera V2 in imx93 你好 @joanxie 对于本应用笔记,默认 ap1302 处于启用状态,因为这张完整图像是必填的还是会以最小图像显示?,如你所知,我正在添加对 imx219 的支持所以我正在构建最少的图像所以如果我只添加 dts 补丁它能起作用吗? Re: Add support for RPi camera V2 in imx93 正如我在邮件中提到的那样,这不是正式版本,仅供参考,你需要移植到自己的电路板支持包,而不仅仅是直接应用整个补丁,你可以根据自己的电路板支持包更改源代码 Re: Add support for RPi camera V2 in imx93 您好@joanxie 可以,但在此之前,我在不同的驱动程序中也遇到了一些错误,我使用的是 6.6-scarthgap,您能检查一下吗?我需要单独添加您的 MAKEFILE 补丁,因为行数也不匹配。 Re: Add support for RPi camera V2 in imx93 将 int imx219_probe(struct i2c_client *client, const struct i2c_device_id *id) 改为 int imx219_probe(struct i2c_client *client) 如何? Re: Add support for RPi camera V2 in imx93 Hi@joanxie 应用了您提供的补丁,附上我在编译时遇到的错误日志文件。 Re: Add support for RPi camera V2 in imx93 你好, 好的,我将检查补丁,实际上我有 RPI 摄像头模块 v2,我从 h/w 规范中了解到它使用 imx219。 我有一个装有柔性电缆的摄像头,想把它升级。 Re: Add support for RPi camera V2 in imx93 通常客户使用 IMX219 输出作为原始数据,imx93 无法直接处理这个问题,如果你只需要捕获,imx93 可以支持,那么你可以使用 SW 将原始数据转换为其他格式,请查看你的邮件,我把补丁发给你以供参考 Re: Add support for RPi camera V2 in imx93 你好@joanxie 感谢您的回复, 这是针对 ap1302 的,我使用的是摄像头模块:RPi 摄像头 V2 使用的是索尼 IMX219 传感器,如果我用上述步骤直接连接它,它能工作吗? Re: Add support for RPi camera V2 in imx93 请参阅本申请表
https://docs.nxp.com/bundle/UM11933/page/topics/getting_started.html Re: Add support for RPi camera V2 in imx93 能否提供补丁?
View full article