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. Create embedded QT Gui applications for a Bananapi-M2-Zero
Forum Updated to NodeBB v4.3 + New Features

Create embedded QT Gui applications for a Bananapi-M2-Zero

Scheduled Pinned Locked Moved Solved Mobile and Embedded
17 Posts 2 Posters 2.3k 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.
  • SGaistS Offline
    SGaistS Offline
    SGaist
    Lifetime Qt Champion
    wrote on last edited by
    #2

    Hi and welcome to devnet,

    Qt 4.6 ? Are you really sure ? Qt 4 has reached end of life a very long time ago and it was at 4.8.7. You should first ensure that you can use a recent Qt 5 release.

    Interested in AI ? www.idiap.ch
    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

    1 Reply Last reply
    0
    • L Offline
      L Offline
      lo38230
      wrote on last edited by
      #3

      I have QT 5.12 and I cannot select it in QT creator Kits because it always says that the compiler I downloaded installed and selected g++-arm-gnueabihf 32 bits compatible with the Banana PI M2 zero cannot produce code for this QT version. This is the same for all earlyer versions of QT I downloaded on https://download.qt.io/archive/qt By version 5.1.1 it is possible to have a 32 bit version installer qt-linux-opensource-5.1.1-x86-offline.run The installer doesn't work at the moment, there is an error that I didn't solve at the moment:
      error while loading shared libraries: libSM.so.6: cannot open shared object file: No such file or directory
      This installer look like QT 5.9.9 64 bits that I could install and with an already existing builded qmake for specific architecture(X86). Perhaps it is not important at this step. I would be able to select QT5.1.1 in the Qt creator kit selector and give my arm-gnueabihf architecture in my self created qmake.conf path. Not shure it will work, this installed qt doesnt contain a configure executable like the downloaded qt-everywhere-opensource-src-4.6.3. I will try to generate qmake by using "./configure" in "qt-everywhere-opensource-src-5.1.0.tar.gz" . May be I will have to configure something manually like 32 bits selector and Im not sure at the moment it will success.
      Otherwise I think about using an arm-gnueabihf 64 bits compiler if it exists to use with QT 5.12 but im not sure it will work on my Banana Pi M2 zero on which I installed and updated ubuntu MATE 18.04 LTS

      uname -i

      gives

      armv7l

      getconf LONG_BIT

      gives

      32

      1 Reply Last reply
      0
      • SGaistS Offline
        SGaistS Offline
        SGaist
        Lifetime Qt Champion
        wrote on last edited by
        #4

        Did you saw this guide ?

        Interested in AI ? www.idiap.ch
        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

        1 Reply Last reply
        0
        • L Offline
          L Offline
          lo38230
          wrote on last edited by lo38230
          #5

          It seems to work.

          After the command make I get the error :

          ssl/qsslcertificate_openssl.cpp:63:30: error: invalid use of incomplete type ‘X509’ {aka ‘struct x509_st’}
          63 | return qHashBits(x509->sha1_hash, SHA_DIGEST_LENGTH, seed);

          I'm not sure if I have to install a previous compatible version of libssl1.0 for armhf.

          1 Reply Last reply
          0
          • SGaistS Offline
            SGaistS Offline
            SGaist
            Lifetime Qt Champion
            wrote on last edited by
            #6

            Which version of Qt are you building exactly now ?
            Which exact version of OpenSSL do you have at hand for your target ?

            Interested in AI ? www.idiap.ch
            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

            1 Reply Last reply
            0
            • L Offline
              L Offline
              lo38230
              wrote on last edited by
              #7

              It is qt-everywhere-opensource-src-5.5.1 according to your adviced website, I substituted gnueabi by gnueabihf.
              By default on my PC Ubuntu 20 64 bits is this single file called:
              /usr/bin/openssl : ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=4d2003d01494e5fd39293fdc8379c406d6b641b2, for GNU/Linux 3.2.0, stripped

              Otherwise I have this old version file used by an old system (not arm) with qt 4.8
              ... /platform/sysroot-target/usr/bin/openssl: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.23, with debug_info, not stripped

              A few month ago I compiled the operating system Ubuntu MATE image (BPI-M2P-bsp-4.4) for my BananaPi M2 zero. It was successful and it actually works. I remember I had to create
              /usr/lib/arm-liunx-gnueabihf and put some things into manually regarding the error messages. The compilation of Qt seems to use this folder too. In this folder there is
              /usr/lib/arm-linux-gnueabihf/openssl-1.0.0/engines
              with
              lib4758cca.so
              libaep.so
              libatalla.so
              libcapi.so
              libchil.so
              libcswift.so
              libgmp.so
              libgost.so
              libnuron.so
              libpadlock.so
              libsureware.so
              libubsec.so

              In the package for the os compilation there is

              ... /BPI-M2P-bsp-4.4/sunxi-pack/pctools/linux/openssl
              containing:
              create_toc0
              dragonsecboot
              genrsa
              rec
              rsa
              x509

              there is a sourcecode three in:
              ... /BPI-M2P-bsp-4.4/u-boot-sunxi/lib/openssl

              There is a library three in another operating system package (BPI-M2Z) that I could not compile
              ... /BPI-M2Z/sysroot/usr/lib/arm-linux-gnueabihf/openssl-1.0.0/
              a single library
              ... /BPI-M2Z/sysroot/usr/lib/arm-linux-gnueabihf/ruby/2.5.0/openssl.so
              some pyton sourcecodes in
              ... /BPI-M2Z/sysroot/usr/lib/python3/dist-packages/cryptography/hazmat/backends/openssl
              some ruby files in
              ... /BPI-M2Z/sysroot/usr/lib/ruby/2.5.0/openssl
              and the same three
              ... /BPI-M2Z-bsp/sunxi-pack/pctools/linux/openssl as in the BPI-M2P-bsp-4.4 package

              Perhaps I need to create a link to the os package libraries.

              I downloaded those packages:
              libssl1.0-dev_1.0.2u-1~deb9u1_armhf.deb
              libssl1.0.2-udeb_1.0.2u-1~deb9u1_armhf.udeb
              libssl1.0-dev_1.0.2n-1ubuntu5.3_armhf.deb
              but the installation fails due to dependancy.

              I downloaded
              openssl-1.0.2k.tar.gz
              which contains a configure executable, I didnt try to compile it at the moment.

              1 Reply Last reply
              0
              • SGaistS Offline
                SGaistS Offline
                SGaist
                Lifetime Qt Champion
                wrote on last edited by
                #8

                Just because the guide mentions 5.5.1, you shouldn't just go blindly with it. Use a recent version of Qt. This one is not supported anymore.

                Interested in AI ? www.idiap.ch
                Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                1 Reply Last reply
                1
                • L Offline
                  L Offline
                  lo38230
                  wrote on last edited by
                  #9

                  I downloaded from

                  https://ftp.osuosl.org/pub/blfs/conglomeration/qt5/

                  the package

                  qt-everywhere-src-5.14.2

                  containing a configure executable

                  I copied
                  /qtbase/mkspecs/linux-arm-gnueabi-g++/
                  to
                  /qtbase/mkspecs/linux-arm-gnueabihf-g++/
                  according to my architecture, and adapted qmake.conf wihth armgnueabi->armgnueabihf
                  The command line:
                  ./configure -release -opensource -xplatform linux-arm-gnueabihf-g++ -prefix /opt/qt5-arm -no-opengl
                  x11 option removed because not supported.
                  At the end of the long make there is an error
                  libz.so.1, required by /home/eric/qt-everywhere-src-5.14.2/qtbase/lib/libQt5Gui.so not found. I have it on my computer at several places:
                  /usr/lib/i386-linux-gnu/libz.so.1
                  /usr/lib/x86_64-linux-gnu/libz.so.1
                  /usr/lib32/libz.so.1
                  How do I specify wich to use?
                  Is it in the command line? in qmake.conf? in path? perform a ln -s?

                  1 Reply Last reply
                  0
                  • SGaistS Offline
                    SGaistS Offline
                    SGaist
                    Lifetime Qt Champion
                    wrote on last edited by
                    #10

                    It should be available from your device sysroot.

                    Interested in AI ? www.idiap.ch
                    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                    1 Reply Last reply
                    0
                    • L Offline
                      L Offline
                      lo38230
                      wrote on last edited by
                      #11

                      I solved this problem by adding
                      QMAKE_LIBS += -lz
                      in my qmake.conf.

                      But now I have :
                      sh: 1: python: not found
                      Project ERROR: Building QtQml requires Python.
                      make: *** [Makefile:340: module-qtdeclarative-make_first] Error 3

                      python is already installed on my computer.

                      1 Reply Last reply
                      0
                      • SGaistS Offline
                        SGaistS Offline
                        SGaist
                        Lifetime Qt Champion
                        wrote on last edited by
                        #12

                        Which version of Python ?

                        Interested in AI ? www.idiap.ch
                        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                        1 Reply Last reply
                        0
                        • L Offline
                          L Offline
                          lo38230
                          wrote on last edited by lo38230
                          #13

                          python3 -V

                          gives

                          Python 3.8.2

                          ...

                          ok solved by

                          sudo ln -s python3 python

                          in /usr/bin

                          ...

                          next error is:
                          Project ERROR: Unknown module(s) in QT: openglextensions
                          make[2]: *** [Makefile:96: sub-render-make_first-ordered] Error 3

                          1 Reply Last reply
                          0
                          • SGaistS Offline
                            SGaistS Offline
                            SGaist
                            Lifetime Qt Champion
                            wrote on last edited by
                            #14

                            QtQuick requires OpenGL but you disabled it.

                            Interested in AI ? www.idiap.ch
                            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                            1 Reply Last reply
                            1
                            • L Offline
                              L Offline
                              lo38230
                              wrote on last edited by
                              #15

                              Make for QT 5 arm successful
                              Make install successful

                              I create a new basic application Qt 5.14.2 Widgets. Ok With default kit.

                              When I select arm-linux-gnueabihf I have some compile errors:

                              /opt/qt5-arm/include/QtCore/qbasicatomic.h:61:4: error: #error "Qt requires C++11 support"

                              /opt/qt5-arm/include/QtCore/qbasicatomic.h:97:23: error: ‘QAtomicOpsSupport’ was not declared in this scope

                              /opt/qt5-arm/include/QtCore/qbasicatomic.h:99:14: error: ‘Ops’ has not been declared

                              /opt/qt5-arm/include/QtCore/qbasicatomic.h:238:13: error: ‘QAtomicOps’ does not name a type

                              /opt/qt5-arm/include/QtCore/qbasicatomic.h:97:51: error: ‘::IsSupported’ has not been declared

                              1 Reply Last reply
                              0
                              • SGaistS Offline
                                SGaistS Offline
                                SGaist
                                Lifetime Qt Champion
                                wrote on last edited by
                                #16

                                Did you properly create a kit using your cross-compiled Qt ?

                                Interested in AI ? www.idiap.ch
                                Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                1 Reply Last reply
                                0
                                • L Offline
                                  L Offline
                                  lo38230
                                  wrote on last edited by lo38230
                                  #17

                                  Yes , I added my cross compiled(I remember I had to remove the -no-c++11 of ./configure command because it was not recognized) QT Version Qt 5.14.2(qt5-arm) /opt/qt5-arm/bin/qmake in Qc Kits and it is accepted.
                                  I added the compilers with the package you give me:
                                  gcc Linaro
                                  /home/eric/gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux/bin/arm-linux-gnueabihf-gcc
                                  g++ Linaro
                                  /home/eric/gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux/bin/arm-linux-gnueabihf-g++
                                  I could not add the debugger arm-Debugger from your package
                                  /home/eric/gcc-linaro-arm-linux-gnueabihf-4.9-2014.07_linux/bin/arm-linux-gnueabihf-gdb
                                  It is not recognized by Qc. I selected GDB multiarch(/usr/bin/gdb-multiarch) which I already have.

                                  Perhaps I should have version 5.14 of compilers and debugger?

                                  As device I have generic Linux device, Qt mkspec is empty.
                                  How should I configure the separated device BananaPi M2 Zero connected trough Ethernet with address 192.168.1.110 to my development PC with Ubuntu Linux? Should I create something else as generic Linux Device?

                                  ...

                                  Problem solved by selecting most recent compilers.

                                  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