bitbake 因 ExpansionError 失败

bitbake failed with ExpansionError

上下文:

我正在关注图像的 NXP i.MX7 Reference to build a Linux image for the i.MX 7 SABRE board. This process went smoothly, and I was successful in building and loading the krogoth image on the board. The problem arise when I tried to add the 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)

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 \
"

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

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

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

${BSPDIR}/sources/poky/meta \
${BSPDIR}/sources/openembedded-core/meta \

都是同一层。 Poky中的meta直接取自OpenEmbeddedPoky 存储库是使用脚本 combo-layer 从多个上游存储库组合而成的。 (在我看来这是不幸的,尽管我明白为什么要这样做)。

如果你不想,例如meta 的较新版本,您需要更新 poky,或完全删除 poky,然后分别下载 openembedded-corebitbake

根据我使用 yocto 构建 BSP 的经验,特别是使用 NXP imx7,我经常遇到 ExpansionError。大多数时候,我发现在某些情况下存在冗余包或层或配方。一旦你从安装中删除它们,它就可以正常工作了。

在你的情况下,只需从构建中删除以下内容就可以了。

${BSPDIR}/sources/openembedded-core/meta \