Qt5 on Beaglebone Black with OpenGL
-
Hey all,
I've been googling around and searching for about 2 days now with no luck.
I'm trying to cross-compile Qt5 (5.3.1 or 5.2.0) for the Beaglebone Black and get Quick 2.0 and Qt Quick Controls working (so I need OpenGL). So far I haven't been able to find any good sources to walk me through this process.
I'm using a "Chipsee":http://www.chipsee.com/product/evm/beagle/beaglebone-black-expansion-capacitive.html?___store=english&___from_store=default cape to have an LCD and capacitive touch screen with it. Chipsee gives me several prebuilt images, including a Debian, Angstrom, Android, and LinuxEZSDK images. It looks like the linuxEZSDK and Angstrom images come with all the OpenGL libraries pre-loaded. The LinuxEZSDK comes pre-configured with everything for Qt, but it's Qt4.8. You can find their repo of images "here":http://www.chipsee.com/upload/BBB/.
Right now I've been working with the LinuxEZSDK image to try and build Qt5 from source and get it on there. I downloaded the "linaro toolchain":https://launchpad.net/linaro-toolchain-binaries/trunk/2013.04/+download/gcc-linaro-arm-linux-gnueabihf-4.8-2013.04-20130417_linux.tar.xz to use for the cross compile. I edited the 5.3.1 source following "this tutorial":http://armsdr.blogspot.com/2014/01/bare-metal-qt-52-on-beaglebone-black_10.html to setup the build for the cross-compile. If I follow that tutorial to a T, it works fine. But if I try and configure using OpenGL by running the following configure script:
@../qt-everywhere-opensource-src-5.3.1/configure -v -opensource -confirm-license -no-pch -no-opengl -opengl es2 -make libs -device linux-beaglebone-g++ -xplatform linux-arm-gnueabihf-g++ -device-option CROSS_COMPILE=/usr/local/linaro/bin/arm-linux-gnueabihf- -sysroot /media/jay/rootfs -no-gcc-sysroot -prefix /opt/qt5@
I mounted the SD card that countains the LinuxEZSDK in order to find the OpenGL drivers and set the sysroot to /media/jay/rootfs, which is the root of the OS. Configuring that gives me the following error:
@OpenGL ES 2.x auto-detection... ()
/usr/local/linaro/bin/arm-linux-gnueabihf-g++ -c -pipe -O2 -Wall -W -fPIE -I/home/jay/qt-everywhere-opensource-src-5.3.1/qtbase/mkspecs/linux-arm-gnueabihf-g++ -I/home/jay/qt-everywhere-opensource-src-5.3.1/qtbase/config.tests/unix/opengles2 -I. -o opengles2.o /home/jay/qt-everywhere-opensource-src-5.3.1/qtbase/config.tests/unix/opengles2/opengles2.cpp
/home/jay/qt-everywhere-opensource-src-5.3.1/qtbase/config.tests/unix/opengles2/opengles2.cpp:45:25: fatal error: GLES2/gl2.h: No such file or directory
#include <GLES2/gl2.h>
^
compilation terminated.
make: *** [opengles2.o] 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
QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in
/home/jay/qt-everywhere-opensource-src-5.3.1/qtbase/mkspecs/linux-arm-gnueabihf-g++.@I even tried modifying the qmake.conf at /qtbase/mkspecs/linux-arm-gnueabihf-g++ to include the following:
@QMAKE_INCDIR_OPENGL += /media/jay/rootfs/usr/include
QMAKE_LIBDIR_OPENGL += /media/jay/rootfs/usr/lib
QMAKE_LIBS_OPENGL_ES2 =@But that resulted in the same error.
Does anyone have any ideas how I can get this cross compiled for the Beaglebone with support for Qt Quick 2 and Qt Quick Controls?
Thanks!
-
Hi,
Have you confirmed that your beaglebone image includes the GLES2/gl2.h file?
If so, check your QMAKE_INCDIR_OPENGL path, perhaps your missing the final directory?
Similar to this (for another embedded)
@QMAKE_INCDIR_EGL = $${QMAKE_PATH}/usr/include/EGL
QMAKE_LIBDIR_EGL = $${QMAKE_PATH}/usr/lib
QMAKE_INCDIR_OPENGL_ES2 = $${QMAKE_PATH}/usr/include/GLES2
QMAKE_LIBDIR_OPENGL_ES2 = $${QMAKE_PATH}/cubie-rootfs/usr/lib@