我正在尝试在单个 Yocto 存储库中集成用于不同平台的多个 BSP 层,以便为所有这些平台轻松构建基于 Linux Yocto 的发行版。
这个想法是维护一个包含所有可用层的单个 bblayers.conf,在 local.conf 上设置 PLATFORM 和 DISTRO,调用 bitbake 并获取该平台的最终图像。
当使用为单个平台定制的 bblayers.conf 设置“构建”目录时,每个平台都会正确构建图像配方。
但是,当我将所有 bsp-layers 集成到单个 bblayers.conf 中时,某些平台的编译已被破坏。
具体问题是这样的:一个bsp层(meta-rockchip + meta-rockchip-extra)定义了一个recipes-graphics/mesa/mesa_%.bbappend,里面有这个内容:
PROVIDES_remove = "virtual/libgles1 virtual/libgles2 virtual/egl virtual/libwayland-egl"
这会改变 poky 层上的 gstreamer 配方,在为元英特尔平台构建时出现此错误:
ERROR: Nothing PROVIDES 'virtual/egl' (but /data/yocto/yocto/sources/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.12.2.bb, /data/yocto/yocto/sources/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.12.2.bb DEPENDS on or otherwise requires it)
我的问题是:
您认为根据所选平台定义自定义 bblayers.conf 是否是一种好习惯?在构建不同的 BSP 层时,是否有其他方法可以完全禁用 BSP 层?你们中的一些人可以提出解决这个rockchip-extra bsp-layer问题的解决方案吗?
提前非常感谢!:)