QT5: Failed to load EGL device integration "eglfs_viv" on armStoneA9r2

  • Hi,

    I'm testing an armStoneA9r2 board, and I tried to write a Qt5 demo application carefully following the tutorial you provided, but the application fails to launch, with the following message :


    QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'

    qt.qpa.egldeviceintegration: EGL device integration plugin keys: ("eglfs_emu", "eglfs_kms_egldevice", "eglfs_x11")

    qt.qpa.egldeviceintegration: EGL device integration plugin keys (sorted): ("eglfs_viv", "eglfs_x11", "eglfs_emu", "eglfs_kms_egldevice")

    qt.qpa.egldeviceintegration: Trying to load device EGL integration "eglfs_viv"

    qt.qpa.egldeviceintegration: Failed to load EGL device integration "eglfs_viv"

    qt.qpa.egldeviceintegration: Trying to load device EGL integration "eglfs_x11"

    qt.qpa.egldeviceintegration: Using EGL device integration "eglfs_x11"

    Could not open display

    Aborted



    The only way to start the application is launching through xinit:

    xinit ./testApp


    if I unset the DISPLAY environment variable, the log turns into:


    qt.qpa.egldeviceintegration: EGL device integration plugin keys: ("eglfs_emu", "eglfs_kms_egldevice", "eglfs_x11")

    qt.qpa.egldeviceintegration: EGL device integration plugin keys (sorted): ("eglfs_viv", "eglfs_emu", "eglfs_kms_egldevice", "eglfs_x11")

    qt.qpa.egldeviceintegration: Trying to load device EGL integration "eglfs_viv"

    qt.qpa.egldeviceintegration: Failed to load EGL device integration "eglfs_viv"

    qt.qpa.egldeviceintegration: Trying to load device EGL integration "eglfs_emu"

    qt.qpa.egldeviceintegration: Using EGL device integration "eglfs_emu"

    Could not open egl display

    Aborted


    The Qt config.summary log shows:

    ....

    QPA backends:

    DirectFB ............................... no

    EGLFS .................................. yes

    EGLFS details:

    EGLFS OpenWFD ........................ no

    EGLFS i.Mx6 .......................... no

    EGLFS i.Mx6 Wayland .................. no

    EGLFS RCAR ........................... no

    EGLFS EGLDevice ...................... yes

    EGLFS GBM ............................ no

    EGLFS VSP2 ........................... no

    EGLFS Mali ........................... no

    EGLFS Raspberry Pi ................... no

    EGLFS X11 ............................ yes

    LinuxFB ................................ no

    VNC .................................... yes

    Mir client ............................. no


    So from this log it appears the EGLFS is supported only through X11 and EGLDevice.

    In buildroot the Qt5/eglfs options seems activated:

    Target packages

    + --> Graphic libraries and applications (graphic/text)
    +--> Qt5

    +--> eglfs support

    +--> Default Graphical platform --> eglfs



    Digging into the buildroot config, I see that the eglfs_viv should be enabled, since the following parameters are enabeled:


    BR2_PACKAGE_FREESCALE_IMX_HAS_VIV_GPU [=y]

    BR2_PACKAGE_GPU_VIV_BIN_MX6Q [=n] (--> Ok, the CPU is a DualLite)

    BR2_PACKAGE_IMX_GPU_VIV [=y]

    BR2_PACKAGE_KERNEL_MODULE_IMX_GPU_VIV [=y]


    I assume the reason EGLFS is supported only through the X11 backend is due to the missing "EGLFS i.Mx6" option in Qt.
    Is that true? Am I missing something? Is it possible to start the application not using the X11 backend and using directly Vivante ?

    Thanks in advance!

    Michele Bucceri

  • fsimx6_qt5_defconfig would be correct. But this is strange, because the qt5_defconfig does not have any X11 included. So xinit should not exist. So if X11 is started, then it is definitely not the qt5_defconfig.


    Unfortunately there is no easy way to determine at run-time which configuration was built. You can only conclude this from the software that is available.

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Could it be possible, that you built the std_defconfig and then the qt5_defconfig, without making a "make clean" or even better a "make distclean" in-between?


    Unfortunately , buildroot does not delete old files from the root file system if you build an other defconfig, so you always have to build buildroot from scratch.


    Your F&S Support Team