Building Qt5 toolchain for Raspberry Pi2 Qt apps using Yocto fido
See this tutorial. My build machine is NUC with Debian 7.8.
Succeeded to build my image perfectly, but getting error while building my toolchain.
my local.conf
, I removed x11
feature
MACHINE = "raspberrypi2"
LICENSE_FLAGS_WHITELIST="commercial license"
DISTRO = "poky"
DL_DIR = "${TOPDIR}/../dl"
PACKAGE_CLASSES = "package_ipk"
DISTRO_FEATURES_remove = "x11 wayland" <=========
# Set Rpi GPU Memory to 128MB
GPU_MEM = "128"
my bblayers.conf
# LAYER_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
LCONF_VERSION = "6"
BBPATH = "${TOPDIR}"
BBFILES ?= ""
BBLAYERS ?= " \
${TOPDIR}/../poky/meta-embarcados \
${TOPDIR}/../poky/meta-embarcados/meta-rpi \
${TOPDIR}/../poky/meta-qt5 \
${TOPDIR}/../poky/meta-raspberrypi \
${TOPDIR}/../poky/meta-openembedded/meta-oe \
${TOPDIR}/../poky/meta-openembedded/meta-ruby \
${TOPDIR}/../poky/meta \
${TOPDIR}/../poky/meta-yocto \
"
I have tried from scratch by removing my build/tmp
folder to no avail, I am still getting the x11
dependency issue although it's a removed feature in my local.conf
.
ERROR: Unable to install packages. Command '/home/otto/yocto/build/tmp/sysroots/x86_64-linux/usr/bin/opkg-cl -f /home/otto/yocto/build/tmp/work/cortexa7hf-vfp-vfpv4-neon-poky-linux-gnueabi/meta-toolchain-qt5/1.0-r0/opkg.conf -o /home/otto/yocto/build/tmp/work/cortexa7hf-vfp-vfpv4-neon-poky-linux-gnueabi/meta-toolchain-qt5/1.0-r0/sdk/image/opt/poky/1.8/sysroots/cortexa7hf-vfp-vfpv4-neon-poky-linux-gnueabi --force_postinstall --prefer-arch-to-version install packagegroup-core-standalone-sdk-target-dbg packagegroup-core-standalone-sdk-target packagegroup-qt5-toolchain-target' returned 255:
Installing packagegroup-core-standalone-sdk-target-dbg (1.0-r8) on root.
Downloading file:/home/otto/yocto/build/tmp/deploy/ipk/all/packagegroup-core-standalone-sdk-target-dbg_1.0-r8_all.ipk.
and
Configuring glibc-gconv-cp1252.
Configuring libsegfault.
Configuring libgcov-dev.
Configuring glibc-gconv-iso8859-15.
Configuring glibc-gconv-iso8859-1.
Configuring packagegroup-core-standalone-sdk-target.
Collected errors:
* satisfy_dependencies_for: Cannot satisfy the following dependencies for packagegroup-qt5-toolchain-target:
* libx11-6 (>= 1.6.2) * libxcb1 (>= 1.11) * libxau6 (>= 1.0.8) * libxdmcp6 (>= 1.1.1) *
* opkg_install_cmd: Cannot install package packagegroup-qt5-toolchain-target.
ERROR: Function failed: do_populate_sdk
ERROR: Logfile of failure stored in: /home/otto/yocto/build/tmp/work/cortexa7hf-vfp-vfpv4-neon-poky-linux-gnueabi/meta-toolchain-qt5/1.0-r0/temp/log.do_populate_sdk.26687
ERROR: Task 7 (/home/otto/yocto/build/../poky/meta-qt5/recipes-qt/meta/meta-toolchain-qt5.bb, do_populate_sdk) failed with exit code '1'
NOTE: Tasks Summary: Attempted 3419 tasks of which 3418 didn't need to be rerun and 1 failed.
No currently running tasks (3418 of 3420)
Summary: 1 task failed:
/home/otto/yocto/build/../poky/meta-qt5/recipes-qt/meta/meta-toolchain-qt5.bb, do_populate_sdk
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
Any pointers on how to resolve this? why would it still try to compile x11
feature when removed?
(Votes down are Ok, but a comment explaining why you are voting down is better. It's not like I am not trying hard on my side to resolve this critical issue on a Sunday! There is definitely some trolls in the StackExchange community)
Libraries on build machine
This look to be the problem, the installed version is 1.5.0-1+deb7u2
where it requires >=1.6.2
. That doesn't answer my question, but that's a hint.
otto@marvin:~/yocto/build$ apt-cache policy libx11-6
libx11-6:
Installed: 2:1.5.0-1+deb7u2
Candidate: 2:1.5.0-1+deb7u2
Version table:
*** 2:1.5.0-1+deb7u2 0
500 http://security.debian.org/ wheezy/updates/main amd64 Packages
100 /var/lib/dpkg/status
2:1.5.0-1+deb7u1 0
500 http://ftp.us.debian.org/debian/ wheezy/main amd64 Packages
500 http://http.debian.net/debian/ wheezy/main amd64 Packages
otto@marvin:~/yocto/build$ apt-cache policy libxcb1
libxcb1:
Installed: 1.8.1-2+deb7u1
Candidate: 1.8.1-2+deb7u1
Version table:
1.10-3~bpo70+1 0
100 http://http.debian.net/debian/ wheezy-backports/main amd64 Packages
*** 1.8.1-2+deb7u1 0
500 http://ftp.us.debian.org/debian/ wheezy/main amd64 Packages
500 http://security.debian.org/ wheezy/updates/main amd64 Packages
500 http://http.debian.net/debian/ wheezy/main amd64 Packages
100 /var/lib/dpkg/status
otto@marvin:~/yocto/build$ apt-cache policy libxau6
libxau6:
Installed: 1:1.0.7-1
Candidate: 1:1.0.7-1
Version table:
*** 1:1.0.7-1 0
500 http://ftp.us.debian.org/debian/ wheezy/main amd64 Packages
500 http://http.debian.net/debian/ wheezy/main amd64 Packages
100 /var/lib/dpkg/status
otto@marvin:~/yocto/build$ apt-cache policy libxdmcp6
libxdmcp6:
Installed: 1:1.1.1-1
Candidate: 1:1.1.1-1
Version table:
*** 1:1.1.1-1 0
500 http://ftp.us.debian.org/debian/ wheezy/main amd64 Packages
500 http://http.debian.net/debian/ wheezy/main amd64 Packages
100 /var/lib/dpkg/status
Upgraded to Debian 8.1 but problem persists
although libx11-6
, libxau6
, libxdmcp6
satisfy the version requirements, one library doesn't, and I can't install >=1.11
(I think), this is the latest libxcb1
on Jessie that I can get.
otto@marvin:~/yocto$ sudo apt-cache policy libxcb1
libxcb1:
Installed: 1.10-3+b1
Candidate: 1.10-3+b1
Version table:
*** 1.10-3+b1 0
500 http://ftp.us.debian.org/debian/ jessie/main amd64 Packages
500 http://http.debian.net/debian/ jessie/main amd64 Packages
100 /var/lib/dpkg/status
the message
Configuring packagegroup-core-standalone-sdk-target.
Collected errors:
* satisfy_dependencies_for: Cannot satisfy the following dependencies for packagegroup-qt5-toolchain-target:
* libx11-6 (>= 1.6.2) * libxcb1 (>= 1.11) * libxau6 (>= 1.0.8) * libxdmcp6 (>= 1.1.1) *
* opkg_install_cmd: Cannot install package packagegroup-qt5-toolchain-target.
ERROR: Function failed: do_populate_sdk
ERROR: Logfile of failure stored in: /home/otto/yocto/build/tmp/work/cortexa7hf-vfp-vfpv4-neon-poky-linux-gnueabi/meta-toolchain-qt5/1.0-r0/temp/log.do_populate_sdk.12273
ERROR: Task 7 (/home/otto/yocto/build/../poky/meta-qt5/recipes-qt/meta/meta-toolchain-qt5.bb, do_populate_sdk) failed with exit code '1'
NOTE: Tasks Summary: Attempted 3419 tasks of which 3418 didn't need to be rerun and 1 failed.
No currently running tasks (3418 of 3420)
Summary: 1 task failed:
/home/otto/yocto/build/../poky/meta-qt5/recipes-qt/meta/meta-toolchain-qt5.bb, do_populate_sdk
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
Identified failing command
/home/otto/yocto/build/tmp/sysroots/x86_64-linux/usr/bin/opkg-cl -f /home/otto/yocto/build/tmp/work/cortexa7hf-vfp-vfpv4-neon-poky-linux-gnueabi/meta-toolchain-qt5/1.0-r0/opkg.conf -o /home/otto/yocto/build/tmp/work/cortexa7hf-vfp-vfpv4-neon-poky-linux-gnueabi/meta-toolchain-qt5/1.0-r0/sdk/image/opt/poky/1.8/sysroots/cortexa7hf-vfp-vfpv4-neon-poky-linux-gnueabi --force_postinstall --prefer-arch-to-version install packagegroup-qt5-toolchain-target
definitely something in the packagegroup-qt5-toolchain-target
This sounds similar to the experience I had where I built for X11 then subsequently turned it off with
DISTRO_FEATURES_remove = "x11"
.As far as I could see there was still a dependency on X11 somewhere in the license manifest, from what I recall there was a header file used
Xauth
inpango/cairo
that's stubbed out without X11.The problem went away when I built for a different
MACHINE
, so I would suggest launching a completely fresh build without X11 after clearing yourSSTATE_CACHE
.