Ошибка Bitbake - Ничего RPROVIDES

Я бы разделил приложение на несколько пакетов. По сути, я просто хотел бы добавить еще один, который можно было бы построить с использованием определенного изображения.

Внутри файла .bb, связанного с приложением, я добавил:

SRC_URI = " \
          ...
          file://api.conf \
          file://script.sh \
          "

PACKAGES =+ "${PN} ${PN}-tools"

FILES_${PN}-tools = "${bindir}/mrvl/tools/script.sh \
                     ${sysconfdir}/mrvl/api.conf \
                    "

Затем я добавил следующую строку в свой тест изображения bb

IMAGE_INSTALL += " mrvl-tools"

Я использую команду bitbake image-test, которая возвращает:

ERROR: Nothing RPROVIDES 'mrvl-tools' (but /home/usr/../image-test.bb RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'mrvl-tools' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['mrvl-tools']
ERROR: Required build target 'image-test' has no buildable providers.
Missing or unbuildable dependency chain was: ['image-test', 'mrvl-tools']

Я следовал тому же определению пакета bluez5-obex, и IMAGE_ISTALL += " bluez5-obex" работает.

Что я забыл?


person ogs    schedule 06.02.2015    source источник
comment
Что такое mrvl-tools? Вы также должны иметь рецепт для него.   -  person KBart    schedule 06.02.2015
comment
У меня уже есть рецепты mrvl, я добавил script.sh и api.conf в /mrvl/files, и я просто хотел бы разделить рецепт, чтобы включить эти оба файла только в мои изображения, предназначенные для теста. Я следовал: yoctoproject.org/docs/1.1/poky-ref-manual/   -  person ogs    schedule 06.02.2015
comment
Устанавливать script.sh и api.conf в do_install()? В противном случае mrvl-tools будут пустыми и, следовательно, не будут созданы...   -  person Anders    schedule 06.02.2015
comment
Как называется файл и где он хранится? Если он находится на своем собственном уровне, добавлен ли этот слой в вашу конфигурацию?   -  person volker    schedule 06.02.2015
comment
Эти файлы хранятся в папке meta-bsp/recipes-kernel/mrvl-test/files, а слой meta-bsp добавляется в конфигурацию bblayers.conf.   -  person ogs    schedule 09.02.2015


Ответы (4)


Андерс рядом.

Во-первых, ваше определение PACKAGES неверно, все, что вам нужно, это PACKAGES += "${PN}-tools".

Но важно помнить, что ФАЙЛЫ оцениваются в порядке ПАКЕТОВ, поэтому ${PN} обрабатывается первым, а ФАЙЛЫ_${PN} по умолчанию содержат ${bindir} ${sysconfdir}, поэтому все из ${bindir}, а ${sysconfdir} находится в ${PN}. Затем он пытается обработать ${PN}-tools, но ни одно из выражений в его FILES не соответствует ни одному из оставшихся файлов, поэтому пакет пуст.

Итак, либо установите FILES_${PN} на то, что вы хотите, чтобы он содержал, либо используйте PACKAGE_BEFORE_PN=${PN}-tools для внедрения PN-tools перед PN в значении PACKAGES по умолчанию. Я обещаю, что чтение bitbake.conf поможет прояснить ситуацию.

Обратите внимание, что я ожидал, что ошибка будет ошибкой времени rootfs, а не ошибкой построения образа, но, надеюсь, проблема именно в этом.

person Ross Burton    schedule 06.02.2015

Спасибо Росс Бертон за ваш ответ. Но я изменил файл .bb, и в настоящее время он содержит следующие строки:

SUMMARY_${PN}-tools="mrvl tools test"
PACKAGE_BEFORE_PN += "${PN}-tools"
RDEPENDS_${PN}-tools = ""

FILES_${PN}-tools = "${bindir}/mrvl/tools/script.sh ${sysconfdir}/mrvl/api.conf"
ALLOW_EMPTY_${PN}-tools = "1"

Сборка завершена, и пакет с именем mrvl-test-tools_0.1-r0.ipk хорошо создан в /build/tmp/deploy/ipk/board/, но ничего не содержит. Это связано с переменной "ALLOW_EMPTY..="1"". и без этой строки сборка не удалась и отображается следующее сообщение

Collected errors:
 * opkg_install_cmd: Cannot install package mrvl-test-tools.

 ERROR: Function failed: do_rootfs
 ERROR: Logfile of failure stored in: /home/../build/tmp/work/oe-linux/test-img/1.0-r0/temp/log.do_rootfs.4639
 ERROR: Task 7 (/home/../sources/meta-board/recipes-images/images/test-img.bb, do_rootfs) failed with exit code '1'

Я не понимаю, почему файлы теперь не входят в .ipk

person ogs    schedule 09.02.2015
comment
Можете ли вы показать нам полный .bb-файл? Поскольку mrl-test-tools все еще пуст, я не думаю, что вы правильно устанавливаете script.sh и api.conf. Таким образом, я хотел бы увидеть полный рецепт. И удалите ALLOW_EMPTY_${PN}-tools = "1", так как вы не хотите получить пустой пакет. Является ли слой общедоступным? - person Anders; 10.02.2015

Вам не нужно добавлять file в путь к дополнительным файлам

THISAPPENDFILESDIR := "${THISDIR}/file"
FILESEXTRAPATHS_prepend := "${THISDIR}/file:"
person Mohammad Azim    schedule 07.10.2020

хорошо проверить, был ли слой добавлен в

conf/bblayers.conf

это то, где обычно начинается с ничего не дает

BBLAYERS += " \
  ${BSPDIR}/sources/"your layer" \
person Oleg Kokorin    schedule 15.02.2021