Qt && BeagleBoard
-
Hi all,
I'm trying to develop some test application for beagleboard but I didn't found how to install the tool-chain in my pc to cross-compile for beagleboard.
I installed the last Angstrom image into an SD card and it boot correctly. (I followed this "http://elinux.org/BeagleBoardBeginners(http://elinux.org/BeagleBoardBeginners)":http://elinux.org/BeagleBoardBeginners).Now, how do I must proceed to compile and use QT4-4.6.3 in beagleboard?
I didn't found guide or how-to to do this...Can you help me?
Thanks.
-
You should probably start with this blog post:
"http://labs.trolltech.com/blogs/2009/11/20/building-qt-to-make-use-of-the-beagle-boards-sgx-gpu/(http://labs.trolltech.com/blogs/2009/11/20/building-qt-to-make-use-of-the-beagle-boards-sgx-gpu/)":http://labs.trolltech.com/blogs/2009/11/20/building-qt-to-make-use-of-the-beagle-boards-sgx-gpu/
-
The usual way ... you need a complete cross compilation and development environment. So, have a look at the openembedded environment, and compile the angstrom distribution yourself on it.
http://elinux.org/BeagleBoard#Development_environments
http://elinux.org/BeagleBoardOpenEmbeddedDevelopment
http://elinux.org/BeagleBoardAndOpenEmbeddedGit
http://wiki.openembedded.net/index.php/Main_PageNote that OE (openembedded) may need ~20GB of disk space for archives, compilation, image generation, etc.
Concerning qt, this is the X11 version, then, not the embedded version.
Good look,
Sebastian -
[quote author="sbrandt" date="1276635692"]
Note that OE (openembedded) may need ~20GB of disk space for archives, compilation, image generation, etc.
[/quote]20GB??? I need e new disk! :-)
I downloaded Angstrom from "here(http://www.angstrom-distribution.org/demo/beagleboard/)":http://www.angstrom-distribution.org/demo/beagleboard/ .
Is there a way to find the environment they used to build it?When I used another board (NGW100) with buildroot they also supplied the sdk.
-
[quote author="Luca" date="1276709373"]
I downloaded Angstrom from "here(http://www.angstrom-distribution.org/demo/beagleboard/)":http://www.angstrom-distribution.org/demo/beagleboard/ .
Is there a way to find the environment they used to build it?When I used another board (NGW100) with buildroot they also supplied the sdk.[/quote]
Yes, Openembedded …
I know, the initial start with developing on ngw100 is a bit easier. Main reason - the default ngw-image has a few megs, while on a beagle, you have a complete distribution with package manager, X11, mplayer, etc. Angstrom-Demo is 275M, and to compile it you need ... well ... the complete build env.
Just start with openembedded, configure for beagle and angstrom, and try to compile something simple, like nano. If that works, you already have the compiler and all. Then, you can try qt ...Concerning qt, IIRR, oe/angstrom compiles qt several times, you need it once native for the tools (moc, qmake, etc), and then you have the embedded and the x11-free variant. I'm not sure what version is current in OE, now, I updated to 4.5.3 some time ago. Oh, I use the x11 version b/c I want to run more stuff than just qt apps ....
Have fun,
Sebastian -
Thanks for answer...
I found two alternative solution that I haven't tried:
Solution 1 allow to obtain a pre-built system and an sdk while solution 2 allow to download the tool-chain (but there isn't 32bit linux version).
I'll try both solutions and I'll tell you...
-
Hi!
Yeah, there is the possibility of creating tool chains with openembedded ... never tried it.
The second link seems to be really current, even, with 4.6.2. It's the embedded version, though, not the x11 .. so it will probably collide with an x11 installed/running on the beagle, unless using qvfb ...There is angstrom-2010.4-test-20100422-i686-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.2.tar.bz2 which is linux 32bit ...
Thanks, should keep the two links in mind for when I start transferring some of my knowledge to the rest of the company ;)
Yours,
Sebastian -
[quote author="Luca" date="1276778071"]why do you say angstrom-2010.4-test-20100422-i686-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.2.tar.bz2 is for 32 bit?[/quote]
Hi!
Because i686 is a 32bit intel processor?
buildhost i686-linux, target armv7a-linux-gnueabi (beagleboard)Sebastian
-
Ok, I downloaded and installed as said in:
I compiled a very simple main.cpp:
@
#include <QtGui/QApplication>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
qDebug()<< "hello world";
return a.exec();
}
@but I get:
@
root@beagleboard:~#
./example
QWSSocket::connectToLocalFile could not connect:: No such file or directory
QWSSocket::connectToLocalFile could not connect:: No such file or directory
QWSSocket::connectToLocalFile could not connect:: No such file or directory
QWSSocket::connectToLocalFile could not connect:: No such file or directory
QWSSocket::connectToLocalFile could not connect:: No such file or directory
QWSSocket::connectToLocalFile could not connect:: No such file or directory
No Qt for Embedded Linux server appears to be running.
@I think this is the right way but I must solve some problem... :-)
-
Ok, I'll try tomorrow, my beagleboard is now at office and I'm at home... :-)
With NGW100 (buildroot) "-qws" wasn't required but I think it was because there is no display and I always developed console application.
If I'll develop a working qt application for beagleboard, I'll write a wiki... ;-)
-
Finally I compiled QT successfully with Angstrom downloaded from both site:
http://www.angstrom-distribution.org/narcissus/
http://www.angstrom-distribution.org/demo/beagleboard/
Probably tomorrow I'll explain how I've done...Now I'm interested in using opengl but I read the link posted by jbarron and it seems complicated because it require to build an Angstrom.
Why doesn't Angstrom put the SGX driver in the image they supply?
With the Angstrom sdk I downloaded, if I execute:
@./configure -opensource -confirm-license -no-qt3support -release -nomake examples -nomake demos -static -embedded arm -little-endian -xplatform qws/linux-arm-g++@
I get:
@
...
...
OpenGL support ...... no
EGL support ......... yes <EGL/egl.h>
OpenVG support ...... no
...
...
@so it only detect EGL.
-
Now I read in QT documentation the following sentence:
[quote]Qt for Embedded Linux provides support for integrating OpenGL ES for drawing into a QGLWidget. The current implementation supports OpenGL and 2D painting within a QGLWidget. Using OpenGL to accelerate regular widgets and compositing top-level windows with OpenGL are not currently supported.[/quote]So I think that I don't need OpenGL integration for my application until I don't use QGLWidget...
-
Guys, I think we need to put this info on a Wiki. Any takers on doing this?
I wanted to do it here (I actually cross-compile Qt to QNX), but my method is outdated now that Qt Creator is available: http://developer.qt.nokia.com/wiki/Using_Qt_Creator_for_cross-compiling_Qt_applications_from_Windows_to_UNIX-like_OSs/edit/revision/184So feel free to modify that that page. I'm sure many people will find it useful.
-
Hi all,
I'm continuing in try to compile qt4 with opengl support for beagleboard.
I'm at this point:
- I downloaded angstrom image and sdk from : http://www.angstrom-distribution.org/narcissus/ where I built the image with all SGX part.
- get the qt4-4.6.3 source
- edited the mkspecs/qws/linux-arm-g++/qmake.conf as needed:
@
QMAKE_CFLAGS_RELEASE = -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASEinclude(../../common/g++.conf)
include(../../common/linux.conf)
include(../../common/qws.conf)QMAKE_CC = /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-gcc
QMAKE_CXX = /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++
QMAKE_LINK = /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++
QMAKE_LINK_SHLIB = /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++#QMAKE_INCDIR = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/include
#QMAKE_LIBDIR = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/libQMAKE_AR = /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-objcopy
QMAKE_STRIP = /usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-stripload(qt_config)
@- configured qt with:
@
./configure -opensource -confirm-license -no-qt3support -release -nomake examples -nomake demos -embedded arm -little-endian -xplatform qws/linux-arm-g++ -prefix /opt/qt4-4.6.3-beagle-shared-vnc -qt-gfx-vnc -opengl
@ - compiled with "make"
while compiling I get an error:
@
/usr/local/angstrom/arm/bin/arm-angstrom-linux-gnueabi-g++ -c -pipe -fno-exceptions -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp -O2 -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT -fPIC -DQT_SHARED -DQT_BUILD_OPENGL_LIB -DQT_NO_USING_NAMESPACE -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_NO_FREETYPE -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I../../mkspecs/qws/linux-arm-g++ -I. -I../../include/QtCore -I../../include/QtGui -I../../include -I../../include/QtOpenGL -I.rcc/release-shared-emb-arm -I../3rdparty/harfbuzz/src -I/usr/include -I.moc/release-shared-emb-arm -I/usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/include -o .obj/release-shared-emb-arm/qgl.o qgl.cpp
In file included from ../../include/QtCore/qurl.h:1,
from ../../include/QtGui/private/../../../src/gui/text/qtextdocument_p.h:69,
from ../../include/QtGui/private/qtextdocument_p.h:1,
from ../../include/QtGui/private/../../../src/gui/text/qtextengine_p.h:70,
from ../../include/QtGui/private/qtextengine_p.h:1,
from ../../include/QtGui/private/../../../src/gui/text/qfontengine_p.h:60,
from ../../include/QtGui/private/qfontengine_p.h:1,
from gl2paintengineex/qpaintengineex_opengl2_p.h:63,
from qgl.cpp:71:
../../include/QtCore/../../src/corelib/io/qurl.h:69: error: expected identifier before numeric constant
../../include/QtCore/../../src/corelib/io/qurl.h:69: error: expected `}’ before numeric constant
../../include/QtCore/../../src/corelib/io/qurl.h:69: error: expected unqualified-id before numeric constant
../../include/QtCore/../../src/corelib/io/qurl.h:81: error: ‘FormattingOption’ was not declared in this scope
../../include/QtCore/../../src/corelib/io/qurl.h:81: error: template argument 1 is invalid
../../include/QtCore/../../src/corelib/io/qurl.h:81: error: invalid type in declaration before ‘;’ token
../../include/QtCore/../../src/corelib/io/qurl.h:83: error: expected unqualified-id before ‘)’ token
../../include/QtCore/../../src/corelib/io/qurl.h:87: error: expected unqualified-id before ‘const’
….
….
@it seems like if there are some defines (from X11 external header) that causes the error.
How can I solve the problem?
-
I have exact problem as you. It seems to be a problem with "None" variable but don't know, how to fix it.
My configure args: -embedded arm -xplatform qws/linux-arm-g++ -dbus -confirm-license -release -qt-gfx-transformed -qt-libjpeg -openssl-linked -phonon-backend -opengl es2 -plugin-gfx-simplegl -no-qt3support -nomake examples -nomake demos -opensource -DQT_QWS_CLIENTBLIT -DQT_NO_QWS_CURSOR