首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何扩展BitBake类

如何扩展BitBake类
EN

Stack Overflow用户
提问于 2018-08-11 19:09:17
回答 3查看 5.2K关注 0票数 4

我正在用Yocto构建一个映像,并且需要在上游树中修补一个BitBake类。我不想修改上游源,我更愿意将修改添加到本地层。

对于BitBake 食谱,我会使用.bbappend文件。应该使用什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-08-11 20:48:58

在元层中创建classes文件夹,并创建一个新的类,例如myclass.bbclass。使用inherit original-bitbake-CLASS继承原始类,并添加所需的任何功能。

然后使用新的bbclass而不是原始的。

票数 6
EN

Stack Overflow用户

发布于 2021-02-18 01:48:43

@lukaszgard方法除了一个小问题外有效。BBFILE_PRIORITY不为bbclass和conf文件提供覆盖功能,它只适用于菜谱(.bb)。这是基于Yocto手册的一个部分,确定您的层的优先级在其中说

注意:在具有更高优先级的层中,有可能出现版本号较低的食谱PV。此外,层优先级目前不影响.conf或.bbclass文件的优先级。未来版本的BitBake可能会解决这个问题。

我发现一个有效的方法是创建一个bblayer,创建并应用所需bbclass的更改,然后在/build/conf/bblayers.conf,中将创建的bblayer置于您试图覆盖的层之上。

这是基于Yocto手册的另一个部分,它说

注意:在构建过程中,OpenEmbedded构建系统会按照该顺序从列表的顶部到底部查看各个层。

举个例子:

代码语言:javascript
复制
BBLAYERS ?= " \
  ${TOPDIR}/../layers/<layer with new bbclass> \
  ${TOPDIR}/../layers/<layer with old bbclass> \
"
票数 5
EN

Stack Overflow用户

发布于 2018-08-11 21:26:56

通常,对于.bbclass文件,缺乏类似于附加菜谱(.bbappends)的类似方法。由@Oleksandr-Kravchuk提出的解决方案是好的,但也有一些局限性。当您必须修改某些函数或进行更复杂的更改时,我希望将这个类文件复制到我的元数据层并在那里进行调整。最后,基于层中配置(conf/layer.conf文件)的bitbake - 优先级将决定将此类文件来自优先级较高的层-,而不触及菜谱

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

https://stackoverflow.com/questions/51802904

复制
相关文章

相似问题

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