Building QT for i.MX6

Showing results for 
Show  only  | Search instead for 
Did you mean: 

Building QT for i.MX6

No ratings

Building QT for i.MX6

The build is verified on prebuilt rootfs(based on LTIB) which can be downloaded from

EGL uses framebuffer backend -> ->


1. Download the git respository for qt4.8:

$ git clone qt
$ cd qt

Let us consider this as <QTDir>

2. Create /tftpboot and point your target fileystem. As like

$ mkdir -p /tftpboot

$ cd /tftpboot

$ ln -s $(ROOTFFS) rootfs

TBD:Need to work on this to use sysroot option

3. Create a build directory to install for the qt4 packages. This directory can be  in any location. For example,

$ mkdir /opt/qt4
$ sudo chown -R <username> /opt/qt4

Let us consider the the <installdir> as /opt/qt4

4. Extract the attached mkspecs(linux-imx6-g++.tar.gz) to  <QTDir>/mkspecs/qws/

5. Apply the attached cd 0001-add-i.MX6-EGL-support.patch attached to enable egl support for i.MX6

$ cd <QTDir>
$ patch -p1<0001-add-i.MX6-EGL-support.patch

6. Export CROSS-COMPILE location path to PATH

$ export PATH=$PATH:/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/

7. Enter to the <QTDir>. Do configure. You can select the options as you like. Here is an example

$ cd <QTDir>

$ ./configure -qpa -arch arm -xplatform qws/linux-imx6-g++ -no-largefile -no-accessibility \
-opensource -verbose -system-libpng -system-libjpeg -system-freetype -fast -opengl es2 -egl -confirm-license \
-qt-zlib  -qt-libpng  -no-webkit -no-multimedia \
-make examples -make demos \
-release -make libs -exceptions -no-qt3support -prefix <installdir>

8. When the configure summary is shown make sure the Qt has OpenGL ES 2.0 support. Do build

$ make
$ make install

9. Now need to build eglfs plugin

$ cd <QTDir>/src/plugins/platforms/eglfs
$ make
$ make install

    Now the eglfs will be installed to the QT Install directory.

10. By now all required QT files are in <install directory>

11. Copy the install directory to target filesystem

$ cp -rf /opt/qt4 /tftpboot/rootfs/opt/.

12. Running Qt apps on target
    - Boot the target either with NFS or SD Image
    - Ensure that folder <installdir> is copied on target file system at “/usr/local”.
    - Launch application using

$ cd /opt/qt4/examples/opengl/hellogl_es2
$ ./hellogl_es2 -platform eglfs


These steps are performed on the host

1. Download the git respository for qt5:

$ git clone git:// qt5

$ cd qt5

    Let us consider this as <QTDir>

2. Create a build directory to install for the qt5 packages. This directory can be  in any loctation. For example,

$ sudo mkdir /opt/qt5

$ sudo chown -R <username> /opt/qt5

Let us consider the the installdir as /opt/qt5

3. Enter the Qt5 directory and run the init-repository script to download all the source code for
   Qt5. To download all the source code will take about an hour.

$ ./init-repository

Update:  In the latest Qt5 release the webkit library is included by default and there are some issues trying to compile it.

use the next line to avoid problems if not desired to use webkit.

$ ./init-repository --no-webkit

4. From the following path

$ gedit qtbase/mkspecs/devices/linux-imx6-g++/qmake.conf

5. At the top of the qmake.conf, there is a configure line. Copy and paste the configure line into a text file located
   in your build build directory. Edit the configure line to find your toolchain and filesystem. Also make sure to
   include the options -no-pch, -no-opengl, -opengl es2, Here is an example of
   a configure line.

Update: In the latest Qt5 stable, the option to compile the examples/demos is -compile-examples, instead of -make examples -make demos

If you are running into problems with webkit,  use the option -no-icu, this will disable the webkit.

$ cd <QTDir>
$ cd qtbase
$ ./configure -v -opensource -confirm-license -no-pch -no-xcb -no-opengl -opengl es2  \
        -make libs -device imx6 \
       -compile-examples \
      -device-option CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi- \
       -sysroot <rootfs> -no-gcc-sysroot \
      -prefix <installdir>

