Important: Please read the Qt Code of Conduct -

How to increase Qt verbosity?

  • Hello, I am trying to get the shipped qml clock example (available from QtCreator) on am ARM board WITHOUT a GPU (Xilinx Zynq). I wanted to what the minimum requirements for a QtQuick application was, so I started with the following packages:

    • mesa 3D:
      DRI swrast driver: OpenGL implementation using the DRI infrastructure
      OpenGL EGL: this is the API for managing windows and buffers
      OpenGL ES: this is the OpenGL API
    • Qt5.5
      OpenGL ES 2.0+ support

    But then I found Qt Quick applications crash on startup without eglfs backend, so I added it. But now I am running into "Could not open display" error. I assume it wants to talk to the X server. But according to the Qt Embedded document, "EGLFS is a platform plugin for running Qt5 applications on top of EGL and OpenGL ES 2.0 without an actual windowing system (like X11 or Wayland)..." so why am I seeing "could not open display" error?

    I would like to specify a command line argument to make Qt spit out more messages than just "could not open display". Is there such a feature?

  • Hi. Please take a look at the environment variables available to configure the EGLFS plugin.

    • QT_QPA_EGLFS_DEBUG - When set, some debugging information is printed on the debug output. For example, the input QSurfaceFormat and the properties of the chosen EGL configuration are printed whenever creating a new context. Together with Qt Quick's QSG_INFO variable, this can provide useful information for troubleshooting issues related to the EGL configuration.
    • QT_QPA_EGLFS_FB - Overrides the framebuffer device. The default is /dev/fb0. On most embedded platforms this is not very relevant because the framebuffer is used only for querying settings like the display dimensions. On certain devices however this parameter provides the ability to specify which display to use in multiple display setups, similarly to the fb parameter in LinuxFB.

  • Thank you Leonardo, I don't see QT_QPA_EGLFS_DEBUG in the source code, as you can see below:

    qt5base-5.5.0/src/plugins$ grep -nR QT_QPA_EGLFS_DEBUG *
    <nothing !>

    There are some interesting environment variables however:

    qt5base-5.5.0/src/plugins/platforms/eglfs$ grep -nR --include=*.cpp QT_QPA_EGLFS_ *
    deviceintegration/eglfs_kms/qeglfskmscursor.cpp:171: static QByteArray json = qgetenv("QT_QPA_EGLFS_CURSOR");
    deviceintegration/eglfs_kms/qeglfskmsintegration.cpp:213: static QByteArray json = qgetenv("QT_QPA_EGLFS_KMS_CONFIG");
    qeglfsdeviceintegration.cpp:128: QByteArray fbDev = qgetenv("QT_QPA_EGLFS_FB");
    qeglfsdeviceintegration.cpp:241: static const bool force888 = qEnvironmentVariableIntValue("QT_QPA_EGLFS_FORCE888");
    qeglfsdeviceintegration.cpp:293: static const bool forceSync = qEnvironmentVariableIntValue("QT_QPA_EGLFS_FORCEVSYNC");
    qeglfshooks.cpp:85: if (qEnvironmentVariableIsSet("QT_QPA_EGLFS_INTEGRATION")) {
    qeglfshooks.cpp:86: requested = qgetenv("QT_QPA_EGLFS_INTEGRATION");
    qeglfsintegration.cpp:68: mDisableInputHandlers = qEnvironmentVariableIntValue("QT_QPA_EGLFS_DISABLE_INPUT");

Log in to reply