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.

[参考译文] SK-AM69:Yocto scarthgap 构建上的 DRM 错误。

Guru**** 2477065 points
Other Parts Discussed in Thread: SK-AM69

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1442210/sk-am69-errors-with-drm-on-yocto-scarthgap-build

器件型号:SK-AM69

工具与软件:

您好!

我一直在尝试使用 Yocto (scarthgap)和 meta-ti-BSP 层、让我们的图形应用程序(使用 SDL 和 GLES)在 SK-AM69评估板上运行。 我正在使用 Weston、我已经能够启动、但在尝试使用 SDL 创建窗口时遇到问题、遇到以下错误:

wl_drm@19: error 0: authenticate failed

为了测试这是否是我们的程序的问题,我试图让 kmscube 程序运行,并得到以下 DRM 错误:

no connected connector!

failed to initialize legacy DRM

我尝试运行 kmscube 的 build/conf/local.conf 看起来像:

IMAGE_INSTALL:append = " ti-img-rogue-umlibs ti-img-rogue-driver"                                                                                                                                                                                                               
PREFERRED_PROVIDER_virtual/gpudriver = "ti-img-rogue-driver"                                                                                                                                                                                                                    
                                                                                                                                                                                                                                                                                
DISTRO_FEATURES:append = " systemd pam"                                                                                                                                                                                                                                         
INIT_MANAGER = "systemd"                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                
DISTRO_FEATURES:remove = " vulkan"                                                                                                                                                                                                                                              
DISTRO_FEATURES:append = " opengl"                                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                                
IMAGE_INSTALL:append = " libdrm"                                                                                                                                                                                                                                                
                                                                                                                                                                                                                                                                                
IMAGE_INSTALL:append = " kmscube"                                                                                                                                                                                                                                               
                                                                                                                                                                                                                                                                                
PACKAGECONFIG:append:pn-libsdl2 = " gles2 kmsdrm arm-neon"                                                                                                                                                                                                                      
PACKAGECONFIG:append:pn-weston = " kms egl wayland"                                                                                                                                                                                                                             
PACKAGECONFIG:append:pn-mesa = " gbm egl"                                                                                                                                                                                                                                       
                                                                                                                                                                                                                                                                                
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "kernel-modules"                                                                                                                                                                                                                         
MACHINE ??= "am69-sk"   

我只是想检查一下我的配置中是否有与主板相关的任何错误、是否遗漏了任何必要的安装到映像上、或者这是否是驱动程序的问题?