7. Make the textfile that has the configure line and executable and run it. When the configure summary is shown make sure the Qt5 has openGL ES 2.0 support. Do build

$ make
$ sudo make install

   When Qt5 has finished building, Qt5 will be installed in two places:

           1. <location of rootfs>/<installdir>
           2. <HOST Machine>/<install dir>

This is good because now all the libraries and binaries for Qt5 are installed on the host and the target filesystem. Therefore, the target already has all the libraries and  binaries needed to run Qt5.

8. Also need to build qtjsbackend and qtdeclarative.

$ cd <location to Qt5 git>
$ cd qtjsbackend
$ ../qtbase/bin/qmake -r
$ make && sudo make install

$ cd <location to Qt5 git>
$ cd qtdeclarative
$ ../qtbase/bin/qmake -r
$ make && sudo sudo make install

9. Running Qt apps on target
    - Boot the target either with NFS or SD Image
    - Ensure that folder <installdir> is copied on target file system at “/usr/local”.
    - Launch application using

$ cd /opt/qt5/examples/opengl/hellowindow
$ ./hellowindow -platform eglfs

On the target file system, the location of target libaries and includes may present in arm-linux-gnueabi directory. Make sure to create soflinks to QT can find. For example

$ cd $(ROOTFS)/usr/lib
$ ln -s arm-linux-gnueabi/

While building QT5, you may see a build error that is not found. This might be some problem to be addressed in QT. Workaround is to
copy all the binaries to correct path as like this

