5

语境:

我正在按照NXP i.MX7 Reference为 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)

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.

4

2 回答 2

5

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

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

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

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

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

于 2017-02-02T11:12:57.600 回答
0

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

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

${BSPDIR}/sources/openembedded-core/meta \
于 2020-02-03T22:29:57.937 回答