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/DRA756:陆地上的 dmabuftest 失败

Guru**** 2587365 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/585175/linux-dra756-dmabuftest-fail-on-wayland

器件型号:DRA756

工具/软件:Linux

你好。

我正在使用 PSDK 3.02在 Jacinto6上工作。

当我执行 命令进行摄像机预览时、 一分钟后会出现"管道断裂"错误。(在操作的20分钟内崩溃)

运行时间似乎始终相同(通常为10分钟、有时为20分钟)

我只需将 dabuftest.c 的 capture_loop()的"for loop"更改为"while loop"即可删除预览时间限制。

它在 kms 模式下工作正常(dmabuftest -s 32:1920x1200 -d /dev/video1 -c 1280x720@YUV)

我无法判断、此错误来自 wayland 框架或 dmabuftest 应用程序。

您能否 检查一下或 让我了解 这个问题?

错误消息:

testcam.sh
正在打开显示屏...
航迹显示已打开

获得的陆地登记

正在打开 V4L2..
导出的缓冲区 FD = 18

导出的缓冲区 FD = 19

导出的缓冲区 FD = 20

导出的缓冲区 FD = 21

导出的缓冲区 FD = 22

导出的缓冲区 FD = 23

发送请求时出错:管道断裂
/testcam.sh:第1行:21389已中止                (转储内核)./dmabuftest -w 1280x720 -d /dev/video1 -c 1280x720@YUV


命令:
TI 开发指南包含"-pos"选项、但现在似乎不支持
"dmabuftest -w 640x480 --pos 100x400 /dev/video1 -c 1280x720@YUYV"
我在下面使用了命令

dmabuftest -w 640x480 -d /dev/video1 -c 1280x720@YUYV

修改:
diff --git a/dmabuftest.c b/dmabuftest.c
索引 be9dd.eb0bb79 100644
-- a/dmabuftest.c
++ b/dmabuftest.c
@@-76、7 +76、7 @@ CAPTURE_LOOP (void * arg)
               返回空;
       }

-      对于(i = 1;i < CNT;i++){
+      while (1){

               Capt = v4l2_dqbuf (v4l2);
               RET = disp_post vid_buffer (disp、capt、

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

    我已将您的问题转发给图形专家。

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

    你好 Yordan

    您能否检查或更新此问题? 我正在等待应答。

    此致、

    Yangwoo

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

    您好、杨宇、

    我正在尝试重现此问题、但到目前为止、我无法重新创建此问题。

    仍在尝试再次检查场景。

    您能告诉我 testcam.sh 的内容是什么吗?

    我刚刚启动 Weston 并运行 dmabuftest。

    此致

    Karthik

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

    testcam.sh 正在执行以下命令。
    dmabuftest -w 640x480 -d /dev/video1 -c 1280x720@YUYV

    我听到了一个叫“wayland”的人(在 wayland 社区)说,“应该有调度机制。
    例如、如果是 dmaabuftest、它只将事件拖至陆路、而不使用任何调度机制。
    这意味着、如果客户端填充了陆地缓冲区、服务器将断开连接。 问题是什么。

    因此、我尝试使用派单更改了 dmabuftest、但现在似乎没有出现该问题。
    您能否查看并尝试使用 Weston 示例"Weston/client/simple-dmabuf-V4L.c"?
    我认为这可以解决我的问题。

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

    感谢您的反馈。

    只是一个更新、我能够在我的设置上重现此问题、我只需要花费更多的时间。
    将检查您的更新并返回给您有关结果的信息。

    您能否确认问题在您的结尾处没有再次出现?

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

    或者,如果您已解决了实现中的 dmabuftest 问题,则可以提交您的增补程序,我们可以查看并将其集成到 dmabuftest 中。 这绝对是一种可能性。

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

    是的、我的修复程序至少没有在我的一侧复制它。
    要为 omapdrmtest 软件包创建补丁、我需要一些时间、因为我已经从该软件包中提取代码、仅用于 wayland 支持。
    (如您所知,omapdrmtest 支持 kms、kmscube、wayland……)
    如果您想通过我的提交、请给我一些时间。

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

    您好、Karthik。

    我已经检查了 dmabuftest 的修改。

    我无法修复它、因为它已经针对各种函数(支持 kms、kmscube、wayland……)进行了结构化

    我认为 TI 最好修复此代码。

    谢谢你。

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

    是的、我们已经解决了该问题、它很快就会被推送到 omapdrmtest 存储库。
    我们正在进行一些审查和测试、将很快更新此主题。

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

    谢谢您 Karthik。

    今天、我再次读取 display-wayland.c 代码。

    目前、我的解决方案 只是在 post_vid_buffer 函数的 wL_display_flush ()之后添加 wL_display_roundtrip ()。

    客户端在  请求下一个请求之前需要等待处理服务器处理挂起的请求。

    @@-234、6 +234、7 @@ post_vid_buffer (struct display * disp、struct buf、
           wl_surface_attach (disp_wl->surface、buf_wl->wl_buf、0、0);
           wl_surface_commit (disp_wl->surface);
           wl_display_flush (disp_wl->display);
    +      wl_display_roundtrip (disp_wl->display);

    此致

    Yangwoo