Сбой битбейка с ExpansionError

Контекст:

Я следую Справочнику NXP i.MX7, чтобы создать образ Linux для платы i.MX 7 SABRE. Этот процесс прошел гладко, и мне удалось построить и загрузить изображение 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,

1 ответ

Решение

Не добавлять openembedded-core/meta на ваш bblayers.conf!

В вашем списке BBLAYERS =, две записи

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

оба одинакового слоя. meta в Poky, взято непосредственно из OpenEmbedded, Poky хранилище объединяется из нескольких вышестоящих репозиториев с использованием сценария, combo-layer, (Что, на мой взгляд, неудачно, хотя я понимаю, почему это делается).

Если вы не хотите, например, более новую версию metaнужно обновить pokyили удалить poky полностью и скачать openembedded-core а также bitbake по отдельности.

По моему опыту создания BSP с yocto, особенно с NXP imx7, я очень часто получаю ExpansionError. В большинстве случаев я обнаруживал, что в некоторых случаях существует избыточный пакет, слой или рецепт. После того, как вы удалите их из установки, все будет работать гладко.

В вашем случае просто удалите следующее из сборки, и все будет в порядке.

${BSPDIR}/sources/openembedded-core/meta \
Другие вопросы по тегам