Cross-compiling Qt 5.0 for iMX6 on Phytec development board
-
I found the solution here : http://gpupowered.org/node/8
bq.
After configure, make && make install are to be done. This is important, as qmake needs to be in the install path.Steps to build Qt3D :
To build Qt3D, in addition to qtbase also need to build the below:
qtjsbackend (has v8)
qtdeclarative
qt3dTo build the above, enter the directory, then perform (assuming qmake is in the path as specified earlier)
$ qmake && make && make install
bq.It seems to work.
-
And it works better that way : http://www.mail-archive.com/interest@qt-project.org/msg04497.html
bq. Although I didn't find out why it compiled just once (and for sure I
didn't change some qt.conf for it :-) ), I even better understood qmake
and found out that paths configured in qt/qtbase/bin/qt.conf were
responsible for qmake to read the wrong module mkspecs. I've no idea how
Prabindh from TI managed to compiled it this way as I don't see how qt5
can be configured correctly via --prefix, but without changing this qt.conf.Some more details for those who bump into the same problem... In case
you want to install qt5 to /foo/usr simply set qt/qtbase/bin/qt.conf
also to it:[EffectivePaths]
Prefix=/foo/usr -
In order to test QML and OpenGL, I built the example "Samegame". I had some issue with the Makefile but I deleted the references to /usr/lib (on the host).
I copied the Qt5 libraries (don't modify the path and directories) on my dev board root filesystem and tried to execute the program. I got these error messages, but I think they concern the GPU binaries.
@root@phyFLEX-i:/root/samegame-build-IMX6_Qt5-Default_build_Release ./samegame
QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open failed
Qml debugging is enabled. Only use this in a safe environment!
QIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed
evdevtouch: Using device /dev/input/event0
min X: 0 max X: 0
min Y: 0 max Y: 0
min pressure: 0 max pressure: 255
device name: stmpe-ts
Protocol type A
QOpenGLShader::compile(Fragment): (5:0) : error : syntax error*** Problematic Fragment shader source code ***
#ifndef GL_FRAGMENT_PRECISION_HIGH
#define highp mediump
#endif
uniform sampler2D texture;
varying highp vec2 textureCoord;
void main() {
gl_FragColor = texture2D(texture, textureCoord).bgra;
}
QOpenGLShader::link: "No fragment shader attached."
QOpenGLShaderProgram::attributeLocation( vertexCoordEntry ): shader program is not linked
QOpenGLShaderProgram::attributeLocation( textureCoordEntry ): shader program is not linked
QOpenGLShader::link: "No fragment shader attached."
QOpenGLShader::link: "No fragment shader attached."
@ -
HI,
This is fixed in the latest BSP release, see this thread:
https://lists.yoctoproject.org/pipermail/meta-freescale/2013-January/000925.html -
Hi,
I rechecked the libraries I was using and I found the bug : they were not copied into the right filesystem. Now I'm facing an other problem, while trying to execute hellogl :
@root@xap:/root/hellogl_es2-build-IMX6_Qt5-Debug ./hellogl_es2
QIconvCodec::convertFromUnicode: using Latin-1 for conversion, iconv_open failed
QIconvCodec::convertToUnicode: using Latin-1 for conversion, iconv_open failed
evdevtouch: Using device /dev/input/event0
min X: 0 max X: 0
min Y: 0 max Y: 0
min pressure: 0 max pressure: 255
device name: stmpe-ts
Protocol type A
This plugin does not support propagateSizeHints()
This plugin does not support setParent!
This plugin does not support setParent!
This plugin does not support setParent!
This plugin does not support setParent!
This plugin does not support setParent!
This plugin does not support setParent!
This plugin does not support setParent!
This plugin does not support propagateSizeHints()
QOpenGLContext::swapBuffers() called with non-opengl surface
QOpenGLContext::swapBuffers() called with non-opengl surface
QOpenGLContext::swapBuffers() called with non-opengl surface
QOpenGLContext::swapBuffers() called with non-opengl surface
QOpenGLContext::swapBuffers() called with non-opengl surface
QOpenGLContext::swapBuffers() called with non-opengl surface
QOpenGLContext::swapBuffers() called with non-opengl surface
QOpenGLContext::swapBuffers() called with non-opengl surface @All I see on the screen is the frame rate, about 100 fps, white on black.
-
I tried to get Qt DirectFB support but there is no way to get it supported.
I don't understand because the configure program doesn't seem to try to compile it but always return
@DirectFB support ....... no@Here is my new configure options :
@./configure -opensource -confirm-license -opengl es2 -device linux-imx6-g++ -directfb -v -device-option CROSS_COMPILE=/opt/OSELAS.Toolchain-2012.12.0/arm-cortexa9-linux-gnueabihf/gcc-4.7.3-glibc-2.16.0-binutils-2.22-kernel-3.6-sanitized/bin/arm-cortexa9-linux-gnueabihf- -no-gcc-sysroot -prefix /usr/local/Qt-5.0.1/Qt-imx6-1 -optimized-qmake -reduce-relocations -reduce-exports -make libs -no-pch -lz -lglib-2.0 -ldirect -ldirectfb -lfusion@ -
Hey bceldran, did you manage to build with DirecFB support?
Also, this also compiles openCV, right? does it work? Is OpenCV using the new qt version 5.0? -
Hey bceldran, did you manage to build with DirecFB support?
Also, this also compiles openCV, right? does it work? Is OpenCV using the new qt version 5.0? -
Sorry, but we let down this project two years ago. We had no time to debug these problems, QT 5 and our platform were too young. Good luck for the following !
-
Sorry, but we let down this project two years ago. We had no time to debug these problems, QT 5 and our platform were too young. Good luck for the following !