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:tiovx GST 插件运行失败、并显示错误 MEM:ERROR:/dev/remoteproc0 open failed!!

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1501026/tda4vm-tiovx-gst-plugin-fails-to-run-with-the-error-mem-error-dev-remoteproc0-open-failed

器件型号:TDA4VM

工具/软件:

 大家好、我是 WISeautomotive 的 Sejin Kang、我们目前正在将 处理器 SDK Linux SK TDA4VM 从09.00.00.08更新到10.00.00.04

以下是我们在构建路径的 local.conf 中放置的 SDK、配置文件和受支持的 Yocto 构建机器的说明

Processor SDK Linux SK TDA4VM:10_01_00版本

processor-sdk-analytics-10.01.00-config.txt

j721e-EVM

 这个问题很简单、使用较新版本的 tisdk-edegeai-image 时、它无法运行

gst-launch-1.0 \
v4l2src device=/dev/video-hdx_mcnex-cam2 io-mod=dmabuf ! \
video/x-raw、width=1280、height=720! \
tiovxdlcolorconvert in-pool-size=8 out-pool-size=8! video/x-raw、format=NV12! \
排队! waylandsink

 带有的错误消息的流水线  

 156.094436 s:内存:错误:/dev/remoteproc0打开失败!!
156.094461 s:内存:错误:大小为1843200字节的内存同位、状态为-1!!
156.094517 s:DDR_SHARED_MEM:Alloc's:0 alloc's of 0 bytes
156.094525 s:DDR_SHARED_MEM:free's:0 free's of 0 bytes
156.094530 s:DDR_SHARED_MEM:open 的:0个0字节的分配
[37]无法解析请求:未能解析请求:未能解析请求:未能解析请求:未能解析请求:未能解析请求:未能解析请求。

-------------------------------------------------------------------------------------------------------------------------------------

 以下是一些上下文。 我们基于6.1.48版本实施了自己的自定义 Linux 内核、因此、很自然、  

 我们放  

 TI_Preferred_BSP??="ti-6_1"  

 在 ti-bsp.inc 上、而不是 ti-6_6、它是原始值和设置。 同样、Linux 内核、器件树 Blob 和驱动程序保持完全相同。

所有用户空间库和可能的固件都随 BSP 一起更新。 因为它无法运行 tiovxdlcolorconvert 插件
-这是有意义的 ,因为 remoteproc0与 DSP 连接-,我检查 dmesg 通过

Root@j721e-EVM:/opt/edgeai-gst-apps # dmesg | grep 4d80800000.dsp
[ 4.970824] k3-DSP-rproc 4d80800000.dsp:分配了保留的存储器节点 vision-apps-C66-dma-memory@a9000000
[ 4.989694] k3-DSP-rproc 4d80800000.dsp:配置的 DSP 用于仅 IPC 模式
[ 4.997808] remoteproc remoteproc0:4d80800000.dsp 可用
[ 5.009085] remoteproc remoteproc0:连接到4d80800000.dsp
[ 5.022470] k3-DSP-rproc 4d808000.dsp:在仅 IPC 模式下初始化 DSP
[ 5.247190] remoteproc remoteproc0:远程处理器4d80800000.dsp 现已连接

工作映像和映像都无法正常工作、输出完全相同的 dmesg。

关于 DSP 固件、我确认两个映像 在/lib/firmware 上都具有"j7-C66_0-fw"、已正确加载(再次通过上面的 dmesg 确认)

以下是两个映像的器件树叠加层:

#设置正确的 U-Boot 环境变量
dorprocboot=1
name_coverles=k3-j721e-edgeai-apps.dtbo k3-j721e-sk-main-eth.dtbo k3-j721e-sk-fusion_dwise.dtbo k3-fpdlink-imx390-rcm-0.dtbo k3-fpdlink-im

