我正在用 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)
classes在您的元图层中创建文件夹并创建一个新类,例如myclass.bbclass. 继承原始类inherit original-bitbake-CLASS并添加您需要的任何功能。
然后使用新的 bbclass 而不是原来的。
| 归档时间: |
|
| 查看次数: |
3062 次 |
| 最近记录: |