This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TDA4VM:四路摄像头图像的拼接显示失败。

Guru**** 2329400 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1510898/tda4vm-the-splicing-display-of-the-images-from-the-four-way-cameras-failed

器件型号:TDA4VM

工具/软件:

尊敬的 专家:

我正在同时显示四个摄像头的图像。 它无法同时显示四个摄像机的图像。   显示以下错误。

[  921.676101] ds90ub960 5-003d: rx2 CSI error: 0xc
[  921.680724] ds90ub960 5-003d: rx2 CSI checksum error
[  921.685682] ds90ub960 5-003d: rx2 CSI length error
[  922.221586] ds90ub960 5-003d: rx1 buffer error
[  922.227764] ds90ub960 5-003d: rx3 buffer error
[  922.232212] ds90ub960 5-003d: rx3 CSI error: 0xc
[  922.236833] ds90ub960 5-003d: rx3 CSI checksum error
[  922.241800] ds90ub960 5-003d: rx3 CSI length error
[  922.764084] ds90ub960 5-003d: rx0 buffer error
[  922.769119] ds90ub960 5-003d: rx1 buffer error
[  922.774152] ds90ub960 5-003d: rx3 buffer error
[  923.308087] ds90ub960 5-003d: rx0 buffer error
[  923.313122] ds90ub960 5-003d: rx1 buffer error
[  923.318153] ds90ub960 5-003d: rx2 buffer error
[  923.323192] ds90ub960 5-003d: rx3 buffer error

这是我的 GStreamer 命令。 我根据两个摄像头的命令对它们进行了修改。

gst-launch-1.0 -v \
v4l2src device=/dev/video-ox03c10-cam0 io-mode=5 ! video/x-bayer, width=1920, height=1280, framerate=60/1, format=bggr12 ! queue leaky=2 ! tiovxisp sink_0::device=/dev/v4l-ox03c10-subdev0 sensor-name=SENSOR_SONY_OX03C10_UB953_D3 dcc-isp-file=/opt/imaging/ox03c10/wdr/dcc_viss_wdr.bin sink_0::dcc-2a-file=/opt/imaging/ox03c10/wdr/dcc_2a_wdr.bin format-msb=11 sink_0::pool-size=8 src::pool-size=8 ! video/x-raw, format=NV12, width=1920, height=1280 ! queue ! mosaic.sink_0 \
v4l2src device=/dev/video-ox03c10-cam1 io-mode=5 ! video/x-bayer, width=1920, height=1280, framerate=60/1, format=bggr12 ! queue leaky=2 ! tiovxisp sink_0::device=/dev/v4l-ox03c10-subdev1 sensor-name=SENSOR_SONY_OX03C10_UB953_D3 dcc-isp-file=/opt/imaging/ox03c10/wdr/dcc_viss_wdr.bin sink_0::dcc-2a-file=/opt/imaging/ox03c10/wdr/dcc_2a_wdr.bin format-msb=11 sink_0::pool-size=8 src::pool-size=8 ! video/x-raw, format=NV12, width=1920, height=1280 ! queue ! mosaic.sink_1 \
v4l2src device=/dev/video-ox03c10-cam2 io-mode=5 ! video/x-bayer, width=1920, height=1280, framerate=60/1, format=bggr12 ! queue leaky=2 ! tiovxisp sink_0::device=/dev/v4l-ox03c10-subdev2 sensor-name=SENSOR_SONY_OX03C10_UB953_D3 dcc-isp-file=/opt/imaging/ox03c10/wdr/dcc_viss_wdr.bin sink_0::dcc-2a-file=/opt/imaging/ox03c10/wdr/dcc_2a_wdr.bin format-msb=11 sink_0::pool-size=8 src::pool-size=8 ! video/x-raw, format=NV12, width=1920, height=1280 ! queue ! mosaic.sink_2 \
v4l2src device=/dev/video-ox03c10-cam3 io-mode=5 ! video/x-bayer, width=1920, height=1280, framerate=60/1, format=bggr12 ! queue leaky=2 ! tiovxisp sink_0::device=/dev/v4l-ox03c10-subdev3 sensor-name=SENSOR_SONY_OX03C10_UB953_D3 dcc-isp-file=/opt/imaging/ox03c10/wdr/dcc_viss_wdr.bin sink_0::dcc-2a-file=/opt/imaging/ox03c10/wdr/dcc_2a_wdr.bin format-msb=11 sink_0::pool-size=8 src::pool-size=8 ! video/x-raw, format=NV12, width=1920, height=1280 ! queue ! mosaic.sink_3 \
tiovxmosaic name=mosaic \
sink_0::startx="<0>" sink_0::starty="<0>" sink_0::widths="<640>" sink_0::heights="<360>" \
sink_1::startx="<640>" sink_1::starty="<0>" sink_1::widths="<640>" sink_1::heights="<360>" \
sink_2::startx="<0>" sink_2::starty="<360>" sink_2::widths="<640>" sink_2::heights="<360>"  \
sink_2::startx="<640>" sink_2::starty="<360>" sink_2::widths="<640>" sink_2::heights="<360>" ! \
video/x-raw, width=2560, height=1440 ! kmssink driver-name=tidss sync=false

