Qt World Summit: Register Today!

Add plugins to embedded system [solved]

  • Im fairly new to embedded programming and Qt but i would like to give it a try.

    So I did some research on the internet for the BeagleBone Black:

    • install qt4-embedded on device
    • download Toolchain from Angstrom (with qt support)
    • install Qt-Creator and set it up to use Toolchain to compile

    So far that worked quite well and i already have a GUI running in -qws mode, but i struggle with additional plugins (i.e. gif support). I found that you have to set -qt-libgif when configuring Qt (so I assume that this was not set when the Toolchain got compiled). Also QMovie::supportedFormats() returns an empty list. The funny thing is, jpeg works just fine (so I guess they used this flag).

    So I downloaded qt-everywhere and recompiled qt with flags for third party libraries and copied the whole plugin folder into the executeable path on my BBB. (as somebody recommeded this)

    I also added the library path to QApplication but nothing seems to work.
    When i search for files named qt* on my BBB I can find things like "qt4-embedded-plugin-imageformat-jpeg.control" and "qt4-embedded-plugin-imageformat-jpeg.list" but nothing for gif (except the libqgif.so I copied with the plugin folder).

    Anybody can give me a hint on what I'm missing or did wrong?! :)

  • i wanted to add that i also tried to copy the imageformats folder only and add a.addLibraryPath("/home/imageformats/"); to the main as suggested in another thread here!

  • Lifetime Qt Champion

    Hi and welcome to devnet,

    You maybe using two different Qt versions between the one you compiled and the one provided with the BBB. What version of Qt are you using on the board ? How did you install it ?

  • Hi, thanks for your response.

    On my BBB i installed via "opkg install qt4-embedded" (v4.8.1), so those are binaries provided by Angstrom. But my toolchain has v4.6.3 in it. I then compiled "qt-everywhere-opensource-src-4.8.1" for BBB to get the libqgif.so for the imageformats folder.

    How should i generally approach this? Qt in my toolchain (also provided by Angstrom) does not have gif support enabled (i can not find any gif libraries but only jpeg).

    I guess the best way would probably to build qt myself and add it to a blank Angstrom toolchain and my BBB.

    So please correct me if i'm wrong: couldn't i just run ./configure my qt with -prefix /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/usr/qt4.8.1/ then "make" and "make install" so it will install it in my toolchain. Later then i do the same for my BBB with -prefix /usr/qt4.8.1/ and again "make" then copy it to my BBB and run "make install"
    Or how else would you do it?

    Like I said I don't have any experience with Embedded Systems so I seem to struggle with some main routines here.
    I'm thankful for every information!

  • Lifetime Qt Champion

    You should first check what packages are available with Angstrom. I'm pretty surprised that the image formats are missing.

    Otherwise, yes, you can cross-compile Qt using the Angstrom toolchain

  • So i finally found time to continue my project and ended up compiling Qt myself. Everything works fine now.
    Thanks again for you help SGaist!

    A few points that might help someone:

    • newer Angstrom kernel seem to have a driver bug (for the display cape from 4DSystems or CircuitCo) that causes weird cursor jitter (>2013.06.20)

    • since the Angstrom toolchain downloads are down, you can download some from
      use one with Qt (even if you build it yourself) since it includes the headers for tslib you need for touch screen calibration

    • there is a good tutorial on how to build Qt for BBB and set up a cross compilation environment (don't forget -qt-mouse-tslib when running ./configure)

    • use environment variable QWS_MOUSE_PROTO=tslib:/dev/input/touchscreen0 to enable touch screen in Qt (calibrate it by running ts_calibrate on BBB)

    Hope this will help someone someday! :)

  • Lifetime Qt Champion

    Nice ! Thanks for sharing !

    You can also update the thread title prepending [solved] so other forum users may know a solution has been found :)

Log in to reply