Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. Qt 5.11 for Beaglebone Black

Qt 5.11 for Beaglebone Black

Scheduled Pinned Locked Moved Unsolved Mobile and Embedded
18 Posts 2 Posters 10.7k Views 1 Watching
  • 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.
  • sierdzioS Offline
    sierdzioS Offline
    sierdzio
    Moderators
    wrote on last edited by
    #6

    You can disable the gold linker by passing -no-use-gold-linker to Qt's configure script.

    (Z(:^

    1 Reply Last reply
    1
    • shylockS Offline
      shylockS Offline
      shylock
      wrote on last edited by
      #7

      @sierdzio said in Qt 5.11 for Beaglebone Black:

      -no-use-gold-linker

      Hi Serdzio,

      I used my configure script syntax as you prescribed, as follow

      ./configure -v -opensource -confirm-license -prefix /usr/local/qt5.11 -device linux-beagleboard-g++ -device-option CROSS_COMPILE=$HOME/gcc-linaro-4.9/bin/arm-linux-gnueabi- -qt-libpng -qt-libjpeg -qpa eglfs -opengl es2 -no-gcc-sysroot -release -no-use-gold-linker
      

      But error seems to be still creeping in I wonder why?

      This is the Qt Open Source Edition.
      
      You have already accepted the terms of the Open Source license.
      
      Running configuration tests...
      Checking for machine tuple... 
      + /home/userdir/gcc-linaro-4.9/bin/arm-linux-gnueabi-g++ -dumpmachine
      > arm-linux-gnueabi
      test config.qtbase.tests.machineTuple succeeded
      Checking for valid makespec... 
      + cd /home/userdir/qt5/config.tests/verifyspec && /home/userdir/qt5/qtbase/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" -early "CONFIG += cross_compile" /home/userdir/qt5/qtbase/config.tests/verifyspec
      + cd /home/userdir/qt5/config.tests/verifyspec && MAKEFLAGS= /usr/bin/make
      > /home/userdir/gcc-linaro-4.9/bin/arm-linux-gnueabi-g++ -c -pipe -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mthumb -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mthumb -mfloat-abi=hard -O2 -O3 -std=gnu++11 -w -fPIC  -I/home/userdir/qt5/qtbase/config.tests/verifyspec -I. -I/home/userdir/qt5/qtbase/mkspecs/devices/linux-beagleboard-g++ -o verifyspec.o /home/userdir/qt5/qtbase/config.tests/verifyspec/verifyspec.cpp
      > /home/userdir/gcc-linaro-4.9/bin/arm-linux-gnueabi-g++ -mfloat-abi=hard -Wl,-O1 -o verifyspec verifyspec.o   -lrt -lpthread -ldl 
      > /home/userdir/gcc-linaro-4.9/bin/../lib/gcc/arm-linux-gnueabi/4.9.3/../../../../arm-linux-gnueabi/bin/ld: error: verifyspec.o uses VFP register arguments, verifyspec does not
      > /home/userdir/gcc-linaro-4.9/bin/../lib/gcc/arm-linux-gnueabi/4.9.3/../../../../arm-linux-gnueabi/bin/ld: failed to merge target specific data of file verifyspec.o
      > collect2: error: ld returned 1 exit status
      > Makefile:66: recipe for target 'verifyspec' failed
      > make: *** [verifyspec] Error 1
      Note: Also available for Linux: linux-clang linux-icc
      ERROR: Cannot compile a minimal program. The toolchain or QMakeSpec is broken.
      
      1 Reply Last reply
      0
      • sierdzioS Offline
        sierdzioS Offline
        sierdzio
        Moderators
        wrote on last edited by
        #8

        You are mixing hard and soft float architecture somehow. Is your sysroot using softfp? Then you should use the same for Qt compilation (currently you are using armhf - hard float).

        Some additional info: https://stackoverflow.com/questions/9753749/arm-compilation-error-vfp-registered-used-by-executable-not-object-file

        (Z(:^

        1 Reply Last reply
        1
        • shylockS Offline
          shylockS Offline
          shylock
          wrote on last edited by
          #9

          Sierdzio,
          I modified a qmake which reside at ..qtbase/mkspec/devices/linux-beaglebone-g++/qmake.conf
          as follow:

          #
          # qmake configuration for the BeagleBoard and BeagleBoard xM boards
          # http://beagleboard.org/
          
          MAKEFILE_GENERATOR      = UNIX
          CONFIG                 += incremental
          QMAKE_INCREMENTAL_STYLE = sublib
          
          include(../../common/linux.conf)
          include(../../common/gcc-base-unix.conf)
          include(../../common/g++-unix.conf)
          
          load(device_config)
          
          QT_QPA_DEFAULT_PLATFORM = eglfs
          
          # modifications to g++.conf
          QMAKE_CC                = $${CROSS_COMPILE}gcc
          QMAKE_CXX               = $${CROSS_COMPILE}g++
          QMAKE_LINK              = $${QMAKE_CXX}
          QMAKE_LINK_SHLIB        = $${QMAKE_CXX}
          
          # modifications to linux.conf
          QMAKE_AR                = $${CROSS_COMPILE}ar cqs
          QMAKE_OBJCOPY           = $${CROSS_COMPILE}objcopy
          QMAKE_NM                = $${CROSS_COMPILE}nm -P
          QMAKE_STRIP             = $${CROSS_COMPILE}strip
          
          **#COMPILER_FLAGS          = -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mthumb** (disabled)
          COMPILER_FLAGS          = -mfloat-abi=softfp  (enable)
          
          #modifications to gcc-base.conf
          QMAKE_CFLAGS           += $${COMPILER_FLAGS}
          QMAKE_CXXFLAGS         += $${COMPILER_FLAGS}
          QMAKE_CXXFLAGS_RELEASE += -O3
          
          QMAKE_LIBS             += -lrt -lpthread -ldl
          
          # Extra stuff (OpenGL, DirectFB, ...)
          QMAKE_INCDIR_EGL        =
          QMAKE_LIBDIR_EGL        =
          QMAKE_INCDIR_OPENGL_ES2 = $${QMAKE_INCDIR_EGL}
          QMAKE_LIBDIR_OPENGL_ES2 = $${QMAKE_LIBDIR_EGL}
          QMAKE_INCDIR_OPENVG     = $${QMAKE_INCDIR_EGL}
          QMAKE_LIBDIR_OPENVG     = $${QMAKE_LIBDIR_EGL}
          
          QMAKE_LIBS_EGL          = -lEGL -lIMGegl -lsrv_um
          QMAKE_LIBS_OPENGL_ES2   = -lGLESv2 $${QMAKE_LIBS_EGL}
          QMAKE_LIBS_OPENVG       = -lOpenVG $${QMAKE_LIBS_EGL}
          
          **#DISTRO_OPTS += hard-float** (disabled completely)
          
          # No need for any special EGL device integration.
          # Prioritize the default, compiled-in integration over any plugins.
          EGLFS_DEVICE_INTEGRATION = none
          
          include(../common/linux_arm_device_post.conf)
          
          load(qt_config)
          

          The configuration syntax as follow:

          ./configure -v -opensource -confirm-license -prefix /usr/local/qt5.11 -device linux-beagleboard-g++ -device-option CROSS_COMPILE=$HOME/gcc-linaro-4.9/bin/arm-linux-gnueabi- -qt-libpng -qt-libjpeg -qpa eglfs -no-opengl -qpa tslib -no-gcc-sysroot -release -no-use-gold-linker
          

          This time ./configuration script succeeded, I hope this could be reference to someone who need solution.
          please advise who to update the QT website page for BBB.
          https://wiki.qt.io/BeagleBone_Black_Beginners_Guide
          Thank you,

          sierdzioS 1 Reply Last reply
          1
          • shylockS shylock

            Sierdzio,
            I modified a qmake which reside at ..qtbase/mkspec/devices/linux-beaglebone-g++/qmake.conf
            as follow:

            #
            # qmake configuration for the BeagleBoard and BeagleBoard xM boards
            # http://beagleboard.org/
            
            MAKEFILE_GENERATOR      = UNIX
            CONFIG                 += incremental
            QMAKE_INCREMENTAL_STYLE = sublib
            
            include(../../common/linux.conf)
            include(../../common/gcc-base-unix.conf)
            include(../../common/g++-unix.conf)
            
            load(device_config)
            
            QT_QPA_DEFAULT_PLATFORM = eglfs
            
            # modifications to g++.conf
            QMAKE_CC                = $${CROSS_COMPILE}gcc
            QMAKE_CXX               = $${CROSS_COMPILE}g++
            QMAKE_LINK              = $${QMAKE_CXX}
            QMAKE_LINK_SHLIB        = $${QMAKE_CXX}
            
            # modifications to linux.conf
            QMAKE_AR                = $${CROSS_COMPILE}ar cqs
            QMAKE_OBJCOPY           = $${CROSS_COMPILE}objcopy
            QMAKE_NM                = $${CROSS_COMPILE}nm -P
            QMAKE_STRIP             = $${CROSS_COMPILE}strip
            
            **#COMPILER_FLAGS          = -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mthumb** (disabled)
            COMPILER_FLAGS          = -mfloat-abi=softfp  (enable)
            
            #modifications to gcc-base.conf
            QMAKE_CFLAGS           += $${COMPILER_FLAGS}
            QMAKE_CXXFLAGS         += $${COMPILER_FLAGS}
            QMAKE_CXXFLAGS_RELEASE += -O3
            
            QMAKE_LIBS             += -lrt -lpthread -ldl
            
            # Extra stuff (OpenGL, DirectFB, ...)
            QMAKE_INCDIR_EGL        =
            QMAKE_LIBDIR_EGL        =
            QMAKE_INCDIR_OPENGL_ES2 = $${QMAKE_INCDIR_EGL}
            QMAKE_LIBDIR_OPENGL_ES2 = $${QMAKE_LIBDIR_EGL}
            QMAKE_INCDIR_OPENVG     = $${QMAKE_INCDIR_EGL}
            QMAKE_LIBDIR_OPENVG     = $${QMAKE_LIBDIR_EGL}
            
            QMAKE_LIBS_EGL          = -lEGL -lIMGegl -lsrv_um
            QMAKE_LIBS_OPENGL_ES2   = -lGLESv2 $${QMAKE_LIBS_EGL}
            QMAKE_LIBS_OPENVG       = -lOpenVG $${QMAKE_LIBS_EGL}
            
            **#DISTRO_OPTS += hard-float** (disabled completely)
            
            # No need for any special EGL device integration.
            # Prioritize the default, compiled-in integration over any plugins.
            EGLFS_DEVICE_INTEGRATION = none
            
            include(../common/linux_arm_device_post.conf)
            
            load(qt_config)
            

            The configuration syntax as follow:

            ./configure -v -opensource -confirm-license -prefix /usr/local/qt5.11 -device linux-beagleboard-g++ -device-option CROSS_COMPILE=$HOME/gcc-linaro-4.9/bin/arm-linux-gnueabi- -qt-libpng -qt-libjpeg -qpa eglfs -no-opengl -qpa tslib -no-gcc-sysroot -release -no-use-gold-linker
            

            This time ./configuration script succeeded, I hope this could be reference to someone who need solution.
            please advise who to update the QT website page for BBB.
            https://wiki.qt.io/BeagleBone_Black_Beginners_Guide
            Thank you,

            sierdzioS Offline
            sierdzioS Offline
            sierdzio
            Moderators
            wrote on last edited by
            #10

            @shylock said in Qt 5.11 for Beaglebone Black:

            This time ./configuration script succeeded, I hope this could be reference to someone who need solution.
            please advise who to update the QT website page for BBB.
            https://wiki.qt.io/BeagleBone_Black_Beginners_Guide

            Hey, wow, great news :-) Please also try the compilation itself, too - sometimes the configure tests do not pick all the issues up and compilation fails later (well, Qt is a big beast).

            You should be able to modify the wiki page yourself - after editing it will display some scary error message but it is OK - the page will be put up for moderation (probably by @tekojo , I'm not sure who accepts the wiki changes).

            (Z(:^

            1 Reply Last reply
            1
            • shylockS Offline
              shylockS Offline
              shylock
              wrote on last edited by
              #11

              Thank 4 confidence,
              But I am still grappling with the following problem

              "./qt-arm-test: error while loading shared libraries: libQt5Widgets.so.5: cannot open shared object file: No such file or directory"

              I checked contents of directory of /usr/local/qt5.11/lib

              cmake                             libQt5InputSupport.prl
              libQt5AccessibilitySupport.a      libQt5Network.la
              libQt5AccessibilitySupport.la     libQt5Network.prl
              libQt5AccessibilitySupport.prl    libQt5Network.so
              libQt5Bootstrap.a                 libQt5Network.so.5
              libQt5Bootstrap.la                libQt5Network.so.5.10
              libQt5Bootstrap.prl               libQt5Network.so.5.10.1
              libQt5Concurrent.la               libQt5PrintSupport.la
              libQt5Concurrent.prl              libQt5PrintSupport.prl
              libQt5Concurrent.so               libQt5PrintSupport.so
              libQt5Concurrent.so.5             libQt5PrintSupport.so.5
              libQt5Concurrent.so.5.10          libQt5PrintSupport.so.5.10
              libQt5Concurrent.so.5.10.1        libQt5PrintSupport.so.5.10.1
              libQt5Core.la                     libQt5ServiceSupport.a
              libQt5Core.prl                    libQt5ServiceSupport.la
              libQt5Core.so                     libQt5ServiceSupport.prl
              libQt5Core.so.5                   libQt5Sql.la
              libQt5Core.so.5.10                libQt5Sql.prl
              libQt5Core.so.5.10.1              libQt5Sql.so
              libQt5DBus.la                     libQt5Sql.so.5
              libQt5DBus.prl                    libQt5Sql.so.5.10
              libQt5DBus.so                     libQt5Sql.so.5.10.1
              libQt5DBus.so.5                   libQt5Test.la
              libQt5DBus.so.5.10                libQt5Test.prl
              libQt5DBus.so.5.10.1              libQt5Test.so
              libQt5DeviceDiscoverySupport.a    libQt5Test.so.5
              libQt5DeviceDiscoverySupport.la   libQt5Test.so.5.10
              libQt5DeviceDiscoverySupport.prl  libQt5Test.so.5.10.1
              libQt5EdidSupport.a               libQt5ThemeSupport.a
              libQt5EdidSupport.la              libQt5ThemeSupport.la
              libQt5EdidSupport.prl             libQt5ThemeSupport.prl
              libQt5EventDispatcherSupport.a    libQt5Widgets.la
              libQt5EventDispatcherSupport.la   libQt5Widgets.prl
              libQt5EventDispatcherSupport.prl  libQt5Widgets.so
              libQt5FbSupport.a                 libQt5Widgets.so.5
              libQt5FbSupport.la                libQt5Widgets.so.5.10
              libQt5FbSupport.prl               libQt5Widgets.so.5.10.1
              libQt5FontDatabaseSupport.a       libQt5Xml.la
              libQt5FontDatabaseSupport.la      libQt5Xml.prl
              libQt5FontDatabaseSupport.prl     libQt5Xml.so
              libQt5Gui.la                      libQt5Xml.so.5
              libQt5Gui.prl                     libQt5Xml.so.5.10
              libQt5Gui.so                      libQt5Xml.so.5.10.1
              libQt5Gui.so.5                    libqtfreetype.a
              libQt5Gui.so.5.10                 libqtfreetype.prl
              libQt5Gui.so.5.10.1               libqtlibpng.a
              libQt5InputSupport.a              libqtlibpng.prl
              libQt5InputSupport.la             pkgconfig
              

              I manage to build the qt on my x86_64 server.
              after "sudo make install on my dev machine"
              I copied an entire directory of qt5.11 across the BBB and moved in /usr/local/qt5.11 directory structure.
              the directory /usr/local/qt5.11/lib has all the libs which were build on theserver.
              A quick small qt program developed and deployed to BBB to run ./qt-arm-test But
              I have following problem
              error while loading shared libraries: libQt5Widgets.so.5: cannot open shared object file: No such file or directory
              I ran ldconfig -v and my environment variable for LD_LIBRARY_PATH=/usr/local/qt5.11/lib

              echo $LD_LIBRARY_PATH 
              /usr/local/qt5.11/lib:/usr/local/lib:/lib/arm-linux-gnueabihf:/lib
              

              while $PATH variable also points to qt5.11/lib directory.
              But still, the application failed to run. How can be remedied this problem? I have thrown almost everything lock, stock n barrel.

              1 Reply Last reply
              0
              • sierdzioS Offline
                sierdzioS Offline
                sierdzio
                Moderators
                wrote on last edited by
                #12

                Check where it is looking for libQt5Widgets with ldd:

                ldd qt-arm-test
                

                You can also run it on your Qt .so files to see if they look correct.

                (Z(:^

                1 Reply Last reply
                0
                • shylockS Offline
                  shylockS Offline
                  shylock
                  wrote on last edited by
                  #13

                  I am using BBB with kernel 4.15.1 without any graphical server.
                  I understood that the QT provide graphical rendering on the screen. As I knew that
                  graphic rendering done by X11 windowing system or Framebuffer or EGLs by qt but in true sense egls require sgfx_graphic rendering manager to which currently not installed in fact none of x11, xorg, fb or sgx driver currently exists with kernel.
                  My requirements are minimum or no desktop graphical environment. The application program will render all the graphic through Qt's egls facility.
                  Can you please shed a light on this to run minimum graphic or only Qt-application will render graphics during its session.
                  How can be achieved.

                  1 Reply Last reply
                  0
                  • sierdzioS Offline
                    sierdzioS Offline
                    sierdzio
                    Moderators
                    wrote on last edited by
                    #14

                    Qt can run without windowing system when you run it with EGLFS plugin. Possibly also with LinuxFB, but that plugin is not actively maintained anymore. You need to have the drivers and OpenGL libs installed.

                    To make sure EGLFS plugin is compiled, check your configure output.

                    To run your application with EGLFS plugin, run it like this:

                    ./your_app -platform eglfs
                    

                    (Z(:^

                    1 Reply Last reply
                    0
                    • shylockS Offline
                      shylockS Offline
                      shylock
                      wrote on last edited by
                      #15

                      Hi
                      I built Qt5 for Beaglebone Black, ON BeagleBone Black computer itsefl with 'arm-linux-gnueabihf-' compiler located in the BBB's /usr/bin/ directory an entire qt5 build succeeded
                      cloning http://code.qt.io/cgit/qt/qt5.git/?h=5.11
                      and configuring as follow:
                      ./configure -v -opensource -confirm-license -prefix /usr/local/qt5.11 -device linux-beagleboard-g++ -device-option
                      CROSS_COMPILE=/usr/arm-linux-gnueabihf- -qt-libpng -qt-libjpeg -no-opengl -qpa eglfs -no-gcc-sysroot -release -no-use-gold-linker -ico -gif -platform linux-clang

                      when I run a test program on the BBB computer I am keep getting following message:
                      This application failed to start because it could not find the Qt platform plugin "eglfs" in "".
                      Application platform plugins are: linuxfb, minimal, offscreen, vnc
                      Reinstalling the application may fix this problem.
                      Aborted.

                      Although I have install xdm, xorg on BBB and I can startx window which run perfectly but my own test program cannot????
                      as you can see I included in my configure eglfs option.
                      Some help will be truly grateful
                      thank you,

                      1 Reply Last reply
                      0
                      • sierdzioS Offline
                        sierdzioS Offline
                        sierdzio
                        Moderators
                        wrote on last edited by
                        #16

                        Check configure output - does it say that EGLFS support will actually be compiled?

                        xdm, xorg on BBB and I can startx

                        That's unrelated to EGLFS.

                        (Z(:^

                        1 Reply Last reply
                        0
                        • shylockS Offline
                          shylockS Offline
                          shylock
                          wrote on last edited by
                          #17

                          Hello Sierdzio,
                          I revisited my qt5 build as follow
                          /home/username/qt5/qtbase/src/plugins/platforms
                          Where Makefile resides. Runnings again 'make' that will build entire contents of platform directory including eglfs vnc and linuxfb ... etc.
                          while 'sudo make install' will get installed in /usr/local/qt5.11/... directory I assume. So the rebuilding platforms directory will definitely build eglfs and install.
                          Whats your thoughts ... pls let know.

                          sierdzioS 1 Reply Last reply
                          0
                          • shylockS shylock

                            Hello Sierdzio,
                            I revisited my qt5 build as follow
                            /home/username/qt5/qtbase/src/plugins/platforms
                            Where Makefile resides. Runnings again 'make' that will build entire contents of platform directory including eglfs vnc and linuxfb ... etc.
                            while 'sudo make install' will get installed in /usr/local/qt5.11/... directory I assume. So the rebuilding platforms directory will definitely build eglfs and install.
                            Whats your thoughts ... pls let know.

                            sierdzioS Offline
                            sierdzioS Offline
                            sierdzio
                            Moderators
                            wrote on last edited by
                            #18

                            @shylock said in Qt 5.11 for Beaglebone Black:

                            Whats your thoughts ... pls let know.

                            None, I don't know what your question is ;)

                            (Z(:^

                            1 Reply Last reply
                            0

                            • Login

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