工具与软件:
您好!
我正在将基于 Embedian smartct35x (AM335x)的平台升级到 Yocto Kirkstone (processor-sdk-09.01.00-legace-config.txt)、并且我在让 Weston 使用 TI 提供的"用户模式"驱动程序包 ti-SGX-DDK-um 时遇到了一些问题、我看到尝试加载的错误(例如 Weston-EGL):
[destroyed object]: error 7: importing the supplied dmabufs failed The Wayland connection experienced a fatal error: Protocol error
在日志中:
Oct 10 09:36:37 am335x-deltatouch weston[7488]: CreateImageSharedFromDmaBufs: Failed to create buffer for shared image Oct 10 09:36:37 am335x-deltatouch weston[7488]: [09:36:37.528] Error during import, and no known conversion for format AR24 in the renderer Oct 10 09:36:37 am335x-deltatouch weston[7488]: [09:36:37.528] libwayland: error in client communication (pid 7487)
除了需要 EGL 支持的示例之外、所有 Weston 示例似乎都起作用。
"weston-simple-dmabuf-EGL"的输出:
This client was written with the purpose of manually test Weston's dma-buf feedback implementation. See main() description for more details on how to test this. compositor sent main_device event for dma-buf feedback - /dev/dri/renderD128 ├──────target_device for tranche - /dev/dri/renderD128 │ └scanout tranche? no │ ├────────tranche format/modifier pair - format ARGB8888, modifier NONE_INVALID_MODIFIER (0xffffffffffffff) │ ├────────tranche format/modifier pair - format XRGB8888, modifier NONE_INVALID_MODIFIER (0xffffffffffffff) │ └end of tranche └end of dma-buf feedback weston-simple-dmabuf-feedback: ../../../../../../workspace/sources/weston/clients/simple-dmabuf-feedback.c:403: create_fbo_for_buffer: Assertion `buffer->egl_image != EGL_NO_IMAGE_KHR && "error: EGLImageKHR creation failed"' failed. Aborted (core dumped)
我已经尝试了 AM335x-evm.conf 的参考设计、其设置为使用"DESA-PVR"作为提供方、但这里我有一个问题、那就是使用 MACHINE_FEATURE 'SGX'进行编译时不会生成所需的"PVR_DRI.SO"插件、但有一个"SGX_DRI.SO"。 据我所知、mesa-PVR 支持是最近推出的、因此我检查了较旧的配置、例如 Dunfell、他们在那里使用预编译的用户模式二进制包。
因此,我决定改变食谱做同样的,并为 Kirkstone 安装预编译的用户模式二进制文件。
TI-SGX-DDK-um:omap5-SGX-DDK-um-linux
TI-SGX-DDK-km:omap5-SGX-DDK-Linux
Yocto 机器配置设置:
# Graphics providers and variables MACHINE_EXTRA_RDEPENDS += "ti-sgx-ddk-km" DEPENDS:remove = "virtual/libgl" PREFERRED_PROVIDER_virtual/egl = "ti-sgx-ddk-um" PREFERRED_PROVIDER_virtual/libgles1 = "ti-sgx-ddk-um" PREFERRED_PROVIDER_virtual/libgles2 = "ti-sgx-ddk-um" PREFERRED_PROVIDER_virtual/libgbm = "ti-sgx-ddk-um" PREFERRED_PROVIDER_virtual/gpudriver = "ti-sgx-ddk-km"
非常感谢您的任何帮助。
谢谢。