0

尝试为具有 Intel Quark 处理器的 Advantech UBC-221 构建 Linux。该系统是 Debian 9,在 VMware 上运行。之前能够成功构建poky。

让我总结一下我在做什么:

mkdir quark
cd quark
git clone git://git.yoctoproject.org/meta-intel-quark
git clone git://git.openembedded.org/openembedded-core
git clone git://git.yoctoproject.org/poky
cp -r poky/bitbake .
cd openembedded-core
source oe-init-build-env
bitbake-layers add-layer ~/quark/meta-intel-quark/
bitbake core-image-base

我得到的错误代码:

WARNING: Layer quark-bsp should set LAYERSERIES_COMPAT_quark-bsp in its conf/layer.conf file to list the core layer names it is compatible with.
WARNING: Layer quark-bsp should set LAYERSERIES_COMPAT_quark-bsp in its conf/layer.conf file to list the core layer names it is compatible with.
WARNING: /home/bgabor/quark/meta-intel-quark/recipes-kernel/linux/linux-yocto-quark_3.8.bb: Variable key RDEPENDS_${KERNEL_PACKAGE_NAME}-base (${KERNEL_PACKAGE_NAME}-image) replaces original key RDEPENDS_kernel-base ().
WARNING: /home/bgabor/quark/meta-intel-quark/recipes-bsp/grub/grub_0.97.bb: Exception during build_dependencies for CFLAGS
WARNING: /home/bgabor/quark/meta-intel-quark/recipes-bsp/grub/grub_0.97.bb: Error during finalise of /home/bgabor/quark/meta-intel-quark/recipes-bsp/grub/grub_0.97.bb
ERROR: ExpansionError during parsing /home/bgabor/quark/meta-intel-quark/recipes-bsp/grub/grub_0.97.bb
Traceback (most recent call last):
bb.data_smart.ExpansionError: Failure expanding variable CFLAGS, expression was  -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/home/bgabor/quark/openembedded-core/build/tmp-glibc/work/i586-oe-linux/grub/0.97+gitAUTOINC+5775f32a62-r0=/usr/src/debug/grub/0.97+gitAUTOINC+5775f32a62-r0 -fdebug-prefix-map=/home/bgabor/quark/openembedded-core/build/tmp-glibc/work/i586-oe-linux/grub/0.97+gitAUTOINC+5775f32a62-r0/recipe-sysroot= -fdebug-prefix-map=/home/bgabor/quark/openembedded-core/build/tmp-glibc/work/i586-oe-linux/grub/0.97+gitAUTOINC+5775f32a62-r0/recipe-sysroot-native=  -Os -fno-strict-aliasing -Wall -Werror -Wno-shadow -Wno-unused  -Wno-pointer-sign  -DINTEL_QUARK_TEST=${@base_contains('PACKAGECONFIG', 'grub_test', '1', '0', d)} which triggered exception NameError: name 'base_contains' is not defined
Summary: There were 5 WARNING messages shown.
Summary: There was 1 ERROR message shown, returning a non-zero exit code.

我几乎被困在这里。一些帮助将不胜感激!

编辑:尝试在 Debian 7.11 32 位系统上构建。它变得更好但是另一个错误来了:

bgabor@debian:~/quark/dizzy/build$ bitbake core-image-base
WARNING: Host distribution "Debian-7.11" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution.
Loading cache: 100% |####################################################################################################################################################| ETA:  00:00:00
Loaded 1292 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION        = "1.24.0"
BUILD_SYS         = "i686-linux"
NATIVELSBSTRING   = "Debian-7.11"
TARGET_SYS        = "i586-poky-linux"
MACHINE           = "quark"
DISTRO            = "poky"
DISTRO_VERSION    = "1.7.3"
TUNE_FEATURES     = "m32 i586"
TARGET_FPU        = ""
meta              
meta-yocto        
meta-yocto-bsp    = "dizzy:58863ad092c9a279e305c841dbb4353de2ecfae8"
meta-intel-quark  = "master:a314f0ceea986fde42d5d9b0ea449f7a563e9351"

NOTE: Preparing runqueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
ERROR: Unable to install packages. Command '/home/bgabor/quark/dizzy/build/tmp/sysroots/i686-linux/usr/bin/smart --quiet --data-dir=/home/bgabor/quark/dizzy/build/tmp/work/quark-poky-linux/core-image-minimal-initramfs/1.0-r0/rootfs/var/lib/smart install -y busybox@i586 initramfs-live-install-efi@i586 run-postinsts@all initramfs-live-install@i586 udev@i586 initramfs-live-boot@quark base-passwd@i586' returned 1:
error: Can't install initramfs-live-install-1.0-r9@i586: no package provides grub

ERROR: Function failed: do_rootfs
ERROR: Logfile of failure stored in: /home/bgabor/quark/dizzy/build/tmp/work/quark-poky-linux/core-image-minimal-initramfs/1.0-r0/temp/log.do_rootfs.29435
ERROR: Task 240 (/home/bgabor/quark/dizzy/meta/recipes-core/images/core-image-minimal-initramfs.bb, do_rootfs) failed with exit code '1'
NOTE: Tasks Summary: Attempted 2529 tasks of which 2527 didn't need to be rerun and 1 failed.
No currently running tasks (2435 of 2531)

Summary: 1 task failed:
  /home/bgabor/quark/dizzy/meta/recipes-core/images/core-image-minimal-initramfs.bb, do_rootfs
Summary: There was 1 WARNING message shown.
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.

它没有找到 grub 包,但是我可以看到食谱中有两个:

bgabor@debian:~/quark/dizzy/build$ bitbake-layers show-recipes | grep "grub" -A 3
Parsing recipes..done.
grub:
  meta-intel-quark     0.97+gitAUTOINC+5775f32a62
  meta                 0.97
  meta                 2.00
--
grub-conf:
  meta-intel-quark     1.0
grub-efi:
  meta                 2.00
gsettings-desktop-schemas:
  meta                 3.10.1

试图清理然后再次bitbake,但没有结果。这里可能有什么问题?

4

1 回答 1

1

首先,Poky 包含 OpenEmbedded Core,因此您无需克隆两者,只需克隆 Poky。

其次,meta-intel-iot 层已经死了,只正式支持 Poky 的 Daisy 版本(参见自述文件)。您可能会幸运地使用较新的版本,但显然不是 git master(又名 Thud)。

https://wiki.yoctoproject.org/wiki/Releases列出了版本。与其查看 Poky 的 master,不如查看相关的发布分支。我建议从 daisy 开始,但尝试一些更新的东西,比如 jethro 会是一个好主意。

于 2018-10-16T21:36:57.957 回答