如您所见、  这两个映像中都包含了 k3-j721e-edgeai-apps.dtbo。
其他是我们使用的摄像头外设、与原始外设略有不同、但这里显然不是问题-

我认为较新版本的 tiovx 以某种方式打开/dev/remoteproc0的文件描述符、但使用我们使用的6.1.48内核时、  我们的根文件系统上没有名为/dev/remoteproc0的器件跟踪。

同样、我们在两个 BSP 上使用相同的内核、因此  /dev/remoteproc0也不在工作组合上。

这是一个重要的问题。

1. TIOVX 内存 API/tiovxdlcolorconvert 插件似乎没有尝试打开 /dev/remoteproc0 -因为我可以将该插件与较旧的 BSP 一起使用-

为什么要将其添加到代码中?

2.我应该更新 Linux 内核驱动程序的哪个部分才能成功使用该功能?

 

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

    您好、

    您能解释一下所使用的传感器吗? 根据启用的设备树覆盖图、您似乎已连接 imx390坚固型摄像头模块。 您将它们连接到哪个融合板?

    谢谢您、

    法比亚纳

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

    实际上、我们没有使用 imx390传感器。
    包括串行器和传感器在内的摄像头模块由我们的客户提供、但他们尚未披露适用情况  
    告知我们 I2C 别名地址。  

    我们实现了针对解串器、串行器和传感器的定制驱动程序。 这些自定义驱动程序的工作方式
    它们出现在媒体设备拓扑上、与摄像头模块与 ub960解串器的实际 imx390/ds90ub953组合完全相同、但如果驱动程序内部工作、它们实际上并不相互通信。 它们只是出现在媒体设备拓扑上、因此我们可以调用 ioctl 来进行路由和设置格式。

    另一点值得一提的是,相机不需要拜耳格式转换。  

    同样、在我们使用 SDK 9.00时、所有这些器件都可以正常工作、相关的流水线可以正常工作

    对于您的信息,不需要任何 v4l2src 的流水线也不起作用,打印出完全相同的错误消息。

    gst-launch-1.0 \
    videotestsrc! \
    video/x-raw、width=1280、height=720、format=rgb! \
    tiovxdlcolorconvert in-pool-size=8 out-pool-size=8! video/x-raw、format=NV12! \
    排队! waylandsink

    我将复制并粘贴我上面写的问题。

    我认为较新版本的 tiovx 以某种方式打开/dev/remoteproc0的文件描述符、但使用我们使用的6.1.48内核时、  我们的根文件系统上没有名为/dev/remoteproc0的器件跟踪。

    同样、我们在两个 BSP 上使用相同的内核、因此  /dev/remoteproc0也不在工作组合上。

    这是一个重要的问题。

    1. TIOVX 内存 API/tiovxdlcolorconvert 插件似乎没有尝试打开 /dev/remoteproc0 -因为我可以将该插件与较旧的 BSP 一起使用-

    为什么要将其添加到代码中?

    2.我应该更新 Linux 内核驱动程序的哪个部分才能成功使用该功能?


     

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

    仅供参考、刚刚确认了使用内核版本6.6时、  
    (分支?="ti-linux-6.6.y")
    开始工作。  问题是我们有很多自定义驱动程序使用之前的-6.1.48-版本的内核和实现
    更新/移植整个事情应该是最后的手段.

    所以、问题仍然存在。 为什么它能与6.6一起使用、而不能与6.1.48一起使用?
    区别是什么?为了将最新版本的 tiovx 与6.1.48内核配合使用、我们应该怎么做?

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

    尊敬的 Sejin:

    请允许我有时间在我这边测试一下

    谢谢您、

    法比亚纳

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

    尊敬的 Sejin:

    感谢您对这个问题的耐心。  错误 是由于 SDK 版本之间的 Linux 内核版本不匹配导致的。 SDK 版本10.01.00.04应使用 Linux 内核版本  6.6.44.

    谢谢您、

    法比亚纳