Bitbake: Как перечислить все файлы рецептов и добавить файлы, используемые в изображении?

Я использую OpenEmbedded-Core и создал настраиваемый слой с приоритетом 6. Прошло несколько месяцев разработки, и теперь я хочу увеличить приоритет своего уровня до 8, потому что файл добавления из другого уровня с приоритетом 7 мешает добавлению файл, который я добавляю в свой слой.

У меня вопрос: как мне создать список рецептов и файлов .bbappend, используемых в изображении?

Я хочу сгенерировать список как до, так и после изменения приоритета, чтобы я мог сравнить их (надеюсь, с помощью difftool), чтобы увидеть, возникли ли какие-либо неожиданные побочные эффекты, такие как важный файл добавления с другого уровня, который потенциально может игнорироваться.

Я использую angstrom-v2014.12-yocto1.7 ветку распределения Angstrom.

[РЕДАКТИРОВАТЬ]

Сейчас меня в первую очередь интересует определение того, как перечислить, какие файлы .bbappend фактически используются моим изображением на данный момент.

Список пакетов можно просмотреть, используя "bitbake -g your-image-name", как предлагает @pnxs, или из файла .manifest (который мне нравится использовать), который в моем случае находится в deploy / glibc / изображения / imagename /. Первоначально я спросил, как можно создать список «файлов рецептов», но я думаю, что списка пакетов достаточно.

Что касается .bbappends, у меня был случай, когда мой собственный .bbappend игнорировался из-за приоритетов слоев. Я изменил приоритеты слоев и теперь хочу посмотреть, не игнорировались ли из-за этого какие-либо файлы .bbappend где-либо еще в моем изображении. Насколько я понимаю, использование "bitbake-Layers show-appends" в качестве предлагаемых списков все .bbappends присутствует, а не только те, которые фактически используются при создании изображения, поэтому это не делает то, что Я ищу.


person user5071535    schedule 29.09.2015    source источник
comment
У меня точно такая же проблема. Было бы неплохо узнать, какие рецепты на самом деле используются в конкретном изображении и откуда они берутся (INSTALL_APPEND в каком файле?)   -  person Anonymous    schedule 04.04.2017


Ответы (4)


Попробуйте использовать «bitbake-Layers show-appends», чтобы увидеть, какие bbappends используются. Но это будет работать только для каждого рецепта. Но это может дать вам информацию, необходимую для понимания приоритетов.

person balister    schedule 12.10.2015
comment
Полезно, но, насколько я понимаю, здесь показаны все доступные bbappends, а не только те, которые фактически используются в моем изображении, верно? Я также просмотрел файл манифеста моего изображения, который сообщает мне точную версию каждого используемого пакета, но, к сожалению, не сообщает мне, какие bbappends были применены к каждому пакету. - person user5071535; 12.10.2015

Вы можете выполнить команду «bitbake -g your-image-name», которая создаст несколько точечных файлов в текущем каталоге.

Файл «pn-depends.dot» содержит список имен пакетов (pn) и зависимости между ними.

Когда вы берете первую часть файла, в которой перечислены все пакеты, вы видите, например:

"busybox" [label="busybox :1.23.1-r0.2\n/home/user/yocto/sources/poky/meta/recipes-core/busybox/busybox_1.23.1.bb"] "base-files" [label="base-files :3.0.14-r89\n/home/user/yocto/sources/poky/meta/recipes-core/base-files/base-files_3.0.14.bb"]

Итак, у вас есть список всех пакетов, используемых вашим образом, и соответствующий файл-рецепт.

Чтобы увидеть, какие из рецептов расширены с помощью bbappend, вам нужно получить список bbappends с "bitbake-Layers show-appends" и просмотреть дополнения к каждому рецепту. Вы можете написать небольшую программу на Python, которая сделает это за вас.

person pnxs    schedule 03.11.2015
comment
Файлы .dot - полезное предложение, но мне все еще нужно решить, какие файлы .bbappend используются, а какие не используются в моем изображении. Смотрите мою недавнюю правку. - person user5071535; 03.11.2015

Попробуйте следующую команду

bitbake -g image-name && cat pn-depends.dot | grep -v -e '-native' | grep -v digraph | grep -v -e '-image' | awk '{print $1}' | sort | uniq
person parera riddle    schedule 21.05.2019

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

Показать все рецепты

bitbake-layers show-recipes

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

RECIPE_NAME="linux-yocto"
bitbake -e  $RECIPE_NAME | grep ^FILE=
person Iceberg    schedule 24.04.2021