首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Yocto Dunfell错误:单自定义元层中多台机器没有可用的菜谱

Yocto Dunfell错误:单自定义元层中多台机器没有可用的菜谱
EN

Stack Overflow用户
提问于 2021-05-07 18:02:46
回答 2查看 3.7K关注 0票数 3

我维护一个自定义约克托元层兼容邓菲尔。它支持基于微芯片SAMA5D27处理器的板卡。我有几个bbappend文件在这一层,只适用于文件从meta和其他微芯片特定的软件包。

现在,我想重用这个自定义元层的许多部分,并支持来自不同厂商的新处理器。我已经创建了我自己的新图像食谱在我的层,不包括这些bbappend文件,只与微芯片有关。

问题是,Yocto将我的bbappend文件抛出错误“没有可用的菜谱”。此错误似乎发生在解析过程中,并且不考虑是否在当前目标中使用该配方。

我已经广泛地寻找了一个解决方案,但到目前为止还没有找到答案。如何使用1元层并维护不同的bbappend文件,同时能够为不同的目标构建切换机器变量?

Bitbake版本:

代码语言:javascript
运行
复制
root@buildmachine:/$ bitbake --version
BitBake Build Tool Core version 1.46.0

我尝试在这些bbappend文件中使用COMPATIBLE_HOST和COMPATIBLE_MACHINE变量,但是错误仍然存在。

代码语言:javascript
运行
复制
# Only compatible with sama5d27 microchip
COMPATIBLE_HOST = "arm-poky-linux-musleabi"
COMPATIBLE_MACHINE = "sama5d27-wlsom1-ek-sd"

错误输出:

代码语言:javascript
运行
复制
root@buildmachine:~/Desktop/compulab/build-cmdline$ MACHINE=iot-gate-imx8 bitbake iot-gate-imx8-image
WARNING: Host distribution "ubuntu-20.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% |#######################################################################################################################################################| Time: 0:00:01
Loaded 4938 entries from dependency cache.
ERROR: No recipes available for:
  /home/me/Desktop/compulab/sources/meta-proprietary/recipes-bsp/at91bootstrap/at91bootstrap_3.10.0.bbappend
  /home/me/Desktop/compulab/sources/meta-proprietary/recipes-bsp/dt-overlay-at91/dt-overlay-at91_git.bbappend
  /home/me/Desktop/compulab/sources/meta-proprietary/recipes-bsp/libubootenv/libubootenv_%.bbappend
  /home/me/Desktop/compulab/sources/meta-proprietary/recipes-bsp/u-boot/u-boot-at91_2020.01.bbappend
  /home/me/Desktop/compulab/sources/meta-proprietary/recipes-core/initrdscripts/initramfs-debug_%.bbappend
  /home/me/Desktop/compulab/sources/meta-proprietary/recipes-httpd/nginx/nginx_%.bbappend
  /home/me/Desktop/compulab/sources/meta-proprietary/recipes-kernel/linux/linux-at91_5.4.bbappend
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-09 14:42:44

正如您已经发现的那样,Yocto无法将.bbappend文件与任何菜谱相匹配,当您切换到另一个MACHINE时。

只有在启用特定层时,才能有条件地包含.bbappend文件来解决这个问题。Yocto通过动态变量支持这一点。

例如,如果您将.bbappend文件保存在自己层的dynamic-layers/meta-atmel文件夹中,并且只希望在使用meta-atmel时包含这些.bbappend文件,那么将以下内容添加到layer.conf

代码语言:javascript
运行
复制
BBFILES_DYNAMIC += "\
    meta-atmel:${LAYERDIR}/dynamic-layers/meta-atmel/recipes-*/*/*.bbappend \
    meta-atmel:${LAYERDIR}/dynamic-layers/meta-atmel/recipes-*/*/*/*.bbappend \
"

(酌情调整路径/文件夹深度)。

这表明,如果meta-atmel包含在层列表中,那么将两个dynamic-layers/...路径添加到搜索路径中。

票数 4
EN

Stack Overflow用户

发布于 2021-05-08 10:23:58

您不能附加到根本不存在的菜谱中。

如果存在食谱:

  • at91bootstrap_3.10.0.bb
  • dt-overlay dt 91_git.bb
  • ..。

确保将它们的层添加到bblayers.conf中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67439753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档