【发布时间】:2017-06-15 18:52:37
【问题描述】:
我正在尝试在我的 yocto 项目中添加元虚拟化层。该层依赖于 openembedded-core 和 meta-openembedded 提供的多个层。以下是添加元虚拟化层及其依赖项后我的 bblayers.conf 文件的结构。
BBLAYERS ?= " \
/home/mshehery/Downloads/git/Yocto/poky/meta \
/home/mshehery/Downloads/git/Yocto/poky/meta-yocto \
/home/mshehery/Downloads/git/Yocto/poky/meta-yocto-bsp \
/home/mshehery/Downloads/git/Yocto/poky/meta-oe \
/home/mshehery/Downloads/git/Yocto/poky/meta-virtualization \
/home/mshehery/Downloads/git/Yocto/poky/meta-networking \
/home/mshehery/Downloads/git/Yocto/poky/meta-filesystems \
/home/mshehery/Downloads/git/Yocto/poky/meta-python \
"
但是,当我尝试在元虚拟化层中构建 docker 时,遇到以下错误
WARNING: Host distribution "Ubuntu-16.04" 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 1078 entries from dependency cache.
NOTE: Error during finalise of /home/mshehery/Downloads/git/Yocto/poky/meta-oe/recipes-devtools/tcltk/tk_8.6.6.bb | ETA: --:--:--
ERROR: ParseError at /home/mshehery/Downloads/git/Yocto/poky/meta-oe/recipes-connectivity/libqmi/libqmi_1.16.0.bb:12: Could not inherit file classes/bash-completion.bbclass
如果我没记错的话,yocto 项目的当前版本使用 openembedded 作为他们的构建系统。那么,是否需要将 openembedded-core 集成到我的 yocto 项目中以添加元虚拟化层,或者它是否已经默认存在于 yocto 项目中?
【问题讨论】:
-
能否添加您正在使用的版本/分支? (对于所有包含的图层)。不,您不需要添加 openembedded-core,该层是您列表中的第一个 (
meta)。 -
@Anders yo0cto 的版本是 Yocto 2.2 (Morty)。我从以下链接下载的图层 (layers.openembedded.org/layerindex/branch/master/layers)
-
我能够使用 oe-core 成功构建元虚拟化层,但是当我尝试将这些层添加到我的 yocto 项目时出现问题。
-
如果你删除了
meta-virtualization,你能构建剩下的吗?bash-completions.bbclass应该在meta/classes... -
在添加元虚拟化层及其依赖项之前,我能够构建 core-image-minimal 映像。缺少 bash-completions.bbclass 只是错误之一。我可以将此文件从 openembedded-core/meta/classes 目录添加到 poky/meta/classes 中。但随后它开始显示多个语法错误,其中 bitbake 无法解析配方的某些部分。真正的问题是将元虚拟化层与 poky 集成,这是我无法做到的。