在单个 bblayers.conf 上集成不同的 bsp 层时出现问题
Issue when integrating different bsp-layers on a single bblayers.conf
我正在尝试在单个 Yocto 存储库上为不同平台集成多个 BSP 层,以便轻松地为所有这些平台构建一个 Linux 基于 Yocto 的发行版。
我们的想法是维护一个包含所有可用层的 bblayers.conf,在 local.conf 上设置 PLATFORM 和 DISTRO,调用 bitbake 并获取该平台的最终图像。
使用为单个平台自定义的 bblayers.conf 设置 "build" 目录时,每个平台都会正确构建映像配方。
但是,当我将所有 bsp 层集成到一个 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 问题吗?
提前致谢! :)
理论上,所有 BSP 层都应该遵循项目指南,以确保它们可以按照用户的意愿与其他 BSP 层混合。
https://www.yoctoproject.org/docs/latest/bsp-guide/bsp-guide.html
不幸的是,供应商自己创建和维护的 BSP 层通常不符合这些标准,因为供应商只真正对展示他们自己的硬件感兴趣。他们可能不会测试混合 BSP 层。
您可以修复并通过 github 拉取请求提交给他们。否则,您可以做任何您希望对您有用的事情(分叉和修改等)。
我正在尝试在单个 Yocto 存储库上为不同平台集成多个 BSP 层,以便轻松地为所有这些平台构建一个 Linux 基于 Yocto 的发行版。
我们的想法是维护一个包含所有可用层的 bblayers.conf,在 local.conf 上设置 PLATFORM 和 DISTRO,调用 bitbake 并获取该平台的最终图像。
使用为单个平台自定义的 bblayers.conf 设置 "build" 目录时,每个平台都会正确构建映像配方。
但是,当我将所有 bsp 层集成到一个 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 问题吗?
提前致谢! :)
理论上,所有 BSP 层都应该遵循项目指南,以确保它们可以按照用户的意愿与其他 BSP 层混合。
https://www.yoctoproject.org/docs/latest/bsp-guide/bsp-guide.html
不幸的是,供应商自己创建和维护的 BSP 层通常不符合这些标准,因为供应商只真正对展示他们自己的硬件感兴趣。他们可能不会测试混合 BSP 层。
您可以修复并通过 github 拉取请求提交给他们。否则,您可以做任何您希望对您有用的事情(分叉和修改等)。