bitbake meta-toolchain-qt5失败,虽然功能被删除但无法满足x11

时间:2015-06-14 13:39:18

标签: qt arm toolchain yocto qt5.4

使用Yocto fido See this tutorial为Raspberry Pi2 Qt应用构建Qt5工具链。我的构建机器是Debian 7.8的NUC。

成功构建我的图像,但在构建我的工具链时出错。

我的local.conf,我删除了x11功能

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"

我的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 \
  "

我已经从头开始尝试删除我的build/tmp文件夹无效,我仍然遇到x11依赖项问题,尽管我的local.conf已删除该功能。< / p>

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.

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.

有关如何解决此问题的任何指示?为什么在删除时仍会尝试编译x11功能?

(投票结果还不错,但是解释投票原因的评论会更好。但是我并不是想在周日努力解决这个关键问题!我肯定会有一些巨魔在StackExchange社区中)

构建机器上的库

这看起来是个问题,安装的版本为1.5.0-1+deb7u2,需要>=1.6.2。这并没有回答我的问题,但这是一个暗示。

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

升级到Debian 8.1但问题仍然存在

虽然libx11-6libxau6libxdmcp6满足版本要求,但是一个图书馆没有,我无法安装>=1.11(我认为),这是我能得到的latest libxcb1 on Jessie

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

消息

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.

识别失败的命令

/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

肯定是packagegroup-qt5-toolchain-target

中的内容

1 个答案:

答案 0 :(得分:0)

这听起来类似于我为 X11 构建的体验,然后随后使用DISTRO_FEATURES_remove = "x11"将其关闭。

据我所知,许可证清单中某处依赖 X11 ,我记得有一个头文件使用{{1}在Xauth中,如果没有 X11 ,则会被删除。

当我为不同的pango/cairo构建时,问题就消失了,因此我建议在清除MACHINE后启动一个没有X11的全新构建。