Deploy on BBB: cannot execute binary file: Exec format error
-
Hello to all!
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.I try to deploy any of example project on my BeagleBone Black board.
So when i compile my Application for Desktop QT 5.5.1, on ubuntu, it goes good,
but when i tried to upload my application on the Board, following https://www.youtube.com/watch?v=kP7uvOu9hoQ&t=525s, 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.When i choose right (in my mind) compiler arm-linux-gnueabi-gcc, an error "ompiler cannot produce code"
Please see screenshots (sorry for cyrillic)
i googled tons of pages, and still cannot deploy nothing on the board,
spend weeks trying to crosscompile my app for beaglebone black , please help me -
Image upload did not work, please use an external service, see https://forum.qt.io/topic/62615/how-to-insert-image-on-this-forum
-
Hi,
Something's not clear from your description, did you cross-compile Qt for your BBB ?
From what you wrote it looks like you first tried to run the x86 version of your application on your BBB and then you tried to compile your application with an ARM toolchain but still using your desktop version of Qt.
-
Hi,
Yes, i tried to crosscompile QT for my BBB,
First I tried to run the x86 version of my application on my BBB and then i tried to compile application with an ARM toolchain but still using my desktop version of Qt, and it naturally did not work. So i tried to configure my QT opensource 5.5.1 on host ubuntu for BBB, and when i selected arm-linux-gnueabi-gcc, an error appeared: "Compiler "Compiler BBB" (arm-linux-generic-elf-32bit) cannot produce code for profile QT "QT 5.5.1 GCC 32bit" (x86-linux-generic-elf-32bit)". By the way, BBB Device responded normally, i can see list of processes.
P.S. There is qt creator 4 installed on BBB, but i want develop project only on PC
-
i suppose i need to change qt profile from x86 to arm, but i can not find qmake file for arm
-
@Andrey-Shmelew How did you call configure?
-
after qt 5 install :
1 - added new kit
2 - added device type (generic Linux Device)
3 - added a device (linux device), ip address 192.168.7.2, port 22
4 - added GCC compiler, armv8l-linux-gnueabi-gthis step i can not do because can't find qmake file:
5 - added QT version with qmake file for arm -
@Andrey-Shmelew said in Deploy on BBB: cannot execute binary file: Exec format error:
added QT version with qmake file for arm
Well, you need Qt built for ARM. That means you need to download Qt source code, call configure with correct parameters and then make;make install. qmake will be built during compilation. When you have Qt build for ARM then you can build your app for ARM.
-
@jsulm
thanks,
but i have never compiled QT From source code, so will you provide me a good tutorial?
by the way, on this video https://youtu.be/eLr35wUrz6Q?t=248 the author just points qmake file -
@Andrey-Shmelew Apparently the author already has an ARM build.
Cross compilation is not an easy task. I don't have any tutorial.
But you can search on internet, here is one for RaspberryPi: https://wiki.qt.io/RaspberryPi_Beginners_Guide -
This post is deleted!
-
i have built qt for BBB as described in the link i posted in previous post and it finally works! I can deploy my QT project now. WOW!!! But not all projects. (sad)
Because of some reason apps that are built with qtquick does not start!
But there are a lot of videos with QtQuick running on BBB (for ex. https://www.youtube.com/watch?v=eDrBCzNSWaQ)
i think it happens because of absent of necessary drivers.
how can i start qtquick app on BBB,
could anybody help me with this problem? -
@Andrey-Shmelew As far as I know QtQuick requires OpenGL?
-
@Andrey-Shmelew Probably software rendering. But I don't know how to activate it. Maybe anybody else knows?
-
@jsulm
there is a Qt Quick 2D Renderer, that works instead OpnGL ES 2 on boards without GPU like BBB, seems to be good for me.
As described, i should use :
export QMLSCENE_DEVICE=softwarecontext
but i have no idea what does this string mean.
Any thoughts? -
@Andrey-Shmelew It defines environment variable QMLSCENE_DEVICE and assigns it "softwarecontext" as value. I guess QtQuick checks that variable and activates software rendering if it is set to "softwarecontext".
So, you first set this variable and then (in the same console) you start your application. -
mark as solved, please
-
@Andrey-Shmelew Sorry, it's your thread you should mark it as solved.