Not Able to run Qt Application in BeagleBone Black with Qt 5.7



  • Hello,
    I have installed the latest version of QT 5.7 on Ubuntu 12.04 (64-bit) on PC.

    I have also installed the qt version (for qmake) 4.8.1 on Ubuntu PC.

    I have installed Cross-complier gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux on Ubuntu PC.

    But when i add upper specification on QT kits , qt gives following error.

    "The complier arm-linux-generic-elf-32bit can not produce a code for Qt Version 4.8.1(system) (x86-linux-generic-elf-64-bit)."

    can you help me to resove this issues?


  • Moderators

    @Milav You need Qt built using your cross compiler. You cannot use Qt x86 build on ARM. Build Qt with your cross compiler and use it then.



  • @jsulm how can i built Qt 5.7 using cross complier?

    can you please suggest me a steps, how to run application on BBB using qt5.7?

    i add path of complier,path of debugger, path of Qt Vesrion on build and run tab of options tool.


  • Moderators

    @Milav I cannot suggest you a step-by step instructions as I never cross compiled Qt for BBB.
    But you can take a look at this: https://wiki.qt.io/RaspberryPi_Beginners_Guide
    It is for RaspberryPi but it will be similar for BBB.
    You could also check whether there is already a Qt build for BBB available somewhere.



  • @jsulm , until now I am able to configure the QT 5.7.0.
    I cross compile the QT for BeagleBone Black. but when i run the simple application qt give following error..

    "stdin: is not a tty
    /home/debian/Helloworldapp: error while loading shared libraries: libQt5Widgets.so.5: cannot open shared object file: No such file or directory
    Application finished with exit code 127."

    how can i solve this error?

    Am i do wrong configuration?

    Is there a any QT package download on Beagle Bone Black?

    please suggest me?


  • Moderators

    @Milav Did you copied the Qt libs (like libQt5Widgets.so.5) together with your application to the target device?
    See here how to deploy a Qt application on Linux: http://doc.qt.io/qt-5/linux-deployment.html

    I don't know whether there is a Qt build for BBB, you should search a bit on the Internet.



  • @jsulm I can not get you and this link: http://doc.qt.io/qt-5/linux-deployment.html
    please explore me more....
    can add some Lib path in my qt project file. or i add something more on configure option.
    is this issues related to LD_LIBRARY_PATH ?
    please suggest me...


  • Moderators

    @Milav Please read the "Creating the Application Package" part of the link I sent you.
    There is a script you can use to start your application:

    #!/bin/sh
    appname=`basename $0 | sed s,\.sh$,,`
    
    dirname=`dirname $0`
    tmp="${dirname#?}"
    
    if [ "${dirname%$tmp}" != "/" ]; then
    dirname=$PWD/$dirname
    fi
    LD_LIBRARY_PATH=$dirname
    export LD_LIBRARY_PATH
    $dirname/$appname "$@"
    

    Put all needed Qt libraries in the same directory as your executable. In addition you will need some plugins, so create a subdirectory "plugins" and put there needed plugins.



  • @jsulm hello,

    The above error (error while loading shared libraries: libQt5Widgets.so.5) is solved. thanks a lot..
    I just copy whole install directory (/usr/local/QT5.7.0) to Beagle Bone Black (/usr/local) path.

    but when I again build the qt project, it will give following error.

    stdin: is not a tty
    This application failed to start because it could not find or load the Qt platform plugin "eglfs"
    in "".

    Available platform plugins are: linuxfb, minimal, offscreen.

    Reinstalling the application may fix this problem.
    bash: line 1: 2072 Aborted DISPLAY=':0.0' QWS_MOUSE_PROTO='LinuxInput:/dev/input/event1' /home/debian/Helloworldapp -qws
    Application finished with exit code 134.

    can you help me to resove this issues?


  • Moderators

    @Milav said in Not Able to run Qt Application in BeagleBone Black with Qt 5.7:

    eglfs

    Does your Qt build have the eglfs plug-in? Plug-ins are in plugin subdirectory.



  • @jsulm no, there is not eglfs.so library file in installation directory(/usr/local/Qt5.7.0/plugnis/platforms/) of qt.

    when i run application manually with ./App - platform linuxfb it is run but it gives following error

    QFontDatabase: Cannot find font directory /usr/local/Qt-5.7.0/lib/fonts.
    Note that Qt no longer ships fonts. Deploy some (from http://dejavu-fonts.org for example) or switch to fontconfig.
    QFontDatabase: Cannot find font directory /usr/local/Qt-5.7.0/lib/fonts.
    Note that Qt no longer ships fonts. Deploy some (from http://dejavu-fonts.org for example) or switch to fontconfig.
    QFontDatabase: Cannot find font directory /usr/local/Qt-5.7.0/lib/fonts.
    Note that Qt no longer ships fonts. Deploy some (from http://dejavu-fonts.org for example) or switch to fontconfig.
    QFontDatabase: Cannot find font directory /usr/local/Qt-5.7.0/lib/fonts.
    Note that Qt no longer ships fonts. Deploy some (from http://dejavu-fonts.org for example) or switch to fontconfig.

    which is needed platform for Beagle bone black debian Os? as per your knowledge?

    what is the next step? to resolve this error?


  • Moderators

    @Milav It looks like you need to provide the fonts as well, they should be located in /usr/local/Qt-5.7.0/lib/fonts according the warning. So copy them from your host Qt to /usr/local/Qt-5.7.0/lib/fonts on your target device.



  • @jsulm ..Hello,

    I found inbuilt Fonts Directory of Qt5.7.0, but the result of that find is null.
    than I download the fontconfig library (fontconfig-2.12.1)from external sources.
    Than compile that library, and than it shows the fonts lib. in /usr/share/fonts .
    and than copy this folder to target device in /usr/local/Qt5.7.0/lib/ path..
    after doing this the above error was removed..but still i can not see the font in application.
    what is the problem?


  • Moderators

    @Milav said in Not Able to run Qt Application in BeagleBone Black with Qt 5.7:

    i can not see the font in application

    What do you mean? You cannot see any text in your application? Or you cannot select one of the fonts?



  • @jsulm
    i cannot see any text in my application.....


  • Moderators

    @Milav Which font does your application use? Is this font in /usr/local/Qt5.7.0/lib ?



  • @jsulm
    I use "DejaVu Sans" font use in application.

    and these fonts is available in this path:-
    /usr/local/Qt-5.7.0/lib/fonts/truetype/ttf-dejavu

    in that directroy ,
    DejaVuSans-Bold.ttf DejaVuSansMono-Bold.ttf DejaVuSansMono.ttf DejaVuSans.ttf DejaVuSerif-Bold.ttf DejaVuSerif.ttf

    files are stored.


  • Moderators

    @Milav Try to print the content of the list returned by http://doc.qt.io/qt-5/qfontdatabase.html#applicationFontFamilies to the standard output and see what you get.



  • @jsulm
    i will try http://doc.qt.io/qt-5/qfontdatabase.html#applicationFontFamilies , but still i can not see the text in qt application on Beaglebone black gui window...

    still i miss some package of fonts in Beaglebone black.

    can anyone suggest me for this package.?



  • Hello @jsulm

    I just found that when i write the following command in build directory that enable the fontconfig , and XCB package....

    #./configure -prefix /usr/local/qt_install

    but when i use following command in build directory that disable the fontconfig and xcb package.

    #./configure -prefix /usr/local/qt_install -xplatform linux-arm-gnueabihf -device linux-beagleboard-g++ -device-option CROSS_COMPILE=/opt/gcc-arm-linux/bin/arm-linux-gnueabihf-

    so where is the problem?


  • Moderators

    @Milav Most probably your sysroot does not contain header files and libraries for fontconfig and xcb. You can see what is missing by adding -v parameter to configure.



  • Hello ,

    I added -sysroot in configuration command so that all header and libraries are to be added.

    I used external SD card as a sysroot path. In SD card i use same image version as in target device image.

    but this give me a following error...

    Project ERROR: No module claims plugin type 'scenegraph'
    make[4]: *** [sub-softwarecontext-make_first] Error 3
    make[4]: Leaving directory /root/qt_build_23nov/qtdeclarative-render2d/src/plugins/scenegraph' make[3]: *** [sub-scenegraph-make_first] Error 2 make[3]: Leaving directory/root/qt_build_23nov/qtdeclarative-render2d/src/plugins'
    make[2]: *** [sub-plugins-make_first] Error 2
    make[2]: Leaving directory /root/qt_build_23nov/qtdeclarative-render2d/src' make[1]: *** [sub-src-make_first] Error 2 make[1]: Leaving directory/root/qt_build_23nov/qtdeclarative-render2d'
    make: *** [module-qtdeclarative-render2d-make_first] Error 2

    so where is the problem?



  • Hello @jsulm ,

    I resolved the above error by adding the -opengl option in configure option.

    Now I build the Qt 5.7.0 for BeagleBone Black.

    but when I run the application for BBB, qt gives following error..

    stdin: is not a tty
    No protocol specified
    QXcbConnection: Could not connect to display :0.0
    bash: line 1: 1853 Aborted DISPLAY=':0.0' QWS_MOUSE_PROTO='LinuxInput:/dev/input/event1' /home/debian/QTapp -qws
    Application finished with exit code 134.

    so where is the problem?


  • Moderators

    @Milav Are you running a X server on your device?



  • Hello to all!
    I have exactly the same problem as above.
    Host machine: VirtualBox Ubuntu 14.04 32 bit with Qt 5.5.1 installed on it
    Device: BeagleBone Black with debian 8.4 on it.

    So when i compile my Application for Desktop QT 5.5.1, it goes good,
    but when i tried to upload my application on the Board, qt says:
    stdin: is not a tty
    bash: /home/root/coding: cannot execute binary file: Exec format error
    Application ended with error code 126 (Приложение завершилось с кодом 126).
    i used for this gcc (x86 32bit) compiler. i know that it's wrong compiler.

    alt text

    When i choose right (in my mind) compiler arm-linux-gnueabi-gcc, an error "ompiler cannot produce code"

    alt text

    Please see screenshots (sorry for cyrillic)

    I am tying to crosscompile my app for beaglebone black for a weeks, please help me



  • @Andrey-Shmelew

    you may be use wrong complier for the beagle bone black...

    The host and Target specification are different from your specification.

    I have 64 BIT bit Ubuntu on VMware and qt 5.7.0 is installed on that pc.
    and i have Beagle Bone Black with debian 7.11 on it.

    But i think cross-compiler toolchain is same for both of us...
    so you can try with gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux.tar.xz version.

    and please check that you installed the sources at the time of installation.

    Let me know if any progress occur..



  • @jsulm

    i dont know...

    the LCD cape is connected on the BeagleBone black.

    is this run on X-server?


  • Moderators

    @Andrey-Shmelew said in Not Able to run Qt Application in BeagleBone Black with Qt 5.7:

    bash: /home/root/coding: cannot execute binary file: Exec format error

    Sorry, your problem is completely different"!
    Please open a new thread.


  • Moderators

    @Milav What system is running on your device? I never used BeagleBone Black, so I don't know what it uses.



  • @Milav said in Not Able to run Qt Application in BeagleBone Black with Qt 5.7:

    Thanks for answer!
    i have no idea how to install cross compiler gcc-linaro-arm-linux-gnueabihf-4.8 and how to use it.
    I suppose it should be installed on my Ubuntu on virtual box?
    it should be installed by "sudo apt-get install gcc-linaro-arm-linux-gnueabihf " or something like this?

    to jslim: on BBB i have Debian 8 Image 2016-05-13

    I am very appreciate for help because have a very tight time period for complete deploy my QT project on BBB.



  • @jsulm

    on target device it installed Debian 7.11 Version.


  • Moderators

    @Milav How is it configured? Do you have graphics there? Did you test any GUI applications?



  • @jsulm

    yes , tried gui application on BBB. it running fine....

    this Version is by default arrive when i purchase BBB.



  • @Andrey-Shmelew

    you can download this version tool chain from linaro site.
    just download that tool chain and extract it in known path.(like...in /opt/...) folder.

    this is used when you set the complier path at time of qt creator configure..


  • Moderators

    @Milav What does

    ps ax | grep Xorg
    

    print out on your device?



  • @jsulm said in Not Able to run Qt Application in BeagleBone Black with Qt 5.7:

    ps ax | grep Xorg

    the output is....
    17946 pts/1 S+ 0:00 grep Xorg


  • Moderators

    @Milav Looks like there is no X server. You should check the documentation to find out what is used: wayland, frame buffer, ...?



  • @Milav
    sorry but i can not find gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux.tar.xz, could you please give me a download link.





  • @jsulm

    Thanks man...for support

    The application is run with the -platform linuxfb option.

    Thank You Very much.



  • to solve below error :
    QFontDatabase: Cannot find font directory /usr/local/qt5pi/lib/fonts.
    Note that Qt no longer ships fonts. Deploy some (from http://dejavu-fonts.org for example) or switch to fontconfig.
    QFontDatabase: Cannot find font directory /usr/local/qt5pi/lib/fonts.
    Note that Qt no longer ships fonts. Deploy some (from http://dejavu-fonts.org for example) or switch to fontconfig.
    QFontDatabase: Cannot find font directory /usr/local/qt5pi/lib/fonts.
    Note that Qt no longer ships fonts. Deploy some (from http://dejavu-fonts.org for example) or switch to fontconfig.
    QFontDatabase: Cannot find font directory /usr/local/qt5pi/lib/fonts.
    Note that Qt no longer ships fonts. Deploy some (from http://dejavu-fonts.org for example) or switch to fontconfig.

    just find fonts directory on your target and copy them without subdirectory in this /usr/local/qt5pi/lib/fonts for example i copied dejavu fonts file in this directory


Log in to reply