在 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 中构建元虚拟化层的主要内容,如果未能解决你的问题,请参考以下文章

如何在Yocto Linux中禁用虚拟终端

如何在虚拟机中运行 YOCTO LINUX 操作系统

为啥 yocto 跳过我的食谱?

实时互动RTI技术,生成式AI虚拟数字人,构建元宇宙基础设施,CloudXR开启元宇宙通道...

Yocto之apt-get安装deb包环境搭建

HMS Core线上Codelabs挑战赛第3期:用3D建模构建元宇宙