在一个项目中使用不同版本的yocto

时间:2019-12-19 13:22:25

标签: linux embedded yocto ros

对于一个项目,我必须使用sumo,因为它是供应商支持的最新版本。但是我也想使用包含以下兼容性的containig ROS()层: LAYERSERIES_COMPAT_ros-layer =“ rocko sumo thud warrior”

但是在README.md中,它要求:

## DEPENDENCIES ##



This layer depends on:

  **openembedded-core**
  URI: git://git.openembedded.org/openembedded-core
  subdirectory: meta
  branch: thud
  revision: HEAD

  **meta-openembedded (meta-oe)**
  URI: git://git.openembedded.org/meta-openembedded
  subdirectory: meta-oe
  branch: thud
  revision: HEAD

  **meta-python** (since a6d7ba92645a112af358efd94ff3aa0c74985a51@meta-openembedded)
  URI: git://git.openembedded.org/meta-openembedded
  subdirectory: meta-python
  branch: thud
  revision: HEAD

  **meta-multimedia** (since fe44ac167a2a76531af3519f3889fce92024567b@meta-openembedded)
  URI: git://git.openembedded.org/meta-openembedded
  subdirectory: meta-multimedia
  branch: thud
  revision: HEAD

当我将所有图层与相扑一起使用时,未启用ROS图层:

错误:图层“转义”取决于图层“ ros”,但在您的配置中未启用此图层

尽管我已启用它:

# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
POKY_BBLAYERS_CONF_VERSION = "2"

BBPATH = "${TOPDIR}"
BBFILES ?= ""

BBLAYERS ?= " \
  ##OEROOT##/meta \
  ##OEROOT##/meta-poky \
  ##OEROOT##/meta-yocto-bsp \
  ##OEROOT##/meta-intel \
  ##OEROOT##/meta-aaeonc \
  ##OEROOT##/meta-openembedded/meta-oe \
  ##OEROOT##/meta-openembedded/meta-python \
  ##OEROOT##/meta-openembedded/meta-multimedia \
  ##OEROOT##/meta-ros \
  ##OEROOT##/meta-escape \
  "

所以我想这是一个依赖关系的问题(元转义是我的层,是需要ROS的那个)。但是,如果我使用thud,bitbake就会开始失败。

是否可以使用同一层的两个不同版本?

1 个答案:

答案 0 :(得分:0)

短而直:不。您必须确保各层在版本方面兼容。那就是LAYERSERIES_COMPAT变量的全部要点。

如果所需的发行版中没有某个层可用,您可以随时更改条目并尝试,但是可能会损坏。

祝你好运。