Compiling Qt5.3.0-beta1 on Yocto

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

Compiling Qt5.3.0-beta1 on Yocto

Compiling Qt5.3.0-beta1 on Yocto

Here are my experiences for compiling Qt5.3.0-beta1 on Yocto. Special thanks to Martin Jansa, the maintainer of the meta-qt5 layer and his help on this. My original procedure was based on this tutorial: Building Qt5 using yocto on Wandboard - Wandboard Wiki

Reason:

Qt5.3 contains a nice new plugin that allows the use of gstreamer output for textures without the CPU intensive step of copying them (Gerrit Code Review). This allows to play even full HD videos and apply all the power of Qt5 (e.g. shaders) to them.

Steps:

diff --git a/recipes-qt/qt5/qt5.inc b/recipes-qt/qt5/qt5.inc

index dfc1c76..a2f9a73 100644

--- a/recipes-qt/qt5/qt5.inc

+++ b/recipes-qt/qt5/qt5.inc

@@ -54,6 +54,7 @@ FILES_${PN}-tools-dbg = " \

"

FILES_${PN}-plugins-dbg = " \

     ${OE_QMAKE_PATH_PLUGINS}/*/.debug/* \

+    ${OE_QMAKE_PATH_PLUGINS}/*/*/.debug/* \

"

# extra packages

@@ -98,6 +99,7 @@ FILES_${PN}-tools = " \

"

FILES_${PN}-plugins = " \

     ${OE_QMAKE_PATH_PLUGINS}/*/*${SOLIBSDEV} \

+    ${OE_QMAKE_PATH_PLUGINS}/*/*/*${SOLIBSDEV} \

"

FILES_${PN}-mkspecs = "\

     ${OE_QMAKE_PATH_ARCHDATA}/mkspecs \

  • Define your machine: export MACHINE=xxx (replace with your board)
  • Setup build environment: cd .. ; . setup-environment build
  • edit your local layer conf ("conf/bblayers.conf") and add the following two lines:

  ${BSPDIR}/sources/meta-openembedded/meta-ruby \

  ${BSPDIR}/sources/meta-qt5 \

  • edit your local.conf and add the following lines:

DISTRO_FEATURES_remove = "x11 wayland"

IMAGE_INSTALL_append = " \

    firmware-imx-vpu-imx6q \

    firmware-imx-vpu-imx6d \

"

IMAGE_INSTALL_append = " \

    cpufrequtils \

    nano \

    packagegroup-fsl-gstreamer \

    packagegroup-fsl-tools-testapps \

    packagegroup-fsl-tools-benchmark \

    gstreamer \

    gst-plugins-base-app \

    gst-plugins-base \

    gst-plugins-good \

    gst-plugins-good-rtsp \

    gst-plugins-good-udp \

    gst-plugins-good-rtpmanager \

    gst-plugins-good-rtp \

    gst-plugins-good-video4linux2 \

    qtbase-fonts \

    qtbase-plugins \

    qtbase-tools \

    qtbase-examples \

    qtdeclarative \

    qtdeclarative-plugins \

    qtdeclarative-tools \

    qtdeclarative-examples \

    qtdeclarative-qmlplugins \

    qtmultimedia \

    qtmultimedia-plugins \

    qtmultimedia-examples \

    qtmultimedia-qmlplugins \

    qtsvg \

    qtsvg-plugins \

    qtsensors \

    qtimageformats-plugins \

    qtsystems \

    qtsystems-tools \

    qtsystems-examples \

    qtsystems-qmlplugins \

    qtscript \

    qt3d \

    qt3d-examples \

    qt3d-qmlplugins \

    qt3d-tools \

    qtwebkit \

    qtwebkit-examples-examples \

    qtwebkit-qmlplugins \

    cinematicexperience \

    "

PACKAGECONFIG_append_pn-qtmultimedia = " gstreamer010"

QT5_VERSION = "5.2.1+5.3.0-beta1+git%"

PREFERRED_VERSION_qtbase-native = "${QT5_VERSION}"

PREFERRED_VERSION_qtbase = "${QT5_VERSION}"

PREFERRED_VERSION_qtdeclarative = "${QT5_VERSION}"

PREFERRED_VERSION_qtjsbackend = "${QT5_VERSION}"

PREFERRED_VERSION_qtjsbackend-native = "${QT5_VERSION}"

PREFERRED_VERSION_qtgraphicaleffects = "${QT5_VERSION}"

PREFERRED_VERSION_qtimageformats = "${QT5_VERSION}"

PREFERRED_VERSION_qtmultimedia = "${QT5_VERSION}"

PREFERRED_VERSION_qtquick1 = "${QT5_VERSION}"

PREFERRED_VERSION_qtquickcontrols = "${QT5_VERSION}"

PREFERRED_VERSION_qtsensors = "${QT5_VERSION}"

PREFERRED_VERSION_qtserialport = "${QT5_VERSION}"

PREFERRED_VERSION_qtscript = "${QT5_VERSION}"

PREFERRED_VERSION_qtsvg = "${QT5_VERSION}"

PREFERRED_VERSION_qttools-native = "${QT5_VERSION}"

PREFERRED_VERSION_qtwebkit = "${QT5_VERSION}"

PREFERRED_VERSION_qtwebkit-examples = "${QT5_VERSION}"

PREFERRED_VERSION_qtxmlpatterns = "${QT5_VERSION}"

  • build an image: bitbake core-image-minimal

This image will build QT5.3 for framebuffer. If you want to use it with X11, then adapt according to this tutorial: Integrate Qt5 into yocto sato image on Wandboard - Wandboard Wiki

Please tell me, if I missed something. I wrote this as I remembered the steps.

Comments

Fir I'd like to thank you for you description how to build Qt 5.3 for imx6

but I am getting an error when trying your guide.

