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.

[参考译文] Linux/TDA2EVM5777:OpenCV VideoCapture RTSP 流

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/712620/linux-tda2evm5777-opencv-videocapture-rtsp-stream

器件型号:TDA2EVM5777

工具/软件:Linux

您好!

我运行 的是 processor_sdk_vision_03_1_00_00 Linux 、我尝试使用在我自己的 C++代码应用程序(不在 Vision SDK 框架内)的 rootfs 中预安装的 OpenCV 库。 在我尝试运行  cv::VideoCapture CAPTURE (rtsp://username:Password@IP_address)时; 在我的 c++代码中、我可以编译而不会出现错误。 在运行可执行文件时、当我尝试打开流时、我会遇到以下错误:


MmRpc_create:错误:打开失败、名称=/dev/rpmsg-dce
./git/libdce.c:416:DCI_IPC_init 错误:失败 eError == DCE_Eok 错误 val -4../git/libdce.c:479:engine_open 错误:失败的 DCI_IPC_init (coreIdx)== DCE_eok 错误 val -4MmRpc_create:错误:打开失败、名称=/dev/rpmsg-dce
./git/libdce.c:416:DCI_IPC_init 错误:失败 eError == DCE_Eok 错误 val -4../git/libdce.c:479:engine_open 错误:失败的 DCI_IPC_init (coreIdx)== DCE_Eok 错误 val -4


我检查了内核、看起来我在内核中启用了 RPMSG:
root@dra7xx-EVM:/tmp# cat config | grep RPMSG
CONFIG_RPMSG=m
CONFIG_RPMSG_RPC=m
CONFIG_RPMSG_PRU=m

  • 是否有办法修复这些错误、以便我可以从 rtsp 流中抓取?
  • 我是否使用正确的 C++ OpenCV 调用从 rtsp 流中抓取?
  • 我是否必须在内核中启用任何内容才能使用 OpenCV 调用?


如果您需要更多信息、请告诉我、并提前感谢您的帮助。  

谢谢、
iFer

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、iFer、
    MmRpc_create:错误:打开失败、名称=/dev/rpmsg-dce
    指示未加载用于多媒体解码/编码的 ipumm 固件。
    能否检查 rootfs 是否具有/lib/firmware/dra7-ipu2-fw.xem4并链接到 dra7-ipu2-fw.xem4.ipumm-fw?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!


    我查看了/lib/firmware 目录、这里是输出:

    root@dra7xx-EVM:~# ls -LF /lib/firmware
    lrwxrwxrwx  1根  根根       6月49日27 00:37 am57xx-pru1_0-FW ->/lib/firmware/pru/PRU_RPMsg_Echo_Interrupt1_0.out
    lrwxrwxrwx  1根  根根       6月49日27 00:37 am57xx-pru1_1-FW ->/lib/firmware/pru/PRU_RPMsg_Echo_Interrupt1_1.out
    lrwxrwxrwx  1根  根根       6月49日27 00:37 am57xx-pru2_0-FW ->/lib/firmware/pru/PRU_RPMsg_Echo_Interrupt2_0.out
    lrwxrwxrwx  1根  根根       6月49日27 00:37 am57xx-pru2_1-FW ->/lib/firmware/pru/PRU_RPMsg_Echo_Interrupt2_1.out
    -rwxr-xr-x 1  根  根   9941039年6月27日00:37 dra7-dsp1-fw-radio.xe66*
    -rw-r--r--  1 root  root 用户   7438272 jun 27 00:37 dra7-dsp1-fw.xe66
    rw-r--r--  1 root  root 用户    889276 Jun 27 00:37 dra7-dsp1-fw.xe66.dspdce-fw
    rw-r--r--  1根  根   21810444 Jun 27 00:37 dra7-dsp1-fw.xe66.OpenCL-monitor
    -rw-r--r--  1 root  root 用户   7438272 jun 27 00:37 dra7-dsp2-fw.xe66
    rw-r--r--  1根  根   21810444 Jun 27 00:37 dra7-dsp2-fw.xe66.OpenCL-monitor
    rw-r--r--  1根  根   根9499744 Jun 27 00:37 dra7-ipu2-fw.xem4
    rw-r--r--  1根  根   根3743108六月27 00:37 dra7-ipu2-fw.xem4.ipumm-fw
    -rw-r--r--  1根  根根    576565六月27 00:37 dra7-ipu2-fw.xem4.map
    rw-r--r--  1  根根根      6月186日27:37 goodix_9271_cfg.bin
    drwxr-xr-x  6根  根      4096 Jun 27 00:37 IPC/
    drwxr-xr-x  2根  根根      4096 Jun 27 00:37 PRU/
    drwxr-xr-x  2根  根根      4096 Jun 27 00:37 ti-connectivity
    drwxr-xr-x  2根  根根      6月27日4096时:37 Tigon /
    rw-r--r--  1  根根根      4002 6月27日00:37 vpdma-1b8.bin  



    您引用的文件确实存在、但它们似乎没有链接。  


    如何从此处继续?

    谢谢!
    iFer
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、iFer、
    请参阅此链接以链接
    processors.wiki.ti.com/index.php
    将多媒体 ipumm 固件动态链接到 IPU2并检查其是否正常工作。

    注意:OpenCV rtsc 捕获不是 VISION-SDK 中经过测试的用例。

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

    您好!

    感谢你的帮助!

    我尝试按照说明通过运行以下命令正确链接固件:


    CD /sys/bus/platform/drivers/omap-rproc
    echo 5502000.IPU >解除绑定
    RM /lib/firmware/dra7-ipu2-fw.xem4
    LN -s /lib/firmware/dra7-ipu2-fw.xem4.ipumm-fw /lib/firmware/dra7-ipu2-fw.xem4
    echo 5502000.IPU > BIND



    我重新启动了 Linux 并仔细检查了链接是否仍然存在、5502000.IPU 仍处于限定范围内。 然后、我尝试重新运行代码以打开 RTSP 流、但它仍然会显示以下错误消息:

    MmRpc_create:错误:打开失败、名称=/dev/rpmsg-dce
    ./git/libdce.c:416:DCI_IPC_init 错误:失败 eError == DCE_Eok 错误 val -4../git/libdce.c:479:engine_open 错误:失败的 DCI_IPC_init (coreIdx)== DCE_eok 错误 val -4MmRpc_create:错误:打开失败、名称=/dev/rpmsg-dce
    ./git/libdce.c:416:DCI_IPC_init 错误:失败 eError == DCE_Eok 错误 val -4../git/libdce.c:479:engine_open 错误:失败的 DCI_IPC_init (coreIdx)== DCE_Eok 错误 val -4




    以下是/lib/firmware 目录中 ls -LF 的输出:

    root@dra7xx-EVM:/lib/firmware ls -LF
    lrwxrwxrwx 1 root root root 6月27日00:37 am57xx-pru1_0-FW ->/lib/firmware/pru/PRU_RPMsg_Echo_Interrupt1_0.out
    lrwxrwxrwx 1 root root root 6月27日00:37 am57xx-pru1_1-fw ->/lib/firmware/pru/PRU_RPMsg_Echo_Interrupt1_1.out
    lrwxrwxrwx 1 root root root 6月27日00:37 am57xx-pru2_0-FW ->/lib/firmware/pru/PRU_RPMsg_Echo_Interrupt2_0.out
    lrwxrwxrwx 1 root root root 6月27日00:37 am57xx-pru2_1-fw ->/lib/firmware/pru/PRU_RPMsg_Echo_Interrupt2_1.out
    -rwxr-xr-x 1根根9941039年6月27日00:37 dra7-dsp1-fw-radio.xe66*
    -rw-r--r-- 1 root root 用户7438272 jun 27 00:37 dra7-dsp1-fw.xe66
    rw-r--r-- 1 root root 用户889276 Jun 27 00:37 dra7-dsp1-fw.xe66.dspdce-fw
    rw-r--r-- 1根根21810444 Jun 27 00:37 dra7-dsp1-fw.xe66.OpenCL-monitor
    -rw-r--r-- 1 root root 用户7438272 jun 27 00:37 dra7-dsp2-fw.xe66
    rw-r--r-- 1根根21810444 Jun 27 00:37 dra7-dsp2-fw.xe66.OpenCL-monitor
    lrwxrwxrwx 1 root root 用户7月26日24日20:19 dra7-ipu2-fw.xem4 -> dra7-ipu2-fw.xem4.ipumm-fw
    rw-r--r-- 1根根根3743108六月27 00:37 dra7-ipu2-fw.xem4.ipumm-fw
    -rw-r--r-- 1根根根576565六月27 00:37 dra7-ipu2-fw.xem4.map
    -rw-r--r-- 1根根根186年6月27日00:37 goodix_9271_cfg.bin
    drwxr-xr-x 6 root 4096 Jun 27 00:37 ipc/
    drwxr-xr-x 2 root 4096 Jun 27 00:37 PRU/
    drwxr-xr-x 2 root 4096 Jun 27 00:37 ti-connectivity/
    drwxr-xr-x 2 root 4096 Jun 27 00:37 Tigon /
    -rw-r--r-- 1 root root 4002 Jun 27 00:37 vpdma-1b8.bin ​​​​​​​



    这是/sys/bus/platform/drivers/omap-rproc 目录中 ls -LF 的输出

    root@dra7xx-EVM:/sys/bus/platform/drivers/omap-rproc ls -LF
    lrwxrwxrwx 1 root root 用户0 7月24日19:50 40800000.dsp ->../../../../devices/platform/44000000.ocp/40800000.dsp
    lrwxrwxrwx 1 root root 用户0 7月24日19:50 41000000.dsp ->../../../../devices/platform/44000000.ocp/41000000.dsp
    lrwxrwxrwx 1 root root 用户0 7月24日19:53 55020000.IPU ->../../../../devices/platform/44000000.ocp/55020000.ipu
    -- w ---- 1根根根4096 Jul 24 19:53 bind
    lrwxrwxrwx 1 root root 用户0 7月24日19:50模块->../../../../module/omap_remoteproc
    -- w ---- 1根根根4096 7月24日19:50事件
    -- w ---- 1根根根4096 Jul 24 19:53解除绑定









    我需要从 IP 摄像机打开 RTSP 流。 我有没有办法这样做? 如果不是、那么我是否可以使用 visionSDK Linux 上已有 OpenCV 库的 C++代码从 IP 摄像机中抓取帧?






    谢谢!
    iFer