Build Qt5 for BeagleBone Black
-
wrote on 17 Oct 2013, 10:57 last edited by
Hi all.
I bought a BBB and now I'm trying to cross-compile Qt5 for it.I downloaded the toolchain
gcc-linaro-arm-linux-gnueabihf-4.7-2013.02-01-20130221_linux.tar.xz
from
https://launchpad.net/linaro-toolchain-binaries/then I tried to configure Qt 5 this way:
@
./configure -opensource -confirm-license -no-pch -prefix /opt/qt510-bone -release -force-debug-info -device linux-beagleboard-g++ -make libs -nomake tests -nomake examples -device-option CROSS_COMPILE=/opt/arm-toolchain/gcc-linaro-arm-linux-gnueabihf-4.7-2013.02-01-20130221_linux/bin/arm-linux-gnueabihf- -sysroot /mnt/tmp
@
where I mounted beaglebone root fs in /mnt/tmp .At the end of the configuration process I get the following error:
@
WARNING: Unable to find file .device.vars
No QPA platform plugin enabled!
If you really want to build without a QPA platform plugin you must pass
-no-qpa-platform-guard to configure. Doing this will
produce a Qt that can not run GUI applications.
The dependencies needed for xcb to build are listed in
src/plugins/platforms/xcb/README
@This is my linux-beagleboard-g++/qmake.conf :
@qmake configuration for the BeagleBoard and BeagleBoard xM boards
http://beagleboard.org/
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental gdb_dwarf_index
QMAKE_INCREMENTAL_STYLE = sublibinclude(../../common/linux.conf)
include(../../common/gcc-base-unix.conf)
include(../../common/g++-unix.conf)load(device_config)
QT_QPA_DEFAULT_PLATFORM = eglfs
modifications to g++.conf
QMAKE_CC = $${CROSS_COMPILE}gcc
QMAKE_CXX = $${CROSS_COMPILE}g++
QMAKE_LINK = $${QMAKE_CXX}
QMAKE_LINK_SHLIB = $${QMAKE_CXX}modifications to linux.conf
QMAKE_AR = $${CROSS_COMPILE}ar cqs
QMAKE_OBJCOPY = $${CROSS_COMPILE}objcopy
QMAKE_STRIP = $${CROSS_COMPILE}strip#COMPILER_FLAGS = -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp
COMPILER_FLAGS = -march=armv7-a -mtune=cortex-a9 -mfpu=neon#modifications to gcc-base.conf
QMAKE_CFLAGS += $${COMPILER_FLAGS}
QMAKE_CXXFLAGS += $${COMPILER_FLAGS}
QMAKE_CXXFLAGS_RELEASE += -O3QMAKE_LIBS += -lrt -lpthread -ldl
Extra stuff (OpenGL, DirectFB, ...)
QMAKE_INCDIR_EGL = $$[QT_SYSROOT]/usr/include
QMAKE_LIBDIR_EGL = $$[QT_SYSROOT]/usr/lib
QMAKE_INCDIR_OPENGL_ES2 = $${QMAKE_INCDIR_EGL}
QMAKE_LIBDIR_OPENGL_ES2 = $${QMAKE_LIBDIR_EGL}
QMAKE_INCDIR_OPENVG = $${QMAKE_INCDIR_EGL}
QMAKE_LIBDIR_OPENVG = $${QMAKE_LIBDIR_EGL}QMAKE_LIBS_EGL = -lEGL -lIMGegl -lsrv_um
QMAKE_LIBS_OPENGL_ES2 = -lGLESv2 $${QMAKE_LIBS_EGL}
QMAKE_LIBS_OPENVG = -lOpenVG $${QMAKE_LIBS_EGL}Sanity check
deviceSanityCheckCompiler()
load(qt_config)
@
Can you help me?
-
wrote on 17 Oct 2013, 13:34 last edited by
Ok, it seems I used the wrong toochain.
Now I'm trying the gcc-linaro-arm-linux-gnueabi-2012.04-20120426_linux.tar.bz2 toolchain and it seems to compile.
-
wrote on 24 Oct 2013, 08:31 last edited by
Here again.
I compiled without error Qt5 qtbase source.
Now the problem is that I only can start applications in BBB using:
@
./myapp -platform linuxfb
@
But it seems I can't use mouse or keyboard.Have someone compiled Qt5 for BBB without my problems?
Now I'm also trying to build Qt5 with EGL support but I actually can't.
-
wrote on 22 Nov 2013, 17:43 last edited by
Which distribution do you use? Angstrom? Debian?
just check if you have the EGL, GLESv2 and OpenVG libraries installed on your BBB system, they won't be installed by default. -
wrote on 22 Nov 2013, 18:19 last edited by
[quote author="jseeQt" date="1385142188"]Which distribution do you use? Angstrom? Debian?
just check if you have the EGL, GLESv2 and OpenVG libraries installed on your BBB system, they won't be installed by default.[/quote]I'm using Angstrom.
Have you compiled Qt5 with EGL support ? -
wrote on 22 Nov 2013, 22:41 last edited by
Hi Luca,
if you have time and enough HD space you could try yocto with meta-qt5:
Look here
http://gpupowered.org/node/20
and here
http://gpupowered.org/node/22Cheers
-
wrote on 23 Nov 2013, 00:48 last edited by
Hey Luca,
I don't know any prebuild packages with the OpenGL/EGL-libraries for BB(B).
You get these libraries if you compile the Sitara Graphics SDK on your own (see http://processors.wiki.ti.com/index.php/Graphics_SDK_Quick_installation_and_user_guide).
This provide you the EGL and the GLESv2 libraries.You find the current version of the Graphics SDK at:
http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/latest/index_FDS.htmlI tested it with Robert Nelson's Debian Wheezy Image:
- Download the image and copy it to SD card, mount the rootfs on it
- Download the cross-compiler
- Download the kernel and compile it
- Download Graphics SDK and compile it against kernel (instructions see first link)
- If everything worked fine, boot up BB(B), and run the script /etc/init.d/335x-demo. It will install the modules and libraries. With this libraries, you will be able to compile OpenGL/EGL-stuff (maybe you should then pass the "-opengl es2" option to the Qt configure)
Maybe this steps also works for the Angstrom image...
If some guys are interested, maybe we could create a Debian-package to install the libraries with apitude, apt-get, etc. (like on Raspberry Pi the librasberrypi-dev)
-
wrote on 12 Dec 2013, 18:47 last edited by
I would be very much interested in Debian-package to install the libraries.
Regards,
John -
wrote on 5 Feb 2014, 11:02 last edited by
+1
I would be interested in Debian-packages as wellThank you
-
wrote on 6 Feb 2014, 14:05 last edited by
I compiled the OpenGLES and EGL libraries against the 3.8 kernel.
Currently, the "out-of-the-box" wheezy-image from Robert Nelson also includes the 3.8 kernel, so you can test them really quickly. LINK:https://rcn-ee.net/deb/rootfs/wheezy/debian-7.3-console-armhf-2014-01-24.tar.xz
My question: Do you like a debian package or tar.* archive?
(Have to say, I have no excperience with making a debian package...) -
wrote on 7 Feb 2014, 05:06 last edited by
thanks a lot , for your time ,
i don't really mind any right now :)
Since i'm trying to figure out how everything works ...
-
wrote on 10 Feb 2014, 09:35 last edited by
Hi jseeQt,
I think a tar archive can be enough.Thanks!
[quote author="jseeQt" date="1391695537"]I compiled the OpenGLES and EGL libraries against the 3.8 kernel.
Currently, the "out-of-the-box" wheezy-image from Robert Nelson also includes the 3.8 kernel, so you can test them really quickly. LINK:https://rcn-ee.net/deb/rootfs/wheezy/debian-7.3-console-armhf-2014-01-24.tar.xz
My question: Do you like a debian package or tar.* archive?
(Have to say, I have no excperience with making a debian package...)[/quote] -
wrote on 10 Feb 2014, 14:34 last edited by
jseeQt, why have you compiled a new kernel for you board ?
Is it impossible to use the kernel you already have in the BBB?Thanks
-
wrote on 11 Feb 2014, 10:33 last edited by
I did not compiled the kernel again.
But the SGX driver (which give us the GLESv2 and EGL libraries) have to be build against kernel sources...so I checked-out the (current) standard 3.8 kernel and compiled the SGX driver.
So: If you compilethe SGX driver against the 3.2 or 3.12 kernel, you cannot use them with a 3.8 kernel. -
wrote on 11 Feb 2014, 13:18 last edited by
Thanks jseeQt,
I have in my BBB the 3.8.13-bone30 Kernel (i'm using ubuntu-saucy-13.10-armhf-3.8.13-bone30.img.xz from armhf.com).
Can you please tell me where to find the 3.8.13-bone30 kernel source?Another question, in "this link":http://www.elinux.org/Beagleboard:BeagleBoneBlack#Known_Issues they tell:
@2) SGX support is not currently provided i the 3.8 kernel.@
why can you use it building with 3.8 kernel?Thanks
[quote author="jseeQt" date="1392114832"]I did not compiled the kernel again.
But the SGX driver (which give us the GLESv2 and EGL libraries) have to be build against kernel sources...so I checked-out the (current) standard 3.8 kernel and compiled the SGX driver.
So: If you compilethe SGX driver against the 3.2 or 3.12 kernel, you cannot use them with a 3.8 kernel.[/quote] -
wrote on 11 Feb 2014, 13:57 last edited by
Ok, I managed it to run with 3.2, I currently working to compile it for 3.8, but that's now wasted time...
I check it with the 3.2 kernel again...I will post updates here! -
wrote on 11 Feb 2014, 16:10 last edited by
Ok, thanks!
[quote author="jseeQt" date="1392127023"]Ok, I managed it to run with 3.2, I currently working to compile it for 3.8, but that's now wasted time...
I check it with the 3.2 kernel again...I will post updates here![/quote] -
wrote on 12 Feb 2014, 14:02 last edited by
[quote author="jseeQt" date="1392127023"]Ok, I managed it to run with 3.2, I currently working to compile it for 3.8, but that's now wasted time...
I check it with the 3.2 kernel again...I will post updates here![/quote]Hey thanks for your help , I'm having a bit of difficulty to figure out correct steps for compiling SGX right now.
but talking about kernel 3.8 it seems to me that it been fixed. Based on discussions from:
1 "Here":https://groups.google.com/forum/#!topic/beagleboard/qQTC7C8g0I8
2 and here "here":http://e2e.ti.com/support/arm/sitara_arm/f/791/p/298596/1087282.aspx#1087282and i assume that we need "this version (bone40.1) ":https://github.com/RobertCNelson/linux-dev/tree/am33x-v3.8 of kernel where patches have been applied
-
wrote on 19 Feb 2014, 08:57 last edited by
[quote author="XelaG" date="1392643385"]@Luca: Did you manage to compile Qt5 for beaglebone black running angstrom distribution ?[/quote]
Hi,
yes, I built Qt 5 for BBB but I didn't use angstrom, I used "this":http://www.armhf.com/index.php/boards/beaglebone-black/#saucy .