I started from scratch and did everything as you describe.

But i get an error for qtxmlpatterns saying:

ERROR: QA Issue: qtxmlpatterns: The compile log indicates that host include and/or library paths were used.

         Please check the log '/home/devuser/yocto/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/qtxmlpatterns/5.2.1+5.3.0-beta1+gitAUTOINC+d25091bb8b-r0/temp/log.do_compile' for more information.

ERROR: QA run found fatal errors. Please consider fixing them.

ERROR: Function failed: do_package_qa

ERROR: Logfile of failure stored in: /home/devuser/yocto/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/qtxmlpatterns/5.2.1+5.3.0-beta1+gitAUTOINC+d25091bb8b-r0/temp/log.do_package.28091

ERROR: Task 1589 (/home/devuser/yocto/sources/meta-qt5/recipes-qt/qt5/qtxmlpatterns_git.bb, do_package) failed with exit code '1'

if i look into the generated Makefile i can see a -L/usr/lib in LDFLAGS.

I removed that and did a bitbake qtxmlpatterns -f -c compile and then a bitbake qtqmlpatterns

this succeeds then and i can continue bitbaking the image.

probably i should have deleted the generated .so, so it is linked without -L/usr/lib, but i am not using qtxmlpatterns right now.

But i have no clue how the  -L/usr/lib comes into the Makefile in LDFLAGS only for qtxmlpatterns module, i searh all files and *.pri and *.pro but have not found anything.

I am still bakingthe image now , so i dont know if will succeed in the end.

Best regards,

Gunnar

The git reposiitory is a moving target. Guess, it would have been best to pin it to a specific commit that I used.

I tried to reproduce the problem, but the current version from git gives me other problems already in the configure step of qtbase.

When I have a running version, I will change the recipe to the specific commit.

ok now i am also getting this for qtdeclarative. this was compiled before but somehow it started getting a new version from git,

i workaround that by doing

bitbake qtdeclarative -f -c compile

and then continuing, that will create a clean compile log as everything is compiled already so the QA dtetction will be tricked into thinking there is no problem.

It seems that are some very strange things happening in this repo. I had a backup from my old compile (only the sources folder) and checked the git revision that I checked out for this howto. It was 0c114f4bcf6bdf5b959ff8821bbbbff2dd1cdccf.

Looking at a new git clone, this commit no longer exists! Something strange is happening here.

Gunnar,

could you try

git checkout 92be18a3a14deed9d38b8fc6e89f09ba4d730597

And then add the patch from me.

This was the version I used (successfully). With the next commit, I get configure problems.

I will now see, If I can reproduce your problem.

Btw. which revision are you using exactly?

m ynext problem was qtlocation, it tries to build the 5.2.1 versin which fails.

i had to add

PREFERRED_VERSION_qtlocation = "${QT5_VERSION}"

to my local.conf.

but then it failed because of license md5 check. i had to copy the license checksum entries from qtsensers_git.bb to qtlocation_git.bb.

then it fails with the known ERROR: QA Issue: qtlocation: The compile log indicates that host include and/or library paths were used.

this i workaround as written above.


continue baking ...


Well, I just tried with the revision 92be18a3a14deed9d38b8fc6e89f09ba4d730597, and I could bake all my modules without problems. I checked qtxmlpatterns, but I do not use qtlocation.

I never had your problem. What is the host you are crosscompiling on?

ubuntu 12.04 32 bit vm

i also didnt explictly enable qtlocation. this is my local.conf

B_NUMBER_THREADS ?= "${@oe.utils.cpu_count()}"

PARALLEL_MAKE ?= "-j ${@oe.utils.cpu_count()}"

MACHINE ??= 'imx6qsabresd'

DISTRO ?= 'poky'

PACKAGE_CLASSES ?= "package_rpm"

DISTRO_FEATURES_remove = "x11 wayland"

EXTRA_IMAGE_FEATURES = "debug-tweaks ssh-server-openssh tools-profile dbg-pkgs tools-debug"

IMAGE_INSTALL_append = " \

    firmware-imx-vpu-imx6q \

    firmware-imx-vpu-imx6d \

"

IMAGE_INSTALL_append = " \

    cpufrequtils \

    nano \

    gdb \

    openssh-sftp-server \

    packagegroup-fsl-gstreamer \

    packagegroup-fsl-tools-testapps \

    packagegroup-fsl-tools-benchmark \

    gstreamer \

    gst-plugins-base-app \

    gst-plugins-base \

    gst-plugins-good \

    gst-plugins-good-rtsp \

    gst-plugins-good-udp \

    gst-plugins-good-rtpmanager \

    gst-plugins-good-rtp \

    gst-plugins-good-video4linux2 \

    qtbase-fonts \

    qtbase-plugins \

    qtbase-tools \

    qtbase-examples \

    qtdeclarative \

    qtdeclarative-plugins \

    qtdeclarative-tools \

    qtdeclarative-examples \

    qtdeclarative-qmlplugins \

    qtmultimedia \

    qtmultimedia-plugins \

    qtmultimedia-examples \

    qtmultimedia-qmlplugins \

    qtquickcontrols-qmlplugins \

    qtsvg \

    qtsvg-plugins \

    qtsensors \

    qtimageformats-plugins \

    qtsystems \

    qtsystems-tools \

    qtsystems-examples \

    qtsystems-qmlplugins \

    qtscript \

    qt3d \

    qt3d-examples \

    qt3d-qmlplugins \

    qt3d-tools \

    qtwebkit \

    qtwebkit-examples-examples \

    qtwebkit-qmlplugins \

    cinematicexperience \

    cairo pango fontconfig freetype pulseaudio dbus \

    alsa-lib alsa-tools alsa-state alsa-utils-alsaconf \

    "

PACKAGECONFIG_append_pn-qtbase = " accessibility gles2 openssl"

