This document outlines the steps to build Qt5 for the Beaglebone single board computer using the Yocto Project. It describes downloading the necessary repositories, adding Qt5 to the minimal image, setting the Beaglebone as the target, adding layers to the build system, building the image, and running Qt5 examples on the target device. Build configuration details and areas for future work are also provided.
2. Introduction
• This post publishes the method to build Qt5
for Beaglebone. To build Qt5 for Beaglebone,
the below repos are needed:
• poky
meta-oe
meta-ti
meta-qt5
4. Adding qt5 to minimal image
• Add below line to conf/local.conf (notice the
space at start)
• IMAGE_INSTALL_append = " qtbase qtbase-
tools qtbase-plugins"
5. Setting Beaglebone as target
• Specify Beaglebone as target, as below, in
conf/local.conf
• MACHINE ?= "beaglebone"
BBMASK ?= ".*/meta-ti/recipes-
misc/(images|payload)/"
6. Adding meta-ti and meta-oe layers to
Bitbake build system
• Add meta-oe and meta-ti, so that it looks like
below in conf/bblayers.conf
• BBFILES ?= ""
BBLAYERS ?= "
${TOPDIR}/../meta
${TOPDIR}/../meta-yocto
${TOPDIR}/../meta-yocto-bsp
${TOPDIR}/../meta-oe/meta-oe
${TOPDIR}/../meta-ti
"
7. Building the image
$ source oe-init-build-env
$ bitbake core-image-minimal
• Creating SD card:
• The images (MLO, u-boot, dt, uImage, and rootfs)
are available at below folder,
• <>/poky/build/tmp/deploy/images
• Use mkmmc scripts (or any other standard SD
format scripts) to burn these images to SD card.
8. Running the Qt5 examples with
minimal plugin
• Boot the Beaglebone, and login in as root.
• $>export QT_DEBUG_BACKINGSTORE=1
$>export QT_QPA_PLATFORM=minimal
$>cd /usr/bin/qt5/examples/
• UI/widget examples (ex, calculator) can be run
and output observed from the png file stored
in the same folder.
9. Yocto build configuration used
• There was an update after this, but below should give a reference.
• BB_VERSION = "1.17.1"
BUILD_SYS = "i686-linux"
NATIVELSBSTRING = "Ubuntu-12.04"
TARGET_SYS = "arm-poky-linux-gnueabi"
MACHINE = "beaglebone"
DISTRO = "poky"
DISTRO_VERSION = "1.3+snapshot-20130403"
TUNE_FEATURES = "armv7a vfp neon"
TARGET_FPU = "vfp-neon"
meta
meta-yocto = "master:c0910f26ea0d692c6d22f2e3f87cf710b31fdf0a"
meta-oe = "master:af6c39379dbe6822d1457498e53747ed63bdbb65"
meta-ti = "master:ca0f68d71b08de156c4424324466aab0ebc7296f"
meta-yocto-bsp = "master:c0910f26ea0d692c6d22f2e3f87cf710b31fdf0a"
10. TODO and References
• TODO:
• - fonts are not installed to target, so no text appears
• - eglfs with virtual/gles2 configuration update
• - wayland update
• - Qt 5.1 update
• - webkit update
• - Beaglebone itself runs only at 250 MHz (!) in the default Yocto
core-image-minimal. To update with TI scripts for a better
performance profile
• References:
• https://gist.github.com/errordeveloper/4056193
https://github.com/meta-qt5/
• http://gpupowered.org/node/20