如何扩展 BitBake 类

Kon*_*yak 2 bitbake yocto

我正在用 Yocto 构建一个图像,并且需要在上游树中修补一个 BitBake 类。我不想修改上游源,而是希望将修改添加到本地层。

对于 BitBake recipe,我会使用一个.bbappend文件。一个应该使用什么?

小智 7

@lukaszgard 方法有效,除了一个小问题。BBFILE_PRIORITY不提供 bbclass 和 conf 文件的覆盖功能,它仅适用于配方 (.bb)。这是基于 Yocto 手册中的一个部分,Prioritizing Your Layer,其中写道

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

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

这是基于Yocto 手册的另一部分,其中说

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

一个例子:

BBLAYERS ?= " \
  ${TOPDIR}/../layers/<layer with new bbclass> \
  ${TOPDIR}/../layers/<layer with old bbclass> \
"
Run Code Online (Sandbox Code Playgroud)


Ole*_*huk 5

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

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