此外、有时当在单个摄像头的图像之间切换时、视频流也可能无法输出。   它需要重新启动才能实现。  您能给我一些建议吗? 我是否需要升级到最新的 SDK 版本? 谢谢!

0:00:04.650278950  2623     0x3c4b19e0 INFO              aggregator gstaggregator.c:612:gst_aggregator_push_mandatory_events:<tiovxisp0> pushing stream start
0:00:04.650461620  2623     0x3c4b19e0 FIXME               basesink gstbasesink.c:3395:gst_base_sink_default_event:<kmssink0> stream-start event without group-id. Consider implementing group-id handling in the upstream elements
0:00:04.650555575  2623     0x3c4b19e0 INFO              aggregator gstaggregator.c:623:gst_aggregator_push_mandatory_events:<tiovxisp0> pushing caps: video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1280, framerate=(fraction)0/1
0:00:04.650583720  2623     0x3c4b19e0 INFO               GST_EVENT gstevent.c:892:gst_event_new_caps: creating caps event video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1280, framerate=(fraction)0/1
0:00:04.650652660  2623     0x3c4b19e0 INFO           basetransform gstbasetransform.c:1326:gst_base_transform_setcaps:<capsfilter1> reuse caps
0:00:04.650675530  2623     0x3c4b19e0 INFO               GST_EVENT gstevent.c:892:gst_event_new_caps: creating caps event video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1280, framerate=(fraction)0/1
0:00:04.650810830  2623     0x3c4b19e0 INFO                tiovxisp gsttiovxisp.c:1122:gst_tiovx_isp_init_module:<tiovxisp0> Input parameters:
        Width: 1920
        Height: 1280
        Num exposures: 1
        Lines interleaved: 0
        Format pixel container: 0x101000
        Format MSB: 11
        Meta height before: 0
        Meta height after: 0
0:00:04.650847170  2623     0x3c4b19e0 INFO                tiovxisp gsttiovxisp.c:1214:gst_tiovx_isp_init_module:<tiovxisp0> Output parameters:
        Width: 1920
        Height: 1280

0:00:04.650861850  2623     0x3c4b19e0 INFO                tiovxisp gsttiovxisp.c:1223:gst_tiovx_isp_init_module:<tiovxisp0> Initializing ISP object
0:00:04.652112625  2623     0x3c4b19e0 INFO                tiovxisp gsttiovxisp.c:1285:gst_tiovx_isp_init_module:<tiovxisp0:sink_0> TI 2A parameters:
        Sensor DCC ID: 233
        Sensor Image Format: 0
        Sensor Image Phase: 0
        Sensor AWB Mode: 0
        Sensor AE Mode: 0
        Sensor AWB number of skipped frames: 0
        Sensor AE number of skipped frames: 0

