Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Installation and Deployment
  4. White screen - yocto with QT
Forum Updated to NodeBB v4.3 + New Features

White screen - yocto with QT

Scheduled Pinned Locked Moved Solved Installation and Deployment
13 Posts 3 Posters 1.3k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L LogEx

    I have deployed a simple qt application that has a label prints "hello world" in yocto image and when trying to open the application on target it shows a white screen with no labels inside it .

    but when running the application in host machine it works fine.

    i have removed x11 and wayland from the destro features and added eglfs to it.

    the recipe for qt app :

    SUMMARY = "QT Example Recipe"
    LICENSE = "CLOSED"
    
    SRC_URI = "file://qt-app.pro \
               file://qt-app.cpp"
    
    DEPENDS += " qtbase"
    RDEPENDS_${PN} += " qtwayland"
    
    S = "${WORKDIR}"
    
    
    do_install:append() {
        install -d ${D}${bindir}
        install -m 0755 ${S}/build/qt-app ${D}${bindir}
    }
    
    FILES_${PN} += "${bindir}/qt-app"
    
    inherit qmake5
    

    and the source code of the program :

    #include <QApplication>
    #include <QLabel>
    #include <QWidget>
    #include <QDebug>
    int main(int argc, char *argv[])
    {
        QApplication app(argc, argv);
        QLabel label("Hello World!");
        label.setWindowTitle("My First Qt App");
        label.setAlignment(Qt::AlignCenter);
        label.resize(400, 400);
        label.show();
    
        return app.exec();
    }
    

    i have also appended export QT_QPA_PLATFORM=eglfs to /etc/profile file.

    can any one help me with the white screen issue?

    JoeCFDJ Offline
    JoeCFDJ Offline
    JoeCFD
    wrote on last edited by
    #2

    @LogEx likely some plugins are missing:
    export QT_DEBUG_PLUGINS=1
    run your app again to see what is missing.

    L 1 Reply Last reply
    0
    • JoeCFDJ JoeCFD

      @LogEx likely some plugins are missing:
      export QT_DEBUG_PLUGINS=1
      run your app again to see what is missing.

      L Offline
      L Offline
      LogEx
      wrote on last edited by
      #3

      @JoeCFD thanks for your reply
      after trying this, the output log in the terminal is:

      QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/platforms" ...
      QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqeglfs.so"
      Found metadata in lib /usr/lib/plugins/platforms/libqeglfs.so, metadata=
      {
          "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
          "MetaData": {
              "Keys": [
                  "eglfs"
              ]
          },
          "archreq": 0,
          "className": "QEglFSIntegrationPlugin",
          "debug": false,
          "version": 331520
      }
      
      
      Got keys from plugin meta data ("eglfs")
      QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqminimal.so"
      Found metadata in lib /usr/lib/plugins/platforms/libqminimal.so, metadata=
      {
          "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
          "MetaData": {
              "Keys": [
                  "minimal"
              ]
          },
          "archreq": 0,
          "className": "QMinimalIntegrationPlugin",
          "debug": false,
          "version": 331520
      }
      
      
      Got keys from plugin meta data ("minimal")
      QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqminimalegl.so"
      Found metadata in lib /usr/lib/plugins/platforms/libqminimalegl.so, metadata=
      {
          "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
          "MetaData": {
              "Keys": [
                  "minimalegl"
              ]
          },
          "archreq": 0,
          "className": "QMinimalEglIntegrationPlugin",
          "debug": false,
          "version": 331520
      }
      
      
      Got keys from plugin meta data ("minimalegl")
      QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqoffscreen.so"
      Found metadata in lib /usr/lib/plugins/platforms/libqoffscreen.so, metadata=
      {
          "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
          "MetaData": {
              "Keys": [
                  "offscreen"
              ]
          },
          "archreq": 0,
          "className": "QOffscreenIntegrationPlugin",
          "debug": false,
          "version": 331520
      }
      
      
      Got keys from plugin meta data ("offscreen")
      QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqvnc.so"
      Found metadata in lib /usr/lib/plugins/platforms/libqvnc.so, metadata=
      {
          "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
          "MetaData": {
              "Keys": [
                  "vnc"
              ]
          },
          "archreq": 0,
          "className": "QVncIntegrationPlugin",
          "debug": false,
          "version": 331520
      }
      
      
      Got keys from plugin meta data ("vnc")
      QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/platforms" ...
      loaded library "/usr/lib/plugins/platforms/libqeglfs.so"
      QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
      QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/egldeviceintegrations" ...
      QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/egldeviceintegrations/libqeglfs-emu-integration.so"
      Found metadata in lib /usr/lib/plugins/egldeviceintegrations/libqeglfs-emu-integration.so, metadata=
      {
          "IID": "org.qt-project.qt.qpa.egl.QEglFSDeviceIntegrationFactoryInterface.5.5",
          "MetaData": {
              "Keys": [
                  "eglfs_emu"
              ]
          },
          "archreq": 0,
          "className": "QEglFSEmulatorIntegrationPlugin",
          "debug": false,
          "version": 331520
      }
      
      
      Got keys from plugin meta data ("eglfs_emu")
      QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-egldevice-integration.so"
      Found metadata in lib /usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-egldevice-integration.so, metadata=
      {
          "IID": "org.qt-project.qt.qpa.egl.QEglFSDeviceIntegrationFactoryInterface.5.5",
          "MetaData": {
              "Keys": [
                  "eglfs_kms_egldevice"
              ]
          },
          "archreq": 0,
          "className": "QEglFSKmsEglDeviceIntegrationPlugin",
          "debug": false,
          "version": 331520
      }
      
      
      Got keys from plugin meta data ("eglfs_kms_egldevice")
      QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-integration.so"
      Found metadata in lib /usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-integration.so, metadata=
      {
          "IID": "org.qt-project.qt.qpa.egl.QEglFSDeviceIntegrationFactoryInterface.5.5",
          "MetaData": {
              "Keys": [
                  "eglfs_kms"
              ]
          },
          "archreq": 0,
          "className": "QEglFSKmsGbmIntegrationPlugin",
          "debug": false,
          "version": 331520
      }
      
      
      Got keys from plugin meta data ("eglfs_kms")
      QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/egldeviceintegrations" ...
      loaded library "/usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-integration.so"
      QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/imageformats" ...
      QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/imageformats/libqjpeg.so"
      Found metadata in lib /usr/lib/plugins/imageformats/libqjpeg.so, metadata=
      {
          "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
          "MetaData": {
              "Keys": [
                  "jpg",
                  "jpeg"
              ],
              "MimeTypes": [
                  "image/jpeg",
                  "image/jpeg"
              ]
          },
          "archreq": 0,
          "className": "QJpegPlugin",
          "debug": false,
          "version": 331520
      }
      
      
      Got keys from plugin meta data ("jpg", "jpeg")
      QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/imageformats" ...
      loaded library "/usr/lib/plugins/imageformats/libqjpeg.so"
      QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/styles" ...
      QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/styles" ...
      QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/accessiblebridge" ...
      QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/accessiblebridge" ...
      
      L 1 Reply Last reply
      0
      • L LogEx

        @JoeCFD thanks for your reply
        after trying this, the output log in the terminal is:

        QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/platforms" ...
        QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqeglfs.so"
        Found metadata in lib /usr/lib/plugins/platforms/libqeglfs.so, metadata=
        {
            "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
            "MetaData": {
                "Keys": [
                    "eglfs"
                ]
            },
            "archreq": 0,
            "className": "QEglFSIntegrationPlugin",
            "debug": false,
            "version": 331520
        }
        
        
        Got keys from plugin meta data ("eglfs")
        QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqminimal.so"
        Found metadata in lib /usr/lib/plugins/platforms/libqminimal.so, metadata=
        {
            "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
            "MetaData": {
                "Keys": [
                    "minimal"
                ]
            },
            "archreq": 0,
            "className": "QMinimalIntegrationPlugin",
            "debug": false,
            "version": 331520
        }
        
        
        Got keys from plugin meta data ("minimal")
        QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqminimalegl.so"
        Found metadata in lib /usr/lib/plugins/platforms/libqminimalegl.so, metadata=
        {
            "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
            "MetaData": {
                "Keys": [
                    "minimalegl"
                ]
            },
            "archreq": 0,
            "className": "QMinimalEglIntegrationPlugin",
            "debug": false,
            "version": 331520
        }
        
        
        Got keys from plugin meta data ("minimalegl")
        QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqoffscreen.so"
        Found metadata in lib /usr/lib/plugins/platforms/libqoffscreen.so, metadata=
        {
            "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
            "MetaData": {
                "Keys": [
                    "offscreen"
                ]
            },
            "archreq": 0,
            "className": "QOffscreenIntegrationPlugin",
            "debug": false,
            "version": 331520
        }
        
        
        Got keys from plugin meta data ("offscreen")
        QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/platforms/libqvnc.so"
        Found metadata in lib /usr/lib/plugins/platforms/libqvnc.so, metadata=
        {
            "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
            "MetaData": {
                "Keys": [
                    "vnc"
                ]
            },
            "archreq": 0,
            "className": "QVncIntegrationPlugin",
            "debug": false,
            "version": 331520
        }
        
        
        Got keys from plugin meta data ("vnc")
        QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/platforms" ...
        loaded library "/usr/lib/plugins/platforms/libqeglfs.so"
        QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
        QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/egldeviceintegrations" ...
        QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/egldeviceintegrations/libqeglfs-emu-integration.so"
        Found metadata in lib /usr/lib/plugins/egldeviceintegrations/libqeglfs-emu-integration.so, metadata=
        {
            "IID": "org.qt-project.qt.qpa.egl.QEglFSDeviceIntegrationFactoryInterface.5.5",
            "MetaData": {
                "Keys": [
                    "eglfs_emu"
                ]
            },
            "archreq": 0,
            "className": "QEglFSEmulatorIntegrationPlugin",
            "debug": false,
            "version": 331520
        }
        
        
        Got keys from plugin meta data ("eglfs_emu")
        QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-egldevice-integration.so"
        Found metadata in lib /usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-egldevice-integration.so, metadata=
        {
            "IID": "org.qt-project.qt.qpa.egl.QEglFSDeviceIntegrationFactoryInterface.5.5",
            "MetaData": {
                "Keys": [
                    "eglfs_kms_egldevice"
                ]
            },
            "archreq": 0,
            "className": "QEglFSKmsEglDeviceIntegrationPlugin",
            "debug": false,
            "version": 331520
        }
        
        
        Got keys from plugin meta data ("eglfs_kms_egldevice")
        QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-integration.so"
        Found metadata in lib /usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-integration.so, metadata=
        {
            "IID": "org.qt-project.qt.qpa.egl.QEglFSDeviceIntegrationFactoryInterface.5.5",
            "MetaData": {
                "Keys": [
                    "eglfs_kms"
                ]
            },
            "archreq": 0,
            "className": "QEglFSKmsGbmIntegrationPlugin",
            "debug": false,
            "version": 331520
        }
        
        
        Got keys from plugin meta data ("eglfs_kms")
        QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/egldeviceintegrations" ...
        loaded library "/usr/lib/plugins/egldeviceintegrations/libqeglfs-kms-integration.so"
        QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/imageformats" ...
        QFactoryLoader::QFactoryLoader() looking at "/usr/lib/plugins/imageformats/libqjpeg.so"
        Found metadata in lib /usr/lib/plugins/imageformats/libqjpeg.so, metadata=
        {
            "IID": "org.qt-project.Qt.QImageIOHandlerFactoryInterface",
            "MetaData": {
                "Keys": [
                    "jpg",
                    "jpeg"
                ],
                "MimeTypes": [
                    "image/jpeg",
                    "image/jpeg"
                ]
            },
            "archreq": 0,
            "className": "QJpegPlugin",
            "debug": false,
            "version": 331520
        }
        
        
        Got keys from plugin meta data ("jpg", "jpeg")
        QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/imageformats" ...
        loaded library "/usr/lib/plugins/imageformats/libqjpeg.so"
        QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/styles" ...
        QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/styles" ...
        QFactoryLoader::QFactoryLoader() checking directory path "/usr/lib/plugins/accessiblebridge" ...
        QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/accessiblebridge" ...
        
        L Offline
        L Offline
        LogEx
        wrote on last edited by
        #4

        @JoeCFD i don't understand what is the problem here, cant find any thing missing

        Ronel_qtmasterR 1 Reply Last reply
        0
        • L LogEx

          @JoeCFD i don't understand what is the problem here, cant find any thing missing

          Ronel_qtmasterR Offline
          Ronel_qtmasterR Offline
          Ronel_qtmaster
          wrote on last edited by
          #5

          @LogEx try to run the app from the target board with eglfs or x11 and upload a screenshot

          1 Reply Last reply
          0
          • L Offline
            L Offline
            LogEx
            wrote on last edited by
            #6

            @Ronel_qtmaster
            ![20240227_105627.jpg](Request Entity Too Large)
            May be it is a problem with fonts ?

            Ronel_qtmasterR 1 Reply Last reply
            0
            • L LogEx

              @Ronel_qtmaster
              ![20240227_105627.jpg](Request Entity Too Large)
              May be it is a problem with fonts ?

              Ronel_qtmasterR Offline
              Ronel_qtmasterR Offline
              Ronel_qtmaster
              wrote on last edited by
              #7

              @LogEx yes maybe.It could be the forms or the platform plugin.Try replacing a label with a pushbutton to see if there is any difference.
              Also, i am not seeing the screeshot

              1 Reply Last reply
              0
              • L Offline
                L Offline
                LogEx
                wrote on last edited by
                #8

                @Ronel_qtmaster
                thanks for your reply
                thats what is shown when trying the label "hello world"
                1df58815-b4ca-4775-b0b0-ad00fd4a141c-image.png

                the push button is shown but with no text on it just the text place indentation
                0a3df241-0a40-49c8-a62e-b3266ddc810b-image.png

                i have alos tried a check box but it is not showing, only the text indentation shows
                57839b48-f3c6-4422-bb2f-fbfee24be4b3-image.png

                here is alos screenshots for the program behavior on my host machine
                the label :
                c372dbdf-73fb-4084-a7b5-7f2763b80a0f-image.png

                the button :
                16679229-84d6-457d-9d7d-7f592641f5a7-image.png

                the check box:
                32f3ecba-61ea-409e-bd84-568c774992e4-image.png

                Ronel_qtmasterR 1 Reply Last reply
                0
                • L LogEx

                  @Ronel_qtmaster
                  thanks for your reply
                  thats what is shown when trying the label "hello world"
                  1df58815-b4ca-4775-b0b0-ad00fd4a141c-image.png

                  the push button is shown but with no text on it just the text place indentation
                  0a3df241-0a40-49c8-a62e-b3266ddc810b-image.png

                  i have alos tried a check box but it is not showing, only the text indentation shows
                  57839b48-f3c6-4422-bb2f-fbfee24be4b3-image.png

                  here is alos screenshots for the program behavior on my host machine
                  the label :
                  c372dbdf-73fb-4084-a7b5-7f2763b80a0f-image.png

                  the button :
                  16679229-84d6-457d-9d7d-7f592641f5a7-image.png

                  the check box:
                  32f3ecba-61ea-409e-bd84-568c774992e4-image.png

                  Ronel_qtmasterR Offline
                  Ronel_qtmasterR Offline
                  Ronel_qtmaster
                  wrote on last edited by
                  #9

                  @LogEx okay it seems that you did not deployed all qt plugins properly to the yocto image.Moreover, something is not working well with the platform plugin. anyway i advice you to:
                  1-remove your receipe
                  2- Add all qt modules in your local conf, remove x11 and wayland in distro features
                  3- in meta-qt receipe, add the support for eglfs in qtbase.bbapend
                  4-Build a core sato image and the toolchain again
                  5-Now create a program and deploy it again
                  6-Launch your program with eglfs to check
                  7-Add your custom receipe and try again

                  ps: i will advice you to always inherit gui projet from a window.Because if you are using label.show() , and there is no suitable window manager to handle it it will have weirds results.This is my opinion.
                  cinematic.PNG

                  i am also running yocto and i don't have any problem with it

                  L 1 Reply Last reply
                  0
                  • Ronel_qtmasterR Ronel_qtmaster

                    @LogEx okay it seems that you did not deployed all qt plugins properly to the yocto image.Moreover, something is not working well with the platform plugin. anyway i advice you to:
                    1-remove your receipe
                    2- Add all qt modules in your local conf, remove x11 and wayland in distro features
                    3- in meta-qt receipe, add the support for eglfs in qtbase.bbapend
                    4-Build a core sato image and the toolchain again
                    5-Now create a program and deploy it again
                    6-Launch your program with eglfs to check
                    7-Add your custom receipe and try again

                    ps: i will advice you to always inherit gui projet from a window.Because if you are using label.show() , and there is no suitable window manager to handle it it will have weirds results.This is my opinion.
                    cinematic.PNG

                    i am also running yocto and i don't have any problem with it

                    L Offline
                    L Offline
                    LogEx
                    wrote on last edited by
                    #10

                    @Ronel_qtmaster
                    the problem was with fonts.
                    I have added these fonts to the image and now it works fine.

                        IMAGE_INSTALL_append = "\
                        ttf-dejavu-sans \
                        ttf-dejavu-sans-mono \
                        ttf-dejavu-sans-condensed \
                        ttf-dejavu-serif \
                        ttf-dejavu-serif-condensed \
                        ttf-dejavu-common \
                    "
                    
                    Ronel_qtmasterR 1 Reply Last reply
                    0
                    • L LogEx has marked this topic as solved on
                    • L LogEx

                      @Ronel_qtmaster
                      the problem was with fonts.
                      I have added these fonts to the image and now it works fine.

                          IMAGE_INSTALL_append = "\
                          ttf-dejavu-sans \
                          ttf-dejavu-sans-mono \
                          ttf-dejavu-sans-condensed \
                          ttf-dejavu-serif \
                          ttf-dejavu-serif-condensed \
                          ttf-dejavu-common \
                      "
                      
                      Ronel_qtmasterR Offline
                      Ronel_qtmasterR Offline
                      Ronel_qtmaster
                      wrote on last edited by
                      #11

                      @LogEx good to hear that.I had problems with fonts while crosscompilling for rpi.However with yocto fonts are deployed successfully.

                      L 1 Reply Last reply
                      0
                      • Ronel_qtmasterR Ronel_qtmaster

                        @LogEx good to hear that.I had problems with fonts while crosscompilling for rpi.However with yocto fonts are deployed successfully.

                        L Offline
                        L Offline
                        LogEx
                        wrote on last edited by
                        #12

                        @Ronel_qtmaster Yes i am using rpi too.
                        could you provide me with some resources to learn about plugins and qt application depends and real time depends ?

                        Ronel_qtmasterR 1 Reply Last reply
                        0
                        • L LogEx

                          @Ronel_qtmaster Yes i am using rpi too.
                          could you provide me with some resources to learn about plugins and qt application depends and real time depends ?

                          Ronel_qtmasterR Offline
                          Ronel_qtmasterR Offline
                          Ronel_qtmaster
                          wrote on last edited by
                          #13

                          @LogEx okay you can check this book
                          Foundations of Qt Development from Johan Thelin.It is really powerful.Chapter 11 focuses on plugins.

                          1 Reply Last reply
                          1

                          • Login

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • Users
                          • Groups
                          • Search
                          • Get Qt Extensions
                          • Unsolved