bitbake 因 ExpansionError 失败

tch*_*dev 5 openembedded bitbake yocto imx7

语境:

我正在按照NXP i.MX7 参考为 i.MX 7 SABRE 板构建 Linux 映像。这个过程很顺利,我成功地在板上构建并加载了 krogoth 图像。当我尝试将openembedded-core层添加到我的图像时出现问题。我立即收到以下错误。我包含了我的bblayers.conf以供参考。任何帮助,将不胜感激。我什至不需要sqlite,所以如果有办法绕过它,那就没问题了。

错误:

ERROR: ExpansionError during parsing /fsl-community-bsp-platform/sources/openembedded-core/meta/recipes-support/sqlite/sqlite3_3.16.2.bb: Failure expanding variable SQLITE_PV, expression was ${@sqlite_download_version(d)} which triggered exception TypeError: getVar() takes at least 3 arguments (2 given)
Run Code Online (Sandbox Code Playgroud)

bblayers.conf

POKY_BBLAYERS_CONF_VERSION = "2"

BBPATH = "${TOPDIR}"
BSPDIR := "${@os.path.abspath(os.path.dirname(d.getVar('FILE', True)) + '/../..')}"

BBFILES ?= ""
BBLAYERS = " \
  ${BSPDIR}/sources/poky/meta \
  ${BSPDIR}/sources/poky/meta-poky \
  \
  ${BSPDIR}/sources/openembedded-core/meta \
  \
  ${BSPDIR}/sources/meta-openembedded/meta-oe \
  ${BSPDIR}/sources/meta-openembedded/meta-multimedia \
  \
  ${BSPDIR}/sources/meta-fsl-arm \
  ${BSPDIR}/sources/meta-fsl-arm-extra \
  ${BSPDIR}/sources/meta-fsl-demos \
"
Run Code Online (Sandbox Code Playgroud)

成功的构建和失败的构建之间的唯一区别是以下行:${BSPDIR}/sources/openembedded-core/meta.

And*_*ers 5

不要添加openembedded-core/meta到您的bblayers.conf!

在您的列表中,BBLAYERS =两个条目

${BSPDIR}/sources/poky/meta \
${BSPDIR}/sources/openembedded-core/meta \
Run Code Online (Sandbox Code Playgroud)

都是同一层。metain Poky,直接取自OpenEmbedded。该Poky存储库使用脚本从多个上游存储库组合而成,combo-layer. (在我看来这是不幸的,尽管我可以理解为什么要这样做)。

如果您不想使用较新版本的meta,则需要更新pokypoky完全删除,openembedded-core然后bitbake单独下载。