升级(覆盖)自定义层中的整个配方

zon*_*dar 4 alsa yocto

我在项目中有一个自定义层。这会与同事分享。

我的发行版 (poky) 它使用旧版本的 alsa。这在构建区域的初始设置时下载。我想用更高版本“替换”那个版本的 alsa 并在我的自定义图层中执行此操作,以便他们不必编辑/替换 poky 中的食谱。

做到这一点的最佳方法是什么?如果我只是下载较新的配方并将其包含在我的图层中(匹配文件系统名称),它会自动使用更高版本还是我需要做其他事情?

dan*_*lor 8

您进行的方式是正确的,您应该在自己的层上添加新的 recipes/bbappend 文件,默认情况下不应修改 Yocto 的基础层或第三方层。然而,由于您想添加现有配方的更新版本,您应该记住:

  • 您必须检查自己层的优先级以及包含原始配方的层的优先级。Yocto 将选择更高优先级层的配方,无论它是否是较新版本(忽略PV)。有关更多信息,请BBFILE_PRIORITY在 Yocto 项目参考手册中搜索。(您还可以使用命令查看所有已配置层的列表及其优先级bitbake-layers show-layers
  • 在两个层具有相同优先级的情况下,Yocto 将构建最高的配方PV(您可以在配方中或在其文件名recipename_pv.bb 中检查/设置此值)。或者,如果您希望选择另一个版本而不是当前正在构建的版本,您可以只PREFERRED_VERSION_recipename = desiredPVdistro.conflocal.conf文件中设置变量。