使用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
虽然libx11-6
,libxau6
,libxdmcp6
满足版本要求,但是一个图书馆没有,我无法安装>=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
答案 0 :(得分:0)
这听起来类似于我为 X11 构建的体验,然后随后使用DISTRO_FEATURES_remove = "x11"
将其关闭。
据我所知,许可证清单中某处依赖 X11 ,我记得有一个头文件使用{{1}在Xauth
中,如果没有 X11 ,则会被删除。
当我为不同的pango/cairo
构建时,问题就消失了,因此我建议在清除MACHINE
后启动一个没有X11的全新构建。