Как составить список всех файлов .bb и .bbappend, используемых для сборки определенного пакета с помощью bitbake?

Рассмотрим пакет «виртуальный/ядро». Я хотел бы знать, какие файлы .bb и .bbappend участвуют в создании этого пакета.

Я знаю, что могу получить имя пакета через:

bitbake -e виртуальный/ядро | грэп ^BP=

Эта команда дает мне имя пакета, используемого для сборки виртуального/ядра, в моем случае это linux-fslc-4.0+gitAUTOINC+19ebefd40a. Однако я не знаю, как получить список файлов .bb и .bbappend (с указанием их местоположения), используемых для сборки пакета linux-fslc-4.0+gitAUTOINC+19ebefd40a.


person Irr    schedule 07.06.2015    source источник


Ответы (3)


Прежде всего, вы должны знать, что при сборке одного пакета могут быть задействованы многие десятки файлов, и это особенно верно при сборке сложного пакета, такого как ядро ​​Linux.

Вы можете получить гораздо больше информации, если направите вывод 'bitbake -e foo' в файл, а затем проанализируете его содержимое. Что-то типа

$ bitbake -e virtual/kernel >kernel.env

Например, в начале вывода вы можете найти список включений, поскольку bitbake сканирует и читает цепочку файлов классов. Также очень полезно, хотя и не напрямую связанное с вопросом, то, что вы можете видеть кумулятивные изменения, внесенные в переменные, поскольку эти включаемые файлы считываются и анализируются.

Если вы изолируете те строки, которые задают переменные, вы можете эффективно составить список файлов, участвующих в сборке пакета. Что-то вроде этого:

$ cat kernel.env | egrep '^#[ ]*append|^#[ ]*set' | cut -d ':' -f 1 | awk '{print $3}' | sort | uniq

... должен создать список файлов bitbake (*.conf, *.bb, *.bbclass и т. д.), которые участвуют в сборке пакета. Некрасиво, но работает ;)

Вы также можете подумать о том, чтобы присоединиться к #oe и #yocto на freenode IRC, где тусуется много действительно умных людей, которые знают об этом гораздо больше, чем я! Удачи.

person challinan    schedule 08.06.2015

Вы можете использовать

bitbake-layers show-appends

Список всех рецептов, дополненных файлами .bbappend. В нем будет указан приоритет и местонахождение всех таких файлов.

person Ryan    schedule 08.10.2015

Попробуйте следующее:

Показать .bb файл рецепта

RECIPE_NAME="linux-yocto"
bitbake -e  $RECIPE_NAME | grep ^FILE=

Показать .bbappend файлы рецепта

RECIPE_NAME="linux-yocto"
bitbake-layers show-appends linux-yocto

Запрос определенного рецепта с помощью bitbake-layers show-appends linux-yocto может не поддерживаться старой версией bitbake. Вместо этого используйте bitbake-layers show-appends.

person Iceberg    schedule 24.04.2021