为什么Qt不能初始化我的新硬件上的显示

时间:2014-05-08 17:14:07

标签: linux qt embedded qt5 egl

我不希望任何人能解决我的具体问题,但我希望答案可能会让我朝着正确的方向前进。

我在我的TI AM335x评估模块上编译并使用了Qt5.2应用程序。它使用-platform elgfs标志运行。

我最近收到了新硬件,这个硬件仍然使用相同版本的TI AM335x处理器(3352),但它是在一个完全不同的电路板上,具有不同的显示器。内核是由TI的一些外部第三方修改而来的,根文件系统和我的Qt5.2应用程序与TI AM335x上完全相同。

当我在这个新硬件上启动我的应用程序时,它会报告:

  

已打开显示0x1

     

无法初始化egl显示

     

EGL错误
  中止

所以我的问题是:

  • 是什么导致Qt无法初始化egl显示?

我的理解是“EGL”代表“ E mbedded-system G raphics L ibrary”,我认为这意味着在某个地方需要一些EGL.lib,但在内核/驱动程序级别需要什么来使显示器与EGL兼容?

1 个答案:

答案 0 :(得分:0)

查找插件是否存在:

ls $ ROOTFS / usr / lib / qt5 / plugins / platforms / libqeglfs.so

在它上面运行ldd(来自你的工具链,而不是系统ldd):

build-arm-poky-linux-gnueabi / elf / ldd libqeglfs.so

    libz.so.1 => not found
    libudev.so.0 => not found
    libQt5Gui.so.5 => not found
    libQt5Core.so.5 => not found
    libGLESv2.so.2 => not found
    libEGL.so.1 => not found
    libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xf66e6000)
    libstdc++.so.6 => /usr/lib/arm-linux-gnueabihf/libstdc++.so.6 (0xf662f000)
    libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xf65bb000)
    libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xf6592000)
    libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xf64a3000)
    /lib/ld-linux-armhf.so.3 (0xf6fd7000)

确保所有的库都存在(再次在ROOTFS而不是主机系统上)。

如果没有,请在ROOTFS上安装正确的库。