$ cp  <ROOTFS>/<installdir>/lib/* <HOST Machine>/<installdir>/.

What is coming up next:
1. QT on X is already available on Yocto filesystem. Steps to enable GPU Acceleration TDB.
2. QT with Wayland support.

Labels (1)

Works like a charm. Thank you!

My only issue is that my mouse or keyboard doesn't work when running with eglfs. does eglfs support user input?

After running the configure command,  in the summary of supported features, OpenVG appears as not supported, is this normal or it means some library is missing on my side?



But I can not build qtdeclarative…

../qtbase/bin/qmake -r

Project WARNING: Unknown build part(s): demos

Reading /home/hp-lablinux/ltib_imx6solo_duallite/qt5/qtdeclarative/src/

Reading /home/hp-lablinux/ltib_imx6solo_duallite/qt5/qtdeclarative/src/qml/

Project MESSAGE: /home/hp-lablinux/ltib_imx6solo_duallite/qt5/qtbase/bin/syncqt -module QtQml -version 5.1.0 -outdir /home/hp-lablinux/ltib_imx6solo_duallite/qt5/qtdeclarative /home/hp-lablinux/ltib_imx6solo_duallite/qt5/qtdeclarative

<srcbase> = /home/hp-lablinux/ltib_imx6solo_duallite/qt5/qtdeclarative

<outbase> = /home/hp-lablinux/ltib_imx6solo_duallite/qt5/qtdeclarative

Project ERROR: Unknown module(s) in QT_PRIVATE: v8

Not sure what the problem is? I have looked around but not find any useful hints. Do you have an idea?


“modify this file qtbase/bin/qt.conf

and add the correct prefix, the one given on cofigure



I follow the instruction as above to build QT5,

but I found the configure command is incorrect to my environment.

so I change the configure command as below:

./configure -v -opensource -confirm-license -system-sqlite -no-sse2 -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 -no-avx -no-xcb -no-sql-mysql -no-sql-db2 -no-sql-ibase -no-sql-oci -no-sql-odbc -no-sql-tds -no-sql-sqlite2  -no-pch -no-opengl -opengl es2  -wayland -make libs -device imx6 -make examples -make demos -device-option CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi- -sysroot /media/new-version/build/L3.0.35_4.0.0/ltib/rootfs -no-gcc-sysroot -prefix /usr/local/Trolltech/Qt5-imx6-1

It pass but I got problem when I run 'make'

/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi-g++ -Wl,-rpath-link,/media/new-version/build/L3.0.35_4.0.0/ltib/rootfs/usr/lib -Wl,--no-undefined -Wl,-O1 -Wl,-rpath,/usr/local/Qt-5.0.0/Qt5-imx6-1/lib -shared -o .obj/release-shared/main.o .obj/release-shared/qsql_mysql.o .obj/release-shared/moc_qsql_mysql_p.o  -L/media/new-version/build/L3.0.35_4.0.0/ltib/rootfs/usr/lib -L/usr/lib -Wl,-Bsymbolic-functions -rdynamic -L/usr/lib/mysql -lmysqlclient_r -L/media/new-version/build/ltib/rpm/BUILD/qt5/qtbase/lib -lQt5Sql -lQt5Core -lpthread 

/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/../lib/gcc/arm-fsl-linux-gnueabi/4.6.2/../../../../arm-fsl-linux-gnueabi/bin/ld: skipping incompatible /usr/lib/libpthread_nonshared.a when searching for libpthread_nonshared.a

/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/../lib/gcc/arm-fsl-linux-gnueabi/4.6.2/../../../../arm-fsl-linux-gnueabi/bin/ld: skipping incompatible /usr/lib/libc_nonshared.a when searching for libc_nonshared.a

.obj/release-shared/qsql_mysql.o: In function `QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&)':

qsql_mysql.cpp:(.text+0x2cb4): undefined reference to `mysql_set_character_set'

collect2: ld returned 1 exit status

I have cancel the option of the mysql when configure the QT5!

How to solve this problem?


Here's my configure script:


./configure -v -opensource -confirm-license -no-pch -no-xcb -opengl es2 \

  -make libs -device imx6 \

  -make examples -make demos \

  -device-option CROSS_COMPILE=/home/squirem/Desktop/poky-dylan-9.0.0/build/tmp/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-poky-linux-gnueabi/arm-poky-linux-gnueabi- \

  -sysroot /home/squirem/Desktop/poky-dylan-9.0.0/build/tmp/deploy/images/mountpoint \

  -prefix /opt/qt5

Notice I removed the -no-opengl and -no-gcc-sysroot options. I think the -no-opengl option conflicts with the -opengl es2 option and the -no-gcc-sysroot option conflicts with the -sysroot <dir> option. You may also notice I added the -no-xcb option since xcb wasn't working for me.

As a side note, I think you can add more options to remove SQL support. Run ./configure -h to look at your options.


what is the meaning of "The build is verified on prebuilt rootfs(based on LTIB) which can be downloaded from"  I have to build it with ltib or can i download it?  When I can download it, please explain how to use it on host.

To use LTIB makes little sense, because Yocto is preferred.

I try now to do LTIB for a couple of days without success.



He is referring to the prebuilt images which can be found under the "Operating System Software - Board Support Packages" section of whatever chip you're using. In my case, for the SabreSD board: L3.0.35_4.0.0_DEMO_IMAGE

You are right about LTIB and Yocto. Freescale is moving towards Yocto and the LTIB platform can be buggy. Use the Freescale community BSP instead: Freescale/fsl-community-bsp-platform · GitHub

The instructions are in the link. After compilation, an SD card image is generated that can be directly copied to an actual SD card and will run on whatever board you're using. There is already full Qt4 support and Qt5 support is only recently being added (added about a week ago).

So I can use a Image build with yocto? like fsl-image-gui-nitrogen6x.sdcard

I just checked what machines are supported in the BSP I linked to. It seems that your board nitrogen6x is supported, and there does appear to be a set of Qt4 recipes for the demo image you are referring to: Photo Album - Imgur

I have downloaded the Image (L3.0.35_4.0.0_130424_images_MX6)  How to put it on SD?

Follow the instructions that are in the documentation.  You can download the documentation package from freescale site.

sure that Qt5 is added?  Witch repo to check out? dylan  and what to build?


It's on the master-next branch, so it's not ready quite yet.

I am trying to build Qt4 as per the instructions above.

In Step #2 is this command:

$ ln -s $(ROOTFFS) rootfs

When I try to run it, it states that the variable "ROOTFFS: command not found."

Any idea why this failed?  I tried ROOTFS and still had the same error.

Is ROOTFFS the qt install directory?  Where is it defined?  It's not in my environment.

you  have to place  "/media/NameOfMountedRootFs"  as ROOTFFS

OK.  I used a link to ~/imx6/ltib/rootfs since I'm only doing NFS boot and I've already created a rootfs with LTIB.

Running configure generates several errors.

However, I am able to make and make install most of the files into /opt/qt4.

But the second bullet in Step #12 makes no sense.

Furthermore, there is no opt/qt4/examples directory. 

Here is what is what is there:

root@freescale /$ ls opt/qt4

bin      include  lib      plugins

Any ideas of where I might be having problems.  I've followed the directions very carefully.


Hello Brad,

I will be the best someone who knows write a new Howto "Setup QT Creator" with Yocto based QT, rootfs and toolchain. But slowly I believe that no one really knows how to do that ;-)



I was recently trying to build QT5 for iMX6 board using the instructions above.

rootfs: L3.0.35_4.0.0_UBUNTU_RFS


./configure -v -opensource -confirm-license -no-pch -no-xcb -no-opengl -opengl es2 -make libs -device imx6 -device-option CROSS_COMPILE=/opt/gcc-linaro-arm-linux-gnueabihf-4.8-2013.06_linux/bin/arm-linux-gnueabihf- -sysroot /home/max/Dev/rootfs -no-gcc-sysroot -prefix /opt/Qt5-imx6

unfortunately I have the following error:

/opt/gcc-linaro-arm-linux-gnueabihf-4.8-2013.06_linux/bin/../lib/gcc/arm-linux-gnueabihf/4.8.2/../../../../arm-linux-gnueabihf/bin/ld: error: opengles2 uses VFP register arguments, opengles2.o does not

/opt/gcc-linaro-arm-linux-gnueabihf-4.8-2013.06_linux/bin/../lib/gcc/arm-linux-gnueabihf/4.8.2/../../../../arm-linux-gnueabihf/bin/ld: failed to merge target specific data of file opengles2.o


/home/max/Dev/rootfs/usr/lib/ undefined reference to `XMapRaised'

/home/max/Dev/rootfs/usr/lib/ undefined reference to `pthread_setspecific@GLIBC_2.4'

/home/max/Dev/rootfs/usr/lib/ undefined reference to `_XReadPad'

/home/max/Dev/rootfs/usr/lib/ undefined reference to `dlopen@GLIBC_2.4'

/home/max/Dev/rootfs/usr/lib/ undefined reference to `pthread_key_delete@GLIBC_2.4'

/home/max/Dev/rootfs/usr/lib/ undefined reference to `XPending'

collect2: error: ld returned 1 exit status

make: *** [opengles2] Error 1

OpenGL ES 2.x disabled.

The OpenGL ES 2.0 functionality test failed!

You might need to modify the include and library search paths by editing



Then if I take out ES, I have: "Could not determine the target architecture!"

Can somebody comment on this? Any help?

Does the attached patch suppose to fix that?




I followed the instructions to build QT4.8 for my target, Boundary's Nitrogen6x board. Unfortunately, in step 8, when it was building, I got the compiling error "fatal error: jpeglib.h: No such file or directory". I wonder if you guys have any comment about the error listing below.

cd "/home/byang/qt/./src/plugins/imageformats/jpeg"
make Makefile
make[4]: Entering directory `/home/byang/qt/src/plugins/imageformats/jpeg'
make[4]: `Makefile' is up to date.
make[4]: Leaving directory `/home/byang/qt/src/plugins/imageformats/jpeg'
make[3]: Leaving directory `/home/byang/qt/src/plugins/imageformats/jpeg'
make[3]: Entering directory `/home/byang/qt/src/plugins/imageformats/jpeg'
arm-fsl-linux-gnueabi-g++ -c -pipe -O2 -O2 -march=armv7-a -mfpu=neon -DLINUX=1 -DEGL_API_FB=1 -fvisibility=hidden -fvisibility-inlines-hidden -D_REENTRANT -Wall -W -fPIC -DQT_NO_DEBUG -DQT_PLUGIN -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I../../../../mkspecs/qws/linux-imx6-g++ -I. -I../../../../include/QtCore -I../../../../include/QtNetwork -I../../../../include/QtGui -I../../../../include -I../../../gui/image -I.moc/release-shared -I/home/byang/ltib/rootfs/usr/include -I/tftpboot/rootfs/usr/include/arm-linux-gnueabi/ -o .obj/release-shared/qjpeghandler.o ../../../gui/image/qjpeghandler.cpp
../../../gui/image/qjpeghandler.cpp:71:21: fatal error: jpeglib.h: No such file or directory
compilation terminated.
make[3]: *** [.obj/release-shared/qjpeghandler.o] Error 1

Hallo Bill,

no need to do that for 4.8

Have a look at this


Hi Joerg,

Thanks for your replying my question. Currently I need to build QT4.8 on my image in LTIB. We shall late on consider the Yocto image since it has QT built in. 

I googled and looked at the relate posts that mentioned needing to install libjpeg-dev. I wonder if any one in this thread knows how to fix?

No @ -no-gcc-sysroot vs. -sysroot

This was made for the freescale-linaro toolchain from ltib, because it doesn't allow you to set -sysroot as all the basic posix building-blooks were located within the toolchain and setting -sysroot in for gcc ruins it.

So the combination  of '-sysroot' and '-no-gcc-sysroot' results in Qt5 to do some magic in the background (e.g. PKG variables) but doesn't result in adding '--sysroot' to the gnu flags

Hi Zoltan,

i am having the same issue, also with another MPUs from several vendors. I have not solved it yet, but it looks like its a problem related with the rootfs, specifically with simlinks and lib paths.

There is a nice guide for a raspberry-pi device which i tried, and worked nice, but only with the rootfs image they specified (raspbian wheezy image):

When i tried to use my own rootfs, i have the problem you have had. Looks like the fix they propose could be the solution. That is to run a script to fix symlinks and libpaths, included in the croos-compiled-tools they provide.

I tried that but with no succes. Eventhough, everywhere in the web looks like that old configures files, can be a really headache, so it's really important to clean the files generated in the configure. Here it's very important to say, that the only actual way to do that, is cleaning the repository with:

    git submodule foreach --recursive "git clean -dfx"

because "make confclean" doesn't really work in Qt5 and "make clean" only cleans ol the .o and others files, but no all the configurations generated with ./configure. So, to download a tar.gz and use this a source code, should not be an option for Qt5.

Would really love to solve this problem with the imx6, using my own rootfs generated with buildroot (in my case). Any help?




I followed the instructions and when I ran "bitbake core-image-minimal". It pop up following error.

Pseudo is not present but is required, building this first before the main build

ERROR: OE-core's config sanity checker detected a potential misconfiguration.

Either fix the cause of this error or at your own risk disable the checker (see sanity.conf).

Following is the list of potential problems / advisories:

Please install the following missing utilities: gawk,chrpath

Then I ran "apt-get install gawk  chrpath". It pop up info as below.

The following packages were automatically installed and are no longer required:

libp11-kit-dev libgpg-error-dev comerr-dev libqt3-headers libgnutls-openssl27

libkrb5-dev liblcms1-dev libgnutlsxx27 libgssrpc4 libxt-dev libxmu-dev

libtasn1-3-dev libcups2-dev libqt3-compat-headers qt3-dev-tools libgcrypt11-dev

libkadm5clnt-mit8 libaudio-dev libkadm5srv-mit8 libxmu-headers libkdb5-6

libgnutls-dev krb5-multidev

Do I have to remove them using "apt-get autoremove     ......."?

Are you sure you followed the steps outlined here:

Also, are you sure you have all the necessary software installed on your system. See the Yocto Project Quick Start Guide and look under packages:

I'm guessing you're running Ubuntu, which means this command would install the software you need:

sudo apt-get install gawk wget git-core diffstat unzip texinfo \

  build-essential chrpath libsdl1.2-dev xterm

Hi squirem,

I got run bitbake fsl-image-gui, but I found the MACHINE=imx6qsabresd is not I wanted. My board is Nitrogen6x board from Boundary. How to change it to MACHINE=nitrogen6x? Could you please help?

By the way, I need Qt4.8.4 libraries on the image. Does the building image has been added Qt4.8.4?



Yes, I am running Ubuntu. I followed the article from the "Yocto With Boundary Device's Nitrogen6x: 5 steps only!" . I did not install all the necessary software on my system. I will do the installation as you point to me. Thanks again.

edit the build/conf/local.conf

I also have the same problem, Did U find any solution ragarding this

Hi I found some libs,, but

those are old,

and unfortunately they didn't solve all the problems. Incompatibility

issues remain.

with Regards,


U mean you also had that input issue.. The issue I am facing is once after I run the demo application ./hellowindow -platform eglfs.. i cant give any input(I want to use touch). Nothing is working regarding touch.. I exported all the necessary Tslib variables and all.

Did the library files which u found is anything to do with the touch issue..

You also mentioned "unfortunately they didn't solve all the problems"

No, I don't have those solved yet unfortunately...

with Regards,


Anyway thanks for the replay Zoltan :smileyhappy:

Oh.. you have any idea regarding that.

With Regards,


Sorry, no, hopefully there will be an update with build in QT5 support...

I also tried to work out things with Qt4, but not much success there

either... = (

with Regards,


Yeah, I am also thinking to build it using QT5 now, Anyway thanks for your replies :smileyhappy:




Hi all!

I followed the instructions to build QT4.8 for my target, Boundary's SABRElite board. Unexpectedly, in step 9 (Now need to build eglfs plugin), I got the compiling error

qeglfsscreen.cpp: In constructor 'QEglFSScreen::QEglFSScreen(EGLNativeDisplayType)':
qeglfsscreen.cpp:109:43: error: 'fbGetDisplayByIndex' was not declared in this scope
qeglfsscreen.cpp:110:57: error: 'fbGetDisplayGeometry' was not declared in this scope
qeglfsscreen.cpp: In member function 'void QEglFSScreen::createAndSetPlatformContext()':
qeglfsscreen.cpp:181:95: error: 'fbCreateWindow' was not declared in this scope
make: *** [.obj/release-shared/qeglfsscreen.o] Error 1

Any help?

Regards, Michael

Hi Michael,

These declarations should be in EGL/eglvivante.h:

~/ltib4-nox/rootfs/usr/include$ grep -r fbGetDisplayByIndex *

Did you include gpu-viv-bin-mx6q in your LTIB configuration?

Hi Eric!

Thanks for your answer.

Yes, I have these declarations in  EGL/eglvivante.h, but in my qt-4.8.4/src/plugins/platforms/eglfs/qeglfsscreen.cpp (after EGL support patch) I have no link to EGL/eglvivante.h

Where I need to add the reference to EGL/eglvivante.h, in qeglfsscreen.cpp, in qeglfsscreen.h or in
I added everywhere, but the effect isn't present, there is the same compilation error.

>> Did you include gpu-viv-bin-mx6q in your LTIB configuration?

I don't use a LTIB, I use a ready freescale Ubuntu rootfs image L3.0.35_4.0.0_UBUNTU_RFS from

How to solve this problem?

Thanks again!

Regards, Michael

Eric, still question:

I have a SABRElite board, which runs freescale Ubuntu image with X-window desktop.

Now I want to run a QT application on X-window of my devboard.

This manual (Building QT for i.MX6) Is suitable for my task?


Regards, Michael

Hi Michael,

eglvivante.h is included by eglplatform.h, which is included by egl.h.

Do you have the configuration patches:

     qt4: Enable OpenGL ES2 support for i.MX6 · edcd4a6 · Freescale/meta-fsl-arm · GitHub

Hi Michael,

If you're running under X, you really want X to be accelerated, not Qt, and you should probably just use apt-get to install it.

Hi, all.

When i test qt5 example on target board, (./hellogl_es2) I have below error.

"This application failed to start because it could not find or load the Qt platform plugin "eglfs"."

Please share any tip about this eglfs error.

thank you.



Building seems to work fine for me but when I try to start one of the example project I get this error:

root@freescale /opt/qt5/examples/opengl/hellowindow$ ./hellowindow -platform eglfs

QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open failed

QIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed

idr_remove called for id=2126092104 which is not allocated.

[<8004f72c>] (unwind_backtrace+0x0/0x138) from [<8024d930>] (idr_remove+0x1f8/0x208)

[<8024d930>] (idr_remove+0x1f8/0x208) from [<802bb51c>] (drm_ctxbitmap_free+0x24/0x30)

[<802bb51c>] (drm_ctxbitmap_free+0x24/0x30) from [<802bba28>] (drm_rmctx+0x5c/0x10c)

[<802bba28>] (drm_rmctx+0x5c/0x10c) from [<802bc064>] (drm_ioctl+0x2d0/0x3b4)

[<802bc064>] (drm_ioctl+0x2d0/0x3b4) from [<8010b344>] (do_vfs_ioctl+0x80/0x558)

[<8010b344>] (do_vfs_ioctl+0x80/0x558) from [<8010b854>] (sys_ioctl+0x38/0x5c)

[<8010b854>] (sys_ioctl+0x38/0x5c) from [<80048600>] (ret_fast_syscall+0x0/0x30)

Segmentation fault

root@freescale /opt/qt5/examples/opengl/hellowindow$

Any clue about what this can be?


   My QT4.8 had been built success,but when I test the example in my target board,it shows error:

   root@freescale /opt/qt4.8-arm-elink/examples/opengl/hellogl_es2$ ./hellogl_es2 -platform eglfs

./hellogl_es2: error while loading shared libraries: cannot open shared object file: No such file or directory


   what can I do to solve it?



I have following problem during build of latest Qt5.1

compiler/qv4isel_masm_p.h: In member function 'void QQmlJS::MASM::Assembler::storeUInt32(JSC::AbstractMacroAssembler<JSC::ARMAssembler>::RegisterID, QQmlJS::MASM::Assembler::Pointer)':

compiler/qv4isel_masm_p.h:1212:63: error: 'convertUInt32ToDouble' was not declared in this scope

compiler/qv4isel_masm_p.h: In member function 'void QQmlJS::MASM::InstructionSelection::convertUIntToDouble(QQmlJS::V4IR::Temp*, QQmlJS::V4IR::Temp*)':

compiler/qv4isel_masm_p.h:1491:18: error: 'class QQmlJS::MASM::Assembler' has no member named 'convertUInt32ToDouble'

compiler/qv4isel_masm_p.h:1493:18: error: 'class QQmlJS::MASM::Assembler' has no member named 'convertUInt32ToDouble'

compiler/qv4isel_masm.cpp: In member function 'virtual void QQmlJS::MASM::InstructionSelection::visitRet(QQmlJS::V4IR::Ret*)':

compiler/qv4isel_masm.cpp:1978:22: error: 'class QQmlJS::MASM::Assembler' has no member named 'convertUInt32ToDouble'

compiler/qv4isel_masm.cpp: In member function 'JSC::AbstractMacroAssembler<JSC::ARMAssembler>::Jump QQmlJS::MASM::InstructionSelection::genTryDoubleConversion(QQmlJS::V4IR::Expr*, JSC::MacroAssemblerARM::FPRegisterID)':

compiler/qv4isel_masm.cpp:2172:14: error: 'class QQmlJS::MASM::Assembler' has no member named 'convertUInt32ToDouble'

Qt5 git version

commit cb2d850b479fed9fed3c4a9fea698f924be942ef

Author: Qt Submodule Update Bot <>

Date:   Tue Oct 15 22:00:06 2013 +0300


Kindly let me know if you have solution?

Thanks & Regards

That's a real bug in Qt, see workaround in:

(I would guess you are actually compiling post 5.1 version, 5.1.1 should compile just fine. If you cloned the qt5 sources remember to checkout the appropriate git tag to get 5.1.1)


Thanks Juha,

It seems with latest version of qtdeclarative this issue is fixed :smileyhappy:

Thanks again


I would like to cross compile tool chain and prebuilt rootfs based on ltib to cross compile Qt5.x for IMX6 Sabre AI board. Please let me know where can I download the same so that I can use the same cross compiler tool chain and rootfs used in this thread.



Version history
Last update:
‎02-11-2013 10:29 AM
Updated by: