在 yocto 中构建元虚拟化层
Posted
技术标签:
【中文标题】在 yocto 中构建元虚拟化层【英文标题】:Building meta-virtualization layer in yocto 【发布时间】: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 集成,这是我无法做到的。
【参考方案1】:
讨论的简短摘要:
对所有层使用相同的发布分支(除非您真的知道自己在做什么。
检查您的所有层在bblayers.conf
中是否已激活。
【讨论】:
尝试在 fido 版本的 yocto 上构建 docker 时出现以下错误。你能帮我吗? (***.com/questions/41976123/building-docker-on-yocto) 查看我对该线程的评论。基本上,如果您需要帮助,您需要添加实际的错误消息。以上是关于在 yocto 中构建元虚拟化层的主要内容,如果未能解决你的问题,请参考以下文章