PACKAGECONFIG_append_pn-qtmultimedia = " gstreamer010"

PREFERRED_PROVIDER_jpeg = "libjpeg-turbo"

TOOLCHAIN_HOST_TASK_append = " nativesdk-python-subprocess"

QT5_VERSION = "5.2.1+5.3.0-beta1+git%"

PREFERRED_VERSION_qtbase-native = "${QT5_VERSION}"

PREFERRED_VERSION_qtbase = "${QT5_VERSION}"

PREFERRED_VERSION_qtdeclarative = "${QT5_VERSION}"

PREFERRED_VERSION_qtjsbackend = "${QT5_VERSION}"

PREFERRED_VERSION_qtjsbackend-native = "${QT5_VERSION}"

PREFERRED_VERSION_qtgraphicaleffects = "${QT5_VERSION}"

PREFERRED_VERSION_qtimageformats = "${QT5_VERSION}"

PREFERRED_VERSION_qtmultimedia = "${QT5_VERSION}"

PREFERRED_VERSION_qtquick1 = "${QT5_VERSION}"

PREFERRED_VERSION_qtquickcontrols = "${QT5_VERSION}"

PREFERRED_VERSION_qtsensors = "${QT5_VERSION}"

PREFERRED_VERSION_qtserialport = "${QT5_VERSION}"

PREFERRED_VERSION_qtscript = "${QT5_VERSION}"

PREFERRED_VERSION_qtsvg = "${QT5_VERSION}"

PREFERRED_VERSION_qttools-native = "${QT5_VERSION}"

PREFERRED_VERSION_qtwebkit = "${QT5_VERSION}"

PREFERRED_VERSION_qtwebkit-examples = "${QT5_VERSION}"

PREFERRED_VERSION_qtxmlpatterns = "${QT5_VERSION}"

PREFERRED_VERSION_qtlocation = "${QT5_VERSION}"

USER_CLASSES ?= "buildstats image-mklibs image-prelink"

PATCHRESOLVE = "noop"

BB_DISKMON_DIRS = "\

    STOPTASKS,${TMPDIR},1G,100K \

    STOPTASKS,${DL_DIR},1G,100K \

    STOPTASKS,${SSTATE_DIR},1G,100K \

    ABORT,${TMPDIR},100M,1K \

    ABORT,${DL_DIR},100M,1K \

    ABORT,${SSTATE_DIR},100M,1K"

PACKAGECONFIG_pn-qemu-native = "sdl"

ASSUME_PROVIDED += "libsdl-native"

CONF_VERSION = "1"

BB_NUMBER_THREADS = '4'

PARALLEL_MAKE = '-j 4'

DL_DIR ?= "${BSPDIR}/downloads/"

ACCEPT_FSL_EULA = "1"

Hmm, similar to me except I'm using 64bit.

But honestly, I have never seen your error message "ERROR: QA Issue: qt...: The compile log indicates that host include and/or library paths were used."


What meta-qt5 git revision have you checked out? Maybe this makes a difference.

Hmm, I'm not a Yocto expert. Just started my work with it. But it seems to be you did not checkout "master-next" for the yocto repo, but you use "dora". I'm not saying that this makes the difference. I have just noted.

What image do you build? core-image-minimal?

Otherwise, there is not much that comes to my mind. Maybe some other Yocto expert can comment on this.

i have fea4eb8fe57fb5dd52ead5a351d4ec0940301443

with this changes:

devuser@ubuntu:~/yocto/sources/meta-qt5$ git diff fea4eb8fe57fb5dd52ead5a351d4ec0940301443

diff --git a/recipes-qt/qt5/qt5.inc b/recipes-qt/qt5/qt5.inc

index dfc1c76..a2f9a73 100644

--- a/recipes-qt/qt5/qt5.inc

+++ b/recipes-qt/qt5/qt5.inc

@@ -54,6 +54,7 @@ FILES_${PN}-tools-dbg = " \

"

FILES_${PN}-plugins-dbg = " \

     ${OE_QMAKE_PATH_PLUGINS}/*/.debug/* \

+    ${OE_QMAKE_PATH_PLUGINS}/*/*/.debug/* \

"

# extra packages

@@ -98,6 +99,7 @@ FILES_${PN}-tools = " \

"

FILES_${PN}-plugins = " \

     ${OE_QMAKE_PATH_PLUGINS}/*/*${SOLIBSDEV} \

+    ${OE_QMAKE_PATH_PLUGINS}/*/*/*${SOLIBSDEV} \

"

FILES_${PN}-mkspecs = "\

     ${OE_QMAKE_PATH_ARCHDATA}/mkspecs \

diff --git a/recipes-qt/qt5/qtbase.inc b/recipes-qt/qt5/qtbase.inc

index 89736be..f23236a 100644

--- a/recipes-qt/qt5/qtbase.inc

+++ b/recipes-qt/qt5/qtbase.inc

@@ -126,7 +126,6 @@ PACKAGECONFIG[nis] = "-nis,-no-nis"

PACKAGECONFIG[widgets] = "-widgets,-no-widgets"

QT_CONFIG_FLAGS += " \

-    -reduce-relocations \

     -shared \

     -silent \

     -no-pch \

diff --git a/recipes-qt/qt5/qtlocation_git.bb b/recipes-qt/qt5/qtlocation_git.bb

index d1d2575..87ad63d 100644

--- a/recipes-qt/qt5/qtlocation_git.bb

+++ b/recipes-qt/qt5/qtlocation_git.bb

@@ -2,3 +2,10 @@ require qt5-git.inc

require ${PN}.inc

SRCREV = "9cbddccc24cdd4b51285ea9ecbf851f3eba2cd31"

+

+# older copyright year than what e.g. qtbase is using now

+LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=4193e7f1d47a858f6b7c0f1ee66161de \