谢谢

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

    您好!

     

    在一个研讨会上指定的专家。 敬请期待响应的延迟。

     

    此致、

    Sudheer

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

    尊敬的 Ben:

    是否已插入显示屏? 如果是、您可以尝试运行 kmsprint 并向我发送输出吗?

    您需要将 Kms++软件包添加到您的 Yocto 映像中,或者您可以从源代码下载并构建它,使用此库: https://github.com/tomba/kmsxx.git 

    此致!
    Jared

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

    尊敬的 Jared:

    我已经向图像添加了 kms++、运行时、我得到以下输出:

    Connector 0 (40) DP-1 (connected)
      Encoder 0 (39) NONE
        Crtc 0 (38) 1920x1080@60.00 148.500 1920/88/44/148/+ 1080/4/5/36/+ 60 (60.00) 0x5 0x48
          Plane 0 (31) fb-id: 67 (crtcs: 0 1) 0,0 1920x1080 -> 0,0 1920x1080 (AR12 AB12 RA12 RG16 BG16 AR15 AB15 AR24 AB24 RA24 BA24 RG24 BG24 AR30 AB30 XR12 XB12 RX12 XR15 XB15 XR24 XB24 RX24 BX24 XR30 XB30 YUYV UYVY NV12)
            FB 67 1920x1080
    Connector 1 (50) HDMI-A-1 (disconnected)
      Encoder 1 (49) NONE
    

    这看起来与 SDK 页面上作为示例给出的输出几乎相同? 我还可以在连接的显示端口上运行 kmstest、

    谢谢

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

    尊敬的 Ben:

    我只想验证显示器是否正在枚举并且工作正常。

    对我来说、问题似乎在 SDL 和 Wayland 之间的互动中存在、但您是否说 kmscube 也不起作用?

    您是否可以尝试运行:

    kmscube -D /dev/dri/card0

    此致!
    Jared

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

    尊敬的 Jared:

    这在我使用/dev/dri/card1而不是/dev/dri/card0.时可以正常工作 我做了更多的测试,问题似乎是 EGL? 我尝试过其他不使用 SDL 但确实依赖 EGL 的程序、它们同样失败、错误地调用以初始化 EGL。

    有什么建议吗?

    谢谢!

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

    尊敬的 Ben:

    您是否在 Yocto 构建中包含 mesa-PVR 软件包?

    此致!
    Jared

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

    尊敬的 Jared:

    是的、我在构建中包含 mesa-PVR 软件包。

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

    尊敬的 Ben:

    您是否能够发送包括错误在内的 dmesg 日志?

    此外、您可以使用 TI 发布的映像来尝试应用吗? 例如、tisdk-default-image?

    此致!
    Jared

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

    尊敬的 Jared:

    通过将 SDL 的环境变量 SDL_VIDEODRIVER 设置为 kmsdrm (我不认为它使用 EGL?)、我成功地使我们的程序与图形一起运行。 但是、当使用 SDL_VIDEODRIVER 作为 Wayland 进行测试、并使用 Weston 或其他组合器时、我得到了以下问题:

    Unable to create an EGL window surface (call to eglCreateWindowSurface failed, reporting an error of EGL_BAD_MATCH)

    以及终端中的 EGL_BAD_PARAMETER (0x300c)错误。

    只是想知道你是否有任何关于这个错误的信息,因为我相信 mesa-PVR 提供了 EGL 实现?

    谢谢!

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

    尊敬的 Ben:

    您可以尝试将 pn-mesa 更改为 pn-mesa-PVR 吗?  

    PACKAGECONFIG:append:pn-mesa
    ..
    PACKAGECONFIG:append:pn-mesa-pvr

    您还可以通读  SDK 中的图形编译指南、以了解有关该编译过程以及对器件所做更改的更多信息。

    此致!
    Jared

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

    尊敬的 Jared:

    我已经试过、电路板上的行为没有任何变化。

    此致!

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

    我已经在 pvrdebug 和我的程序上运行 strace、我正在得到 systemcall:

    openat(AT_FDCWD, "powervr.ini", O_RDONLY) = -1 ENOENT (No such file or directory)
    openat(AT_FDCWD, "/etc/powervr.ini", O_RDONLY) = -1 ENOENT (No such file or directory)

    不确定这是否是预期的、因为它不会直接导致任何错误、但如果不是、它是否与我遇到的问题有关?

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

    尊敬的 Ben:

    不需要 powervr.ini 文件。

    你能发送你的 dmesg 和你的 Yocto 食谱吗? 机器配置是否与我们的机器配置相似?

    此致!
    Jared

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

    尊敬的 Jared:

    以下是 dmesg:

    e2e.ti.com/.../8666.dmesg.txt

    我似乎无法在此回复中附加更多文件或代码块、因此我将回复 Yocto 文件。

    对于该机器、我只使用 meta-ti-BSP 中的 AM69-SK 配置。

    谢谢!

    本  

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

    似乎是因为我无法上传扩展名为.conf 或.bb 的文件、因此我已将.txt 添加到这些扩展名中。

    build/conf/local.conf:

    e2e.ti.com/.../6038.local.conf.txt

    发行版配置:

    e2e.ti.com/.../customdistro.conf.txt

    图片配方:

    e2e.ti.com/.../custom_2D00_weston.bb.txt

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

    尊敬的 Ben:

    我会在一个自定义层尝试您的食谱,但粗略地看,不应该把 preferred_provider_virtual/EGL 和 preferred_provider_virtual/libgles2设置为 mesa-PVR ?

     meta-ti/meta-ti-bsp/conf/machine/include/中的 mesa-pvr.inc 包含以下内容:

    PREFERRED_PROVIDER_virtual/mesa ?= "mesa-pvr"
    PREFERRED_PROVIDER_virtual/egl ?= "mesa-pvr"
    PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa-pvr"
    PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa-pvr"
    PREFERRED_PROVIDER_virtual/libgles3 ?= "mesa-pvr"
    PREFERRED_PROVIDER_virtual/libgbm ?= "mesa-pvr"
    PREFERRED_PROVIDER_virtual/libglx ?= "mesa-pvr"
    PREFERRED_PROVIDER_virtual/libgl ?= "mesa-pvr"

    此致!
    Jared

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

    尊敬的 Jared:

    是的、它们看起来确实应该是这样。 我现在删除了这些行、但它不会导致任何位烘任务重新运行、在执行干净和重建时、错误仍然存在。

    如果这会有所帮助,我可以尝试创建一个比我提供的错误更小的示例,因为这些文件有很多不相关的软件包。

    谢谢!

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

    尊敬的 Ben:

    表上登记、 不过、核心映像韦斯顿足够小吗? 最简单的解决方案就是只使用核心映像 Weston 和添加内核模块。

    此致!
    Jared