IttCtrl_registerHandler: command echo registered at location 0
IttCtrl_registerHandler: command iss_read_2a_params registered at location 1
IttCtrl_registerHandler: command iss_write_2a_params registered at location 2
IttCtrl_registerHandler: command iss_raw_save registered at location 3
IttCtrl_registerHandler: command iss_yuv_save registered at location 4
IttCtrl_registerHandler: command iss_read_sensor_reg registered at location 5
IttCtrl_registerHandler: command iss_write_sensor_reg registered at location 6
IttCtrl_registerHandler: command dev_ctrl registered at location 7
IttCtrl_registerHandler: command iss_send_dcc_file registered at location 8
 NETWORK: Opened at IP Addr = 0.0.0.0, socket port=5000!!!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    您是否配置了 media-ctl 管道? 请共享的输出 media-ctl -p 以确认。 配置好传感器后、您能否尝试运行以下 GStreamer 流水线?

    gst-launch-1.0 -v \
    v4l2src device=/dev/video-ox03c10-cam0 io-mode=5 ! video/x-bayer, width=1920, height=1280, framerate=60/1, format=bggr12 ! queue leaky=2 ! tiovxisp sink_0::device=/dev/v4l-ox03c10-subdev0 sensor-name=SENSOR_SONY_OX03C10_UB953_D3 dcc-isp-file=/opt/imaging/ox03c10/wdr/dcc_viss_wdr.bin sink_0::dcc-2a-file=/opt/imaging/ox03c10/wdr/dcc_2a_wdr.bin format-msb=11 sink_0::pool-size=8 src::pool-size=8 ! video/x-raw, format=NV12, width=1920, height=1280 ! queue ! mosaic.sink_0 \
    v4l2src device=/dev/video-ox03c10-cam1 io-mode=5 ! video/x-bayer, width=1920, height=1280, framerate=60/1, format=bggr12 ! queue leaky=2 ! tiovxisp sink_0::device=/dev/v4l-ox03c10-subdev1 sensor-name=SENSOR_SONY_OX03C10_UB953_D3 dcc-isp-file=/opt/imaging/ox03c10/wdr/dcc_viss_wdr.bin sink_0::dcc-2a-file=/opt/imaging/ox03c10/wdr/dcc_2a_wdr.bin format-msb=11 sink_0::pool-size=8 src::pool-size=8 ! video/x-raw, format=NV12, width=1920, height=1280 ! queue ! mosaic.sink_1 \
    v4l2src device=/dev/video-ox03c10-cam2 io-mode=5 ! video/x-bayer, width=1920, height=1280, framerate=60/1, format=bggr12 ! queue leaky=2 ! tiovxisp sink_0::device=/dev/v4l-ox03c10-subdev2 sensor-name=SENSOR_SONY_OX03C10_UB953_D3 dcc-isp-file=/opt/imaging/ox03c10/wdr/dcc_viss_wdr.bin sink_0::dcc-2a-file=/opt/imaging/ox03c10/wdr/dcc_2a_wdr.bin format-msb=11 sink_0::pool-size=8 src::pool-size=8 ! video/x-raw, format=NV12, width=1920, height=1280 ! queue ! mosaic.sink_2 \
    v4l2src device=/dev/video-ox03c10-cam3 io-mode=5 ! video/x-bayer, width=1920, height=1280, framerate=60/1, format=bggr12 ! queue leaky=2 ! tiovxisp sink_0::device=/dev/v4l-ox03c10-subdev3 sensor-name=SENSOR_SONY_OX03C10_UB953_D3 dcc-isp-file=/opt/imaging/ox03c10/wdr/dcc_viss_wdr.bin sink_0::dcc-2a-file=/opt/imaging/ox03c10/wdr/dcc_2a_wdr.bin format-msb=11 sink_0::pool-size=8 src::pool-size=8 ! video/x-raw, format=NV12, width=1920, height=1280 ! queue ! mosaic.sink_3 \
    tiovxmosaic name=mosaic \
    sink_0::startx="<0>" sink_0::starty="<0>" sink_0::widths="<640>" sink_0::heights="<360>" \
    sink_1::startx="<640>" sink_1::starty="<0>" sink_1::widths="<640>" sink_1::heights="<360>" \
    sink_2::startx="<0>" sink_2::starty="<360>" sink_2::widths="<640>" sink_2::heights="<360>"  \
    sink_3::startx="<640>" sink_3::starty="<360>" sink_3::widths="<640>" sink_3::heights="<360>" ! \
    video/x-raw, width=2560, height=1440 ! kmssink driver-name=tidss sync=false

    谢谢您、

    法比亚纳

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    您可以尝试以下操作吗?

    gst-launch-1.0 -v \
    v4l2src device=/dev/video18 io-mode=5 ! video/x-bayer, width=1920, height=1280, framerate=60/1, format=bggr12 ! queue leaky=2 ! tiovxisp sink_0::device=/dev/v4l-subdev10 sensor-name=SENSOR_SONY_OX03C10_UB953_D3 dcc-isp-file=/opt/imaging/ox03c10/wdr/dcc_viss_wdr.bin sink_0::dcc-2a-file=/opt/imaging/ox03c10/wdr/dcc_2a_wdr.bin format-msb=11 sink_0::pool-size=8 src::pool-size=8 ! video/x-raw, format=NV12, width=1920, height=1280 ! queue ! mosaic.sink_0 \
    v4l2src device=/dev/video19 io-mode=5 ! video/x-bayer, width=1920, height=1280, framerate=60/1, format=bggr12 ! queue leaky=2 ! tiovxisp sink_0::device=/dev/v4l-subdev11 sensor-name=SENSOR_SONY_OX03C10_UB953_D3 dcc-isp-file=/opt/imaging/ox03c10/wdr/dcc_viss_wdr.bin sink_0::dcc-2a-file=/opt/imaging/ox03c10/wdr/dcc_2a_wdr.bin format-msb=11 sink_0::pool-size=8 src::pool-size=8 ! video/x-raw, format=NV12, width=1920, height=1280 ! queue ! mosaic.sink_1 \
    v4l2src device=/dev/video20 io-mode=5 ! video/x-bayer, width=1920, height=1280, framerate=60/1, format=bggr12 ! queue leaky=2 ! tiovxisp sink_0::device=/dev/v4l-subdev12 sensor-name=SENSOR_SONY_OX03C10_UB953_D3 dcc-isp-file=/opt/imaging/ox03c10/wdr/dcc_viss_wdr.bin sink_0::dcc-2a-file=/opt/imaging/ox03c10/wdr/dcc_2a_wdr.bin format-msb=11 sink_0::pool-size=8 src::pool-size=8 ! video/x-raw, format=NV12, width=1920, height=1280 ! queue ! mosaic.sink_2 \
    v4l2src device=/dev/video21 io-mode=5 ! video/x-bayer, width=1920, height=1280, framerate=60/1, format=bggr12 ! queue leaky=2 ! tiovxisp sink_0::device=/dev/v4l-subdev13 sensor-name=SENSOR_SONY_OX03C10_UB953_D3 dcc-isp-file=/opt/imaging/ox03c10/wdr/dcc_viss_wdr.bin sink_0::dcc-2a-file=/opt/imaging/ox03c10/wdr/dcc_2a_wdr.bin format-msb=11 sink_0::pool-size=8 src::pool-size=8 ! video/x-raw, format=NV12, width=1920, height=1280 ! queue ! mosaic.sink_3 \
    tiovxmosaic name=mosaic \
    sink_0::startx="<0>" sink_0::starty="<0>" sink_0::widths="<640>" sink_0::heights="<360>" \
    sink_1::startx="<640>" sink_1::starty="<0>" sink_1::widths="<640>" sink_1::heights="<360>" \
    sink_2::startx="<0>" sink_2::starty="<360>" sink_2::widths="<640>" sink_2::heights="<360>"  \
    sink_3::startx="<640>" sink_3::starty="<360>" sink_3::widths="<640>" sink_3::heights="<360>" ! \
    video/x-raw, width=2560, height=1440 ! kmssink driver-name=tidss sync=false

    谢谢您、

    法比亚纳

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    这不是视频18到21、而是视频19到22。  所以我用视频19到22来捕捉视频流,但之前的错误仍然发生。  
    很抱歉再麻烦您了。 请帮我检查一下。
    ds90ub960 5-003d: rx2 CSI error: 0xc
    [  297.330189] ds90ub960 5-003d: rx2 CSI checksum error
    [  297.335156] ds90ub960 5-003d: rx2 CSI length error
    [  297.868155] ds90ub960 5-003d: rx0 buffer error
    [  297.872596] ds90ub960 5-003d: rx0 CSI error: 0xc
    [  297.877205] ds90ub960 5-003d: rx0 CSI checksum error
    [  297.882163] ds90ub960 5-003d: rx0 CSI length error
    [  297.887554] ds90ub960 5-003d: rx1 buffer error
    [  297.892584] ds90ub960 5-003d: rx2 buffer error
    [  297.897616] ds90ub960 5-003d: rx3 buffer error
    
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ying:

    Fabiana 目前已到场、因此我将尝试填写。

    为了缩小问题范围、是否可以 使用两个摄像头运行实验?  

    如果两个摄像头出现问题、请共享使用的 GStreamer 流水线以及  运行 GStreamer 流水线生成的完整日志?

    此致、

    Takuma

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ying:

    感谢您共享日志、感谢您指定 SDK 和 SDK 版本。  

    我能否澄清您的陈述并解释日志?

    1. 由于两个摄像头流水线有时会输出视频流、这是否 意味着 最终启动的所有流水线都冻结? 或者是否有一些时候冻结 永远不会发生、流水线运行没有问题?
    2. 是否是同一运行的前两个日志? 这意味着在0:00:00.3秒内观察到 CSI 错误并且流水线冻结?

    我正在尝试确定 此 问题看起来是 摄像头的初始化问题、还是摄像头输入流水线内某个位置缺少带宽等运行时问题。 到目前为止,我更倾向于初始化问题,因为你的原始文章也提到了问题,只见一个摄像头。

    此致、

    Takuma

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    1. 使用单个摄像头时、连续使用一个器件节点来获取视频流没有问题。 但是、如果切换到另一个设备节点以获得不同的视频流、则设备有时可能会冻结并需要重新启动。   
    2. 是前两个日志  不会  进行的。  这些是两个单独运行的日志。  如果这是器件初始化问题、如何进行检查? 感谢您的帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ying:

     如果是设备初始化问题、我应该如何检查它?

    如果在第0帧或第1帧启动流水线时发生问题、或者根本无法启动流水线、那么我会怀疑初始化有问题。

    前两个日志是  不会  进行的。  [/报价]

    那么、我能否得到有关获取这些日志时发生的情况的说明? 例如、第一个记录在流水线运行时打印出来的日志是否持续无问题? 第二个是发生冻结时的示例日志?

    使用单个摄像头时、连续使用一个设备节点来获取视频流没有问题。 但是、如果切换到另一个设备节点以获得不同的视频流、则设备有时可能会冻结并需要重新启动。   [/报价]

    那么、这听起来更像是流水线取消初始化的问题。 当视频流停止并再次使用相同的视频流/设备节点重新启动时、是否出现问题?

    此致、

    Takuma

    [/quote]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    日志大致是上面提到的日志。
    那么这听起来更像是流水线取消初始化的问题。 当视频流停止并再次使用相同的视频流/设备节点重新启动时、是否出现问题?
    基本上不是。
     谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Yang:

    我的理解是否正确、即使在流水线没有问题的情况下、也会打印一些与 I2C/CSI 相关的警告/错误消息?

    具体而言、当流水线工作时、将打印以下行?

    错误:无法在/dev/i2c-9打开 i2c 总线
    警告:初始化 i2c 总线失败。 寄存器读/写将不起作用!!![345.228723] ds90ub960 5-003d:rx0 CSI 错误:0xc

    [引述 userid="62991" url="~/support/processors-group/processors/f/processors-forum/1510898/tda4vm-the-splicing-display-of-the-images-from-the-four-way-cameras-failed/5822675 #5822675"]
    基本上不是。
    [/报价]

    您能否澄清一下"使用同一设备节点停止和重新启动视频流时基本上没有出现问题"、或者"基本上否、我的假设是错误的、在使用同一设备节点停止和重新启动视频流时出现问题"。

    此致、

    Takuma

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我的理解是否正确:即使在流水线没有问题的情况下、也会打印一些与 I2C/CSI 相关的警告/错误消息?

    是的、它每次都会出现。

    您能否澄清"在使用相同设备节点停止和重新启动视频流时基本上看不到任何问题"或"基本上不会、我的假设是错误的、在使用相同设备节点停止和重新启动视频流时会看到该问题"。

    使用同一器件节点持续停止和重新启动视频流时没有问题。 启动、如果另一个设备节点的数据流 μ A (启动)卡在中间位置、则前一个设备节点也将无法启动视频流。

    谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ying:

    我懂了。 这听起来在流水线停止时没有正确清理。 还有点与在运行时查看 I2C 错误消息有关。

    您提到使用了9.1 SDK 版本、但您能否看到是否可以在最新的10.1 SDK 上重现此问题?

    同时、我将尝试看看能否在9.1 SDK 上重现问题。

    此致、

    Takuma

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的  Takuma:

    好的、请帮助我解决这个问题。 谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ying:

    您能否共享正在使用的 dtso 文件、以及设置为覆盖设备树的 uEnv.txt 环境变量?

    此致、

    Takuma

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    这是我的 uEnv.txt 和 k3-fpdlink-ox03c10-rcm-0-0.dtso。

    root@j721e-evm:/opt/edgeai-gst-apps# cat /run/media/BOOT-mmcblk1p1/uEnv.txt
    # This uEnv.txt file can contain additional environment settings that you
    # want to set in U-Boot at boot time.  This can be simple variables such
    # as the serverip or custom variables.  The format of this file is:
    #    variable=value
    # NOTE: This file will be evaluated after the bootcmd is run and the
    #       bootcmd must be set to load this file if it exists (this is the
    #       default on all newer U-Boot images.  This also means that some
    #       variables such as bootdelay cannot be changed by this file since
    #       it is not evaluated until the bootcmd is run.
    psdk_setup_file=.psdk_setup
    check_psdk_setup=load mmc 1:1 ${loadaddr} ${psdk_setup_file}
    
    # Reset to the default environment
    do_psdk_setup=env default -f -a; saveenv
    
    # If not done previously, then reset to the default environment and indicate this by writing a file
    # Also update the Linux hostname based on board_name
    uenvcmd=if run check_psdk_setup; then echo "Already setup."; else run do_psdk_setup; mw.b ${loadaddr} 0 1; fatwrite mmc 1:1 ${loadaddr} .psdk_setup 1; reset; fi; if test "$board_name" = "j721e-sk"; then ; setenv args_all $args_all systemd.hostname=tda4vm-sk ; fi; if test ${boot_fit} -eq 1; then  setenv name_overlays $name_overlays_fit; fi;
    
    # Setting the right U-Boot environment variables
    dorprocboot=1
    name_overlays=ti/k3-j721e-edgeai-apps.dtbo ti/k3-j721e-evm-fusion.dtbo ti/k3-fpdlink-ox03c10-rcm-0-0.dtbo ti/k3-fpdlink-ox03c10-rcm-0-1.dtbo ti/k3-fpdlink-ox03c10-rcm-0-2.dtbo ti/k3-fpdlink-ox03c10-rcm-0-3.dtbo
    # Name overlays when booting from fit image
    name_overlays_fit=conf-ti_k3-j721e-edgeai-apps.dtbo
    
    // SPDX-License-Identifier: GPL-2.0
    /*
     * IMX390 FPD-Link 3 Camera Module
     * www.d3engineering.co/.../
     *
     * Copyright (c) 2023 Texas Instruments Incorporated - http://www.ti.com/
     */
    
    /dts-v1/;
    /plugin/;
    
    #include <dt-bindings/gpio/gpio.h>
    
    &ds90ub960_0_ports {
    	#address-cells = <1>;
    	#size-cells = <0>;
    
    	/* FPDLink RX 0 */
    	port@0 {
    		reg = <0>;
    
    		ub960_fpd3_1_in: endpoint {
    			remote-endpoint = <&ub953_1_out>;
    		};
    	};
    };
    
    &ds90ub960_0_links {
    	#address-cells = <1>;
    	#size-cells = <0>;
    
    	link@0 {
    		reg = <0>;
    		i2c-alias = <0x44>;
    
    		ti,rx-mode = <3>;
    
    		serializer: serializer {
    			compatible = "ti,ds90ub953-q1";
    			gpio-controller;
    			#gpio-cells = <2>;
    
    			#clock-cells = <0>;
    
    			ports {
    				#address-cells = <1>;
    				#size-cells = <0>;
    
    				port@0 {
    					reg = <0>;
    					ub953_1_in: endpoint {
    						data-lanes = <1 2 3 4>;
    						remote-endpoint = <&sensor_1_out>;
    					};
    				};
    
    				port@1 {
    					reg = <1>;
    
    					ub953_1_out: endpoint {
    						remote-endpoint = <&ub960_fpd3_1_in>;
    					};
    				};
    			};
    
    			i2c {
    				#address-cells = <1>;
    				#size-cells = <0>;
    
    				sensor@36 {
    				    compatible = "ovti,ox03c10";
    					reg = <0x36>;
    
    					clocks = <&serializer>;
    					clock-names = "inck";
    					assigned-clocks = <&serializer>;
    					assigned-clock-rates = <27000000>;
    
    					port {
    						sensor_1_out: endpoint {
    							remote-endpoint = <&ub953_1_in>;
    						};
    					};
    				};
    			};
    		};
    	};
    };
    

    该图显示了 k3-fpdlink-ox03c10-rcm-0-0.dtso 和 k3-fpdlink-ox03c10-rcm-0-1.dtso 之间的差异。 其他 dtso 文件也只有这两个差异。

    感谢你的帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Takuma、

    我使用 SDK-10-01版本进行了测试、发现问题未得到解决。 即使我使用 imx390的驱动程序框架并且只修改了寄存器配置表、也会出现同样的现象。  我是否应该检查960的驱动程序代码? 谢谢!

    ds90ub960 4-003d: rx0 buffer error
    [  111.020597] ds90ub960 4-003d: rx1 buffer error
    [  111.025646] ds90ub960 4-003d: rx2 buffer error
    [  111.030706] ds90ub960 4-003d: rx3 buffer error

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ying:

    感谢您分享 uEnv.txt 和 dtso。 它看起来与我们 SDK 中的 imx390 DTS 没有太大不同、因此看到这种行为差异有点奇怪。

    另一个想法是您可以研究、我记得我的一位同事在一次启用多个8MP 摄像头进行流式传输时遇到了一些问题。 他创建了一个常见问题解答,他的发现: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1476091/faq-am6x-how-do-i-fix-stream-fifo-overflow-errors-in-the-csi2rx-linux-driver-with-num_pixels

    您可以尝试遵循他的常见问题解答、看看您是否在寄存器中看到了类似的内容、以防您观察到的问题是相关的。 错误日志和故障方式似乎有所不同、但我确实看到了相似之处、因为该问题仅发生在多个摄像头上、并且与缓冲区相关。

    此致、

    Takuma

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ying:

    如果此问题仍然存在、您是否可以尝试以下3个实验:

    1. 一个全新的引导
      1. 运行"gst-launch-1.0 -v \
        v4l2src device=/dev/video-ox03c10-cam0! 视频/x-Bayer、宽度=1920、高度=1280、帧速率=60/1、格式=bggr12! 队列泄漏=2! fakesink"
      2. 使用 CTRL + C 停止
      3. 运行"gst-launch-1.0 -v \
        v4l2src device=/dev/video-ox03c10-cam1! 视频/x-Bayer、宽度=1920、高度=1280、帧速率=60/1、格式=bggr12! 队列泄漏=2! fakesink"
    2. 引导加载程序
      1. 运行"gst-launch-1.0 -v \
        v4l2src device=/dev/video-ox03c10-cam0 num-buffers=600! 视频/x-Bayer、宽度=1920、高度=1280、帧速率=60/1、格式=bggr12! 队列泄漏=2! fakesink"
      2. 等待10秒左右后自动停止
      3. 运行"gst-launch-1.0 -v \
        v4l2src device=/dev/video-ox03c10-cam1 num-buffers=600 ! 视频/x-Bayer、宽度=1920、高度=1280、帧速率=60/1、格式=bggr12! 队列泄漏=2! fakesink"
    3. 引导加载程序
      1. 运行"gst-launch-1.0 -v \
        v4l2src device=/dev/video-ox03c10-cam0 num-buffers=600! 视频/x-Bayer、宽度=1920、高度=1280、帧速率=60/1、格式=bggr12! 队列泄漏=2! fakesink & v4l2src device=/dev/video-ox03c10-cam1 num-buffers=600! 视频/x-Bayer、宽度=1920、高度=1280、帧速率=60/1、格式=bggr12! 队列泄漏=2! fakesink & v4l2src device=/dev/video-ox03c10-cam2 num-buffers=600! 视频/x-Bayer、宽度=1920、高度=1280、帧速率=60/1、格式=bggr12! 队列泄漏=2! fakesink"

    本质上、所有这些实验都试图通过使用假链接来简化流水线、看看我们是否可以缩小问题范围。 第一个也是第二个实验是查看 CTRL+C 和 EOS 信号之间的行为是否存在差异、以查看这是否会影响在重新启动之前无法使用其他摄像头启动流媒体的问题。 第三个实验是使用 fakesink 并行运行3个摄像头输入流水线、而不是4个流水线。 我们可以将此示例扩展为2个摄像头和4个摄像头、以查看 CSI 错误是否由于 流量增加而导致。

    此致、

    Takuma