+                    file://LICENSE.GPL;md5=d32239bcb673463ab874e80d47fae504 \

+                    file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6 \

+                    file://LICENSE.FDL;md5=6d9f2a9af4c8b8c3c769f6cc1b6aaf7e"

+

O.K., so now I fixed my configure problem with the latest version. Gunnar actually had the solution already in his changes:

--- a/recipes-qt/qt5/qtbase.inc

+++ b/recipes-qt/qt5/qtbase.inc

@@ -126,7 +126,6 @@ PACKAGECONFIG[nis] = "-nis,-no-nis"

PACKAGECONFIG[widgets] = "-widgets,-no-widgets"

QT_CONFIG_FLAGS += " \

- -reduce-relocations \

  -shared \

  -silent \

  -no-pch \

So, now I indeed get the same "ERROR: QA Issue: qt...: The compile log indicates that host include and/or library paths were used." error.


I don't know where the problem comes from, but I recommend you use revision 92be18a3a14deed9d38b8fc6e89f09ba4d730597, which is a bit older, but otherwise works without problems.

hi,

i found out adding WARN_QA="compile-host-path libdir" to local.conf suppresses the QA errors. but only after doing

bitbake <package> -f -c compile

the baked image runs fine. the only thing is that Qt5CinenmaticExperince does not run, because 5.3 has problems with the property name onText in Switch.qml. It seems as if onXXX is reserved for signal handler names now.

changing it  to  _onText everywhere it is used , makes the demo working again.

creating a toolchain with

bitbake meta-toolchain-qt5

needs some more entries in local.conf and some additional license hash copy paste actions, because the toolchain contains more qt packages than the image.

here my local.conf with debug symbols and gdb on device.

BB_NUMBER_THREADS ?= "${@oe.utils.cpu_count()}"

PARALLEL_MAKE ?= "-j ${@oe.utils.cpu_count()}"

MACHINE ??= 'imx6qsabresd'

DISTRO ?= 'poky'

PACKAGE_CLASSES ?= "package_rpm"

DISTRO_FEATURES_remove = "x11 wayland"

EXTRA_IMAGE_FEATURES = "debug-tweaks ssh-server-openssh tools-profile dbg-pkgs tools-debug"

IMAGE_INSTALL_append = " \

    firmware-imx-vpu-imx6q \

    firmware-imx-vpu-imx6d \

"

IMAGE_INSTALL_append = " \

    cpufrequtils \

    nano \

    gdb \

    openssh-sftp-server \

    packagegroup-fsl-gstreamer \

    packagegroup-fsl-tools-testapps \

    packagegroup-fsl-tools-benchmark \

    gstreamer \

    gst-plugins-base-app \

    gst-plugins-base \

    gst-plugins-good \

    gst-plugins-good-rtsp \

    gst-plugins-good-udp \

    gst-plugins-good-rtpmanager \

    gst-plugins-good-rtp \

    gst-plugins-good-video4linux2 \

    qtbase-fonts \

    qtbase-plugins \

    qtbase-tools \

    qtbase-examples \

    qtdeclarative \

    qtdeclarative-plugins \

    qtdeclarative-tools \

    qtdeclarative-examples \

    qtdeclarative-qmlplugins \

    qtmultimedia \

    qtmultimedia-plugins \

    qtmultimedia-examples \

    qtmultimedia-qmlplugins \

    qtquickcontrols-qmlplugins \

    qtsvg \

    qtsvg-plugins \

    qtsensors \

    qtimageformats-plugins \

    qtsystems \

    qtsystems-tools \

    qtsystems-examples \

    qtsystems-qmlplugins \

    qtscript \

    qt3d \

    qt3d-examples \

    qt3d-qmlplugins \

    qt3d-tools \

    qtwebkit \

    qtwebkit-examples-examples \

    qtwebkit-qmlplugins \

    cinematicexperience \

    cairo pango fontconfig freetype pulseaudio dbus \

    alsa-lib alsa-tools alsa-state alsa-utils-alsaconf \

    "

PACKAGECONFIG_append_pn-qtbase = " accessibility gles2 openssl"

PACKAGECONFIG_append_pn-qtmultimedia = " gstreamer010"

PREFERRED_PROVIDER_jpeg = "libjpeg-turbo"

TOOLCHAIN_HOST_TASK_append = " nativesdk-python-subprocess"

QT5_VERSION = "5.2.1+5.3.0-beta1+git%"

PREFERRED_VERSION_qtbase-native = "${QT5_VERSION}"

PREFERRED_VERSION_qtbase = "${QT5_VERSION}"

PREFERRED_VERSION_qtdeclarative = "${QT5_VERSION}"

PREFERRED_VERSION_qtjsbackend = "${QT5_VERSION}"

PREFERRED_VERSION_qtjsbackend-native = "${QT5_VERSION}"

PREFERRED_VERSION_qtgraphicaleffects = "${QT5_VERSION}"

PREFERRED_VERSION_qtimageformats = "${QT5_VERSION}"

PREFERRED_VERSION_qtmultimedia = "${QT5_VERSION}"

PREFERRED_VERSION_qtquick1 = "${QT5_VERSION}"

PREFERRED_VERSION_qtquickcontrols = "${QT5_VERSION}"

PREFERRED_VERSION_qtsensors = "${QT5_VERSION}"

PREFERRED_VERSION_qtserialport = "${QT5_VERSION}"

PREFERRED_VERSION_qtscript = "${QT5_VERSION}"

PREFERRED_VERSION_qtsvg = "${QT5_VERSION}"

PREFERRED_VERSION_qttools-native = "${QT5_VERSION}"

PREFERRED_VERSION_qtwebkit = "${QT5_VERSION}"

PREFERRED_VERSION_qtwebkit-examples = "${QT5_VERSION}"

