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.





  • 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_Page

    Note 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:

    1. http://www.angstrom-distribution.org/narcissus/
    2. http://www.angstrom-distribution.org/toolchains/

    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



  • 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?

    Now I'm downloading it... :-)



  • [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



  • [quote author="sbrandt" date="1276778208"]
    Because i686 is a 32bit intel processor

    [/quote]

    ok... don't hear to me... :-D



  • 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... :-)



  • Congrats!
    To start qt embedded apps, you need to pass "-qws" as a parameter to the first app you start, to initialise and start the internal qws display server.

    Sebastian



  • 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/184

    So 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:

    @
    QMAKE_CFLAGS_RELEASE = -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
    QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE

    include(../../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/lib

    QMAKE_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-strip

    load(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?



  • Hi all,

    I found that my problem with opengl in the beagleboard disappear with Qt 4.5.3-embedded .

    What do you think about?



  • 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



  • Have you tried with the last Qt version (4.7.1) ?
    I haven't that problem with the last Qt.



  • Hi:
    I get an image of Angstrom from Narnussis, which contains the tool chain. Now, I want to cross compile the Qt X11 with the tool chain.

    My qws/linux-arm-g++/qmake.conf file like this:

    qmake configuration for building with arm-linux-g++

    QMAKE_CFLAGS_RELEASE = -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
    QMAKE_CXXFLAGS_RELEASE = $$QMAKE_CFLAGS_RELEASE

    include(../../common/g++.conf)
    include(../../common/linux.conf)
    include(../../common/qws.conf)

    modifications to g++.conf

    QMAKE_CC = /home/shihaoliu/projects/Angstrom/usr/bin/arm-angstrom-linux-gnueabi-gcc
    QMAKE_CXX = /home/shihaoliu/projects/Angstrom/usr/bin/arm-angstrom-linux-gnueabi-g++
    QMAKE_LINK = /home/shihaoliu/projects/Angstrom/usr/bin/arm-angstrom-linux-gnueabi-g++
    QMAKE_LINK_SHLIB = /home/shihaoliu/projects/Angstrom/usr/bin/arm-angstrom-linux-gnueabi-g++

    modifications to linux.conf

    QMAKE_AR = /home/shihaoliu/projects/Angstrom/usr/bin/arm-angstrom-linux-gnueabi-ar cqs
    QMAKE_OBJCOPY = /home/shihaoliu/projects/Angstrom/usr/bin/arm-angstrom-linux-gnueabi-objcopy
    QMAKE_STRIP = /home/shihaoliu/projects/Angstrom/usr/bin/arm-angstrom-linux-gnueabi-strip

    load(qt_config)

    I get the messages: Basic XLib functionality test failed!
    You might need to modify the include and library search paths by editing
    QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in mkspecs/qws/linux-arm-g++.

    Could you give me some advice to solve this problem?
    Thanks a lot.

    Shihao Liu



  • [quote author="Luca" date="1291405350"]Have you tried with the last Qt version (4.7.1) ?
    I haven't that problem with the last Qt.[/quote]

    I don't remember how i had solved it.. But anyway - thnx for hint!


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.