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
直接取自OpenEmbedded
。 Poky
存储库是使用脚本 combo-layer
从多个上游存储库组合而成的。 (在我看来这是不幸的,尽管我明白为什么要这样做)。
如果你不想,例如meta
的较新版本,您需要更新 poky
,或完全删除 poky
,然后分别下载 openembedded-core
和 bitbake
。
根据我使用 yocto 构建 BSP 的经验,特别是使用 NXP imx7,我经常遇到 ExpansionError。大多数时候,我发现在某些情况下存在冗余包或层或配方。一旦你从安装中删除它们,它就可以正常工作了。
在你的情况下,只需从构建中删除以下内容就可以了。
${BSPDIR}/sources/openembedded-core/meta \
上下文:
我正在关注图像的 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
直接取自OpenEmbedded
。 Poky
存储库是使用脚本 combo-layer
从多个上游存储库组合而成的。 (在我看来这是不幸的,尽管我明白为什么要这样做)。
如果你不想,例如meta
的较新版本,您需要更新 poky
,或完全删除 poky
,然后分别下载 openembedded-core
和 bitbake
。
根据我使用 yocto 构建 BSP 的经验,特别是使用 NXP imx7,我经常遇到 ExpansionError。大多数时候,我发现在某些情况下存在冗余包或层或配方。一旦你从安装中删除它们,它就可以正常工作了。
在你的情况下,只需从构建中删除以下内容就可以了。
${BSPDIR}/sources/openembedded-core/meta \