PREFERRED_VERSION_qtxmlpatterns = "${QT5_VERSION}"

PREFERRED_VERSION_qtlocation = "${QT5_VERSION}"

PREFERRED_VERSION_qttools = "${QT5_VERSION}"

PREFERRED_VERSION_qtconnectivity = "${QT5_VERSION}"

PREFERRED_VERSION_nativesdk-qtbase = "${QT5_VERSION}"

WARN_QA="compile-host-path libdir"

USER_CLASSES ?= "buildstats image-mklibs image-prelink"

PATCHRESOLVE = "noop"

BB_DISKMON_DIRS = "\

    STOPTASKS,${TMPDIR},1G,100K \

    STOPTASKS,${DL_DIR},1G,100K \

    STOPTASKS,${SSTATE_DIR},1G,100K \

    ABORT,${TMPDIR},100M,1K \

    ABORT,${DL_DIR},100M,1K \

    ABORT,${SSTATE_DIR},100M,1K"

PACKAGECONFIG_pn-qemu-native = "sdl"

ASSUME_PROVIDED += "libsdl-native"

CONF_VERSION = "1"

BB_NUMBER_THREADS = '4'

PARALLEL_MAKE = '-j 4'

DL_DIR ?= "${BSPDIR}/downloads/"

ACCEPT_FSL_EULA = "1"

Are there any changes in the steps that are being posted with the latest qt5 revision from git?

Sorry, I cannot say. I am still using 92be18a3a14deed9d38b8fc6e89f09ba4d730597, as this works flawlessly for me with the original recipe.

So after step git clone -b jansa/qt5-5.3.0-beta1 https://github.com/meta-qt5/meta-qt5.git, I need to try git checkout 92be18a3a14deed9d38b8fc6e89f09ba4d730597 and proceed with the same as described?

Hope it will not have any problems in Qtlocation as I need to use the qtlocation module.

Yeah, that should be the steps.

I can't comment on QtLocation as I am not using it. I only use Qtbase and QtMultimedia.

Otherwise, you can try with the steps posted from Gunnar.

Yes it bit-bakes with these steps without any problems.

Please let me know steps to build and test sample Qt app as the default Qt5_CinematicExperience

didnot run properly with output white screen.

if you would have read my  comments above  you would have found:

the baked image runs fine. the only thing is that Qt5CinenmaticExperince does not run, because 5.3 has problems with the property name onText in Switch.qml. It seems as if onXXX is reserved for signal handler names now.

changing it  to  _onText everywhere it is used , makes the demo working again.

creating a toolchain with

bitbake meta-toolchain-qt5

needs some more entries in local.conf and some additional license hash copy paste actions, because the toolchain contains more qt packages than the image.

so bitbaking meta-toolchain-qt5 gives you a toolchain with qt5 included.

to build you own app is then just a matter of setting up the environment with the script  of the toolchain  and doing qmake and make.

I'm getting below error even after adding "qtquickcontrols-qmlplugins \" to local.conf

ERROR: Unable to install packages. Command '/home/kishore/meta-qt-toolchain/fsl-community-bsp/build/tmp/sysroots/i686-linux/usr/bin/smart --data-dir=/home/kishore/meta-qt-toolchain/fsl-community-bsp/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/meta-toolchain-qt5/1.0-r0/sdk/image/opt/poky/1.6+snapshot/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/var/lib/smart install -y packagegroup-core-standalone-sdk-target-dbg@all packagegroup-core-standalone-sdk-target@all packagegroup-qt5-toolchain-target@all' returned 1:

Loading cache...

Updating cache...               ######################################## [100%]

Computing transaction...error: Can't install packagegroup-qt5-toolchain-target-1.0-r0@all: no package provides qtquickcontrols-qmlplugins

ERROR: Function failed: do_populate_sdk

ERROR: Logfile of failure stored in: /home/kishore/meta-qt-toolchain/fsl-community-bsp/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/meta-toolchain-qt5/1.0-r0/temp/log.do_populate_sdk.6534

ERROR: Task 7 (/home/kishore/meta-qt-toolchain/fsl-community-bsp/sources/meta-qt5/recipes-qt/meta/meta-toolchain-qt5.bb, do_populate_sdk) failed with exit code '1'

I am using the meta-qt5 branch from git.

Though I check wout with Revision 92be18a3a14deed9d38b8fc6e89f09ba4d730597, it gives below error on my build system.

 

ERROR: Logfile of failure stored in: /home/ramakanth/fsl-community-bsp/build/tmp/work/cortexa9hf-vfp-neon-mx6-poky-linux-gnueabi/qtbase/5.2.1+5.3.0-beta1+gitAUTOINC+207598fd8e-r0/temp/log.do_configure.29906

Log data follows:

| DEBUG: Executing python function sysroot_cleansstate

| DEBUG: Python function sysroot_cleansstate finished

| DEBUG: Executing shell function qmake5_base_preconfigure

| DEBUG: Shell function qmake5_base_preconfigure finished

| DEBUG: Executing shell function do_configure

|

| This is the Qt Open Source Edition.

|

| You are licensed to use this software under the terms of

| the Lesser GNU General Public License (LGPL) versions 2.1.

| You are also licensed to use this software under the terms of

| the GNU General Public License (GPL) versions 3.

|

| You have already accepted the terms of the Open Source license.

|

| Performing shadow build...

| Preparing build tree...

| arm-poky-linux-gnueabi-g++ -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/home/ramakanth/fsl-community-bsp/build/tmp/sysroots/imx6qsabreauto -c -fvisibility=hidden fvisibility.c

| Symbol visibility control enabled.

| arm-poky-linux-gnueabi-g++ -march=armv7-a -mthumb-interwork -mfloat-abi=hard -mfpu=neon -mtune=cortex-a9 --sysroot=/home/ramakanth/fsl-community-bsp/build/tmp/sysroots/imx6qsabreauto -o libtest.so -shared -Wl,-Bsymbolic-functions -fPIC bsymbolic_functions.c

| bsymbolic_functions.c:2:2: error: #error "Symbolic function binding on this architecture may be broken, disabling it (see QTBUG-36129)."

| #error "Symbolic function binding on this architecture may be broken, disabling it (see QTBUG-36129)."

| ^

| Symbolic function binding disabled.

| -reduce-relocations was requested but this compiler does not support it

| Re-run configure with -v for more information

| WARNING: exit code 1 from a shell command.

| ERROR: Function failed: do_configure (log file is located at /home/ramakanth/fsl-community-bsp/build/tmp/work/cortexa9hf-vfp-neon-mx6-poky-linux-gnueabi/qtbase/5.2.1+5.3.0-beta1+gitAUTOINC+207598fd8e-r0/temp/log.do_configure.29906)

ERROR: Task 680 (/home/ramakanth/fsl-community-bsp/sources/meta-qt5/recipes-qt/qt5/qtbase_git.bb, do_configure) failed with exit code '1'

NOTE: Tasks Summary: Attempted 1089 tasks of which 31 didn't need to be rerun and 1 failed.

Waiting for 0 running tasks to finish:

Summary: 1 task failed:

/home/ramakanth/fsl-community-bsp/sources/meta-qt5/recipes-qt/qt5/qtbase_git.bb, do_configure

Summary: There were 3 WARNING messages shown.

Summary: There was 1 ERROR message shown, returning a non-zero exit code.

Please let me know if there is a workaround for the same

The above error is thrown when I did bitbake meta-toolchain-qt5


I don't use the toolchain, as I build my app directly in yocto.

But if you get this error, then remove the line containing "-reduce-relocations" from the following files:

recipes-qt/qt5/nativesdk-qtbase.inc
recipes-qt/qt5/qtbase.inc

am getting below error even after adding qtquickcontrols-qmlplugins to local.conf. Please let me know how to resolve this.

ERROR: Unable to install packages. Command '/home/ramakanth/fsl-community-bsp/build/tmp/sysroots/i686-linux/usr/bin/smart --data-dir=/home/ramakanth/fsl-community-bsp/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/meta-toolchain-qt5/1.0-r0/sdk/image/opt/poky/1.6+snapshot/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/var/lib/smart install -y packagegroup-core-standalone-sdk-target-dbg@all packagegroup-core-standalone-sdk-target@all packagegroup-qt5-toolchain-target@all' returned 1:

Loading cache...

Updating cache...               ######################################## [100%]

Computing transaction...error: Can't install packagegroup-qt5-toolchain-target-1.0-r0@all: no package provides qtquickcontrols-qmlplugins

ERROR: Function failed: do_populate_sdk

ERROR: Logfile of failure stored in: /home/ramakanth/fsl-community-bsp/build/tmp/work/cortexa9hf-vfp-neon-poky-linux-gnueabi/meta-toolchain-qt5/1.0-r0/temp/log.do_populate_sdk.5288

ERROR: Task 7 (/home/ramakanth/fsl-community-bsp/sources/meta-qt5/recipes-qt/meta/meta-toolchain-qt5.bb, do_populate_sdk) failed with exit code '1'

I removed qtquickcontrols-qmlplugins from local.conf and packagegroup-qt5-toolchain-target to get rid of the above error. It generated

poky-eglibc-i686-meta-toolchain-qt5-cortexa9hf-vfp-neon-toolchain-1.6+snapshot.sh in /tmp/deploy/sdk. Please let me know if we run the script, where exactly qmake will be generated so that I would like to build my app.

I got below error when I run bitbake core-image-minimal..However, bitbake meta-toolchain-qt5 was successful and qmake is generated.

Probably it has sth to do picking the latest git version.

Error..qtquickcontrols not found in the base feeds.

Please let me know if there is a workaround for the same.

I just wanted to say thanks. These posts were extremely helpful in getting 5.3 running on the Wandboard.

I've tested QML video with rotating text over top and the CPU usage dropped from 90% in Qt 5.2.1 to 35% in Qt 5.3 beta.  Clearly the VPU is being used now along with the GPU.

Cheers!

If I want to build my app directly in Yocto, where do I need to keep the app sources?

Do I need to mention in local.conf as building through toolchain is not working fine

You need to add a recipe for your app. Have a look at the cinematicexperience recipe. You can copy it, rename it and adapt to your app.

Iam bitbaking but at the end throws below qtquickcontrols error..Atleast in the earlier recipes, this problem didnot occur..

ERROR: qtquickcontrols not found in the base feeds

ERROR: Function failed: do_rootfs

ERROR: Logfile of failure stored in: /home/kishore/Yocto_Qt/fsl-community-bsp/build/tmp/work/imx6qsabreauto-poky-linux-gnueabi/core-image-minimal/1.0-r0/temp/log.do_rootfs.28549

ERROR: Task 7 (/home/kishore/Yocto_Qt/fsl-community-bsp/sources/poky/meta/recipes-core/images/core-image-minimal.bb, do_rootfs) failed with exit code '1'

Do you need qtquickcontrols? If not, a simple solution is, to remove it from your local.conf.

If you need it, you will need to investigate, why it is not built.

Yes I do need qtquickcontrols using splitview qtquickcontrol in my app.. Seems it is a known issue as mentioned in https://community.freescale.com/thread/324000

As i see in qtbase.inc, accessibility is required to compile qtquickcontrols..

I did mention PACKAGECONFIG_append_pn-qtbase = " accessibility gles2 openssl" in local.conf but still the problem is seen.

For now, removing from local.conf..Is it possible to compile qtquickcontrols source separately later? If so, please let me know the steps

Removing qtquickcontrols from local.conf created the image successfully.

so bitbaking meta-toolchain-qt5 created a toolchain with qt5 included.

I tried to set up the environment with the script  of the toolchain setting qmake path to /opt/poky/1.6+snapshot/sysroots/i686-pokysdk-linux/usr/bin/qt5.

But QMAKE_SPEC takes invalid conf i.e. /fsl-community-bsp/build/tmp/sysroots/i686-linux/usr/lib/qt5/mkspecs/linux-oe-g++ which throws an error make:c command not found while building the sample app.

Please let me know how to setup the path and correct sysroot.

Build does not compiled. In Makefiles of qt* packages set wrong library path(/usr/lib instead $(sysroot)//usr/lib). If fixed it packages build, but on board examples programs corrupt with Segmentation Fault message.

Anybody created working build?

Where in Makefile were the library paths set to /usr/lib instead of [sysroot]/usr/lib?

For example in Makefiles in qtxmlpatterns, qtdeclarative, qtwebkit.

Library path set in it by "-L/usr/lib".

find . -name "Makefiles*" -exec grep "-L/usr/lib" '{}' \;

show this.

In qt* 5.1.1 and qt 5.2.1 I have no this problem? but in it examples browsers does not show any html5 videos

https://github.com/meta-qt5/meta-qt5/blob/jansa/qt5-5.3.0-beta1/recipes-qt/qt5/qtbase/0005-qt_module...

That patch needs to be updated for 5.3.0. I'm looking into this but I'm new to mkspecs and qmake, so any advice is welcome.

See also:

https://www.mail-archive.com/openembedded-devel@lists.openembedded.org/msg36039.html

I have got a build working for the wandboard here if anyone is interested:

cetola/meta-qt5 · GitHub

You will need to add the qt5-5.3.0 branch to the fsl-community-bsp daisy branch.  Also add this to your local.conf:

DISTRO_FEATURES_remove = "x11 wayland"

PACKAGECONFIG_append_pn-qtmultimedia = " gstreamer010 "


Then bitbake wandboard-image-qt5.  You can test HDMI video playback with gplay or gst-launch:

gst-launch filesrc location=video.m4v typefind=true \

! aiurdemux \

! vpudec \

! mfw_v4lsink

I've also tested video in QML and hardware video acceleration seems to work fine.  The only issue was that I had to run the following command to display video correctly:


echo -n 32 > /sys/class/graphics/fb0/bits_per_pixel

This may just be a QML or Qt setting that I missed.  Anyway, video worked fine, as did some simple text animations.

Please try to play html5 video in examples test browsers. Is it work?

In my build qt 5.1.1 qml video players work fine, but WebKit show video controls and first frame from video for WebM(from w4c.org site for example), from youtube I see player controls and download circle.

In console i see this messages from Gstreamer like this:

Qt Warning: Could not find a location of the system's Compose files. Consider setting the QTCOMPOSE environment variable.

libpng warning: iCCP: Not recognizing known sRGB profile that has been edited

Received finished signal while progress is still: 10 Url:  QUrl( "http://qt-project.org/" ) 

Aiur: 3.0.11

Core: MPEG4PARSER_06.07.04  build on Dec  5 2013 11:41:38

  mime: video/quicktime; audio/x-m4a; application/x-3gp

  file: /usr/lib/imx-mm/parser/lib_mp4_parser_arm11_elinux.so.3.2

Content Info:

    URI:

          https://r1---sn-8xb5-px8e.googlevideo.com/videoplayback?ip=212.90.165.14&require

          ssl=yes&mws=yes&source=youtube&upn=4-tA0Ie6tDA&mv=m&sparams=id,ip,ipbits,itag,ra

          tebypass,requiressl,source,upn,expire&key=yt5&ipbits=0&mt=1401803916&id=o-ABczKx

          qqFwtM_XhBgSvGnsGqyiHL18Wy6SqK0BZepcFQ&signature=121A2CB3142FB772CD72A9F1D872603

          C749A2B74.0370EDFC498A96A43C8F8A98C10184E14158A0D2&sver=3&ratebypass=yes&expire=

          1401827798&ms=au&fexp=908548,912321,913434,916611,923341,926122,930008&itag=18&c

          pn=VgAqvxj2iI2hp45w&ptk=youtube_none&pltype=contentugc&c=WEB&cver=html5

    Seekable  : Yes

    Size(byte): 32830110

Movie Info:

    Seekable  : Yes

    Live      : No

    Duration  : 0:11:52.503360000

    ReadMode  : Track

    Track     : 2

Track 00 [video_000000] Enabled

    Duration: 0:11:52.503360000

    Language: und

    Mime:

          video/x-h264, parsed=(boolean)true, width=(int)640, height=(int)360, framerate=(

          fraction)24000/1001

Track 01 [audio_000000] Enabled

    Duration: 0:11:52.503360000

    Language: und

    Mime:

          audio/mpeg, mpegversion=(int)4, channels=(int)2, rate=(int)44100, bitrate=(int)9

          6000, framed=(boolean)true, stream-format=(string)raw, codec_data=(buffer)121000

          00000000000000000000000000

Beep: 3.0.11

Core: AAC decoder Wrapper  build on Jan 22 2014 15:42:53

  mime: audio/mpeg, mpegversion=(int){2,4}

  file: /usr/lib/imx-mm/audio-codec/wrap/lib_aacd_wrap_arm12_elinux.so.3

CODEC: BLN_MAD-MMCODECS_AACD_ARM_03.07.00_CORTEX-A8  build on Sep 18 2013 10:29:53.

[--->FINALIZE aiurdemux

Iam getting QtQuickcontrols Not found in base feeds error after adding the qt5-5.3.0 branch to the fsl-community-bsp daisy branch.

Please let me know local.conf to see if anything is missing incase you have added qtquickcontrols and any dependecy.

add qtquick1 into IMAGE_INSTALL_append

Is the below local.conf good enough apart from adding qtquick1:

BB_NUMBER_THREADS ?= "${@oe.utils.cpu_count()}"

PARALLEL_MAKE ?= "-j ${@oe.utils.cpu_count()}"

MACHINE ??= 'imx6qsabreauto'

DISTRO ?= 'poky'

PACKAGE_CLASSES ?= "package_rpm"

EXTRA_IMAGE_FEATURES = "debug-tweaks"

USER_CLASSES ?= "buildstats image-mklibs image-prelink"

PATCHRESOLVE = "noop"

BB_DISKMON_DIRS = "\

STOPTASKS,${TMPDIR},1G,100K \

STOPTASKS,${DL_DIR},1G,100K \

STOPTASKS,${SSTATE_DIR},1G,100K \

ABORT,${TMPDIR},100M,1K \

ABORT,${DL_DIR},100M,1K \

ABORT,${SSTATE_DIR},100M,1K"

PACKAGECONFIG_pn-qemu-native = "sdl"

ASSUME_PROVIDED += "libsdl-native"

CONF_VERSION = "1"

BB_NUMBER_THREADS = '4'

PARALLEL_MAKE = '-j 4'

DL_DIR ?= "${BSPDIR}/downloads/"

ACCEPT_FSL_EULA = ""

DISTRO_FEATURES_remove = "x11 wayland"

EXTRA_IMAGE_FEATURES = "debug-tweaks ssh-server-openssh tools-profile dbg-pkgs tools-debug"

PACKAGECONFIG_append_pn-qtbase= "accessibility gles2 openssl"

PACKAGECONFIG_append_pn-qtmultimedia = " gstreamer010"

IMAGE_INSTALL_append = " \

firmware-imx-vpu-imx6q \

firmware-imx-vpu-imx6d \

"

IMAGE_INSTALL_append = " \

cpufrequtils \

binutils \

nano \

gdb \

openssh-sftp-server \

packagegroup-fsl-gstreamer \

packagegroup-fsl-tools-testapps \

packagegroup-fsl-tools-benchmark \

gstreamer \

gst-plugins-base-app \

gst-plugins-base \

gst-plugins-good \

gst-plugins-good-rtsp \

gst-plugins-good-udp \

gst-plugins-good-rtpmanager \

gst-plugins-good-rtp \

gst-plugins-good-video4linux2 \

qtbase-fonts \

qtbase-plugins \

qtbase-tools \

qtbase-examples \

qtdeclarative \

qtdeclarative-plugins \

qtdeclarative-tools \

qtdeclarative-examples \

qtdeclarative-qmlplugins \

qtmultimedia \

qtmultimedia-plugins \

qtmultimedia-examples \

qtmultimedia-qmlplugins \

qtlocation \

qtlocation-plugins \

qtlocation-qmlplugins \

qtlocation-examples \

qtsvg \

qtsvg-plugins \

qtimageformats-plugins \

qtsystems \

qtsystems-tools \

qtsystems-qmlplugins \

qtscript \

qt3d \

qt3d-examples \

qt3d-qmlplugins \

qt3d-tools \

qtwebkit \

qtwebkit-qmlplugins \

qtconnectivity \

qtconnectivity-examples \

qtconnectivity-qmlplugins \

qtserialport \

qtquickcontrols \

qtquickcontrols-qmlplugins \

cinematicexperience \

ivi \

cairo pango fontconfig freetype pulseaudio dbus zlib \

alsa-lib alsa-tools alsa-state alsa-utils-alsaconf \

tslib evtest tslib-conf tslib-tests tslib-calibrate \

gcc g++ libgcc libgcc-dev libstdc++ libstdc++-dev libstdc++-staticdev \

"

WARN_QA="compile-host-path libdir"

It's build ok, but examples, such as multimediawidgets/player,  multimediawidgets/videowidget doesn't play video, qtwebkit/browser, qtwebkit/youtubeview qtwebkit/fanicybrowser does't support HTML5 video and play it.

In 5.1.1 version video is play video in upper players, browsers support HTML5 video, but doesn't play it.

Have you any ideas?

I have not had a chance to look at the examples yet. The big change in 5.3.0 is the way QML renders video (now using hardware decoding).

Since the video works fine in QML, either the examples are not building correctly or the way that the examples play video is now obsolete. My first guess would be to look at the examples code and see the way that they are rendering the video.

I will post again if I have a chance to look at this, though it will probably not be this week.

Many thanks to Michael Banditt for his work getting 5.3.0 beta running. (not to mention Otavio and Martin Jansa for maintaining the meta-qt5 branch).

I seem to be hijacking these comments, so I've created my own document. Anyone interested in chatting about 5.3.0 release can do so here:

Qt 5.3.0 release on i.MX6 using fsl-community-bsp and meta-qt5

Hi my name is Lucas and im new in embedded aplications , i follow all the wiki about how to create a yocto whit qt and how to get a sdk for my qt , but now when i try to compile some features like

QtQuick.Controls 1.2 ,Quick.Controls.Private 1.0, QtQuick.Controls.Styles 1.1 in QML is not working .

Whre could be the possible reason? and how to solve it ?

Thanks

Lucas

Dear Ramakanth , i[m getting the same problem that you related in your post and id like to know if you already found a solution for that

Thanks

Lucas Prado Rocha

I got exatctly the same error, however I am not able to find anyline with "-reduce-relocations" in nativesdk-qtbase.inc or qtbase.inc. Is there any other way how to resolve this ?

HI all,

In repository meta-qt5/meta-qt5 · GitHub is absent branch jansa/qt5-5.3.0-beta1.

What branch I should take instead?

Thanks!

No ratings
Version history
Last update:
‎04-18-2014 07:49 AM
Updated by: