Проблема при интеграции разных bsp-слоев в один bblayers.conf

Я пытаюсь интегрировать несколько BSP-слоев для разных платформ в одном репозитории Yocto, чтобы легко создать дистрибутив на основе Linux Yocto для всех этих платформ.

Идея состоит в том, чтобы поддерживать один bblayers.conf со всеми доступными слоями, установить PLATFORM и DISTRO на local.conf, вызвать bitbake и получить окончательное изображение для этой платформы.

При настройке каталога "build" с помощью bblayers.conf, настроенного для отдельной платформы, каждая платформа правильно формирует рецепт образа.

Однако, когда я интегрировал все bsp-слои в один bblayers.conf, компиляция некоторых платформ была нарушена.

Конкретная проблема заключается в следующем: один слой bsp (meta-rockchip + meta-rockchip-extra) определяет recipes-graphics/mesa/mesa_%. Bbappend с этим содержимым внутри:

PROVIDES_remove = "virtual/libgles1 virtual/libgles2 virtual/egl virtual/libwayland-egl"

Это изменяет рецепт gstreamer на уровне poky, получая эту ошибку при сборке для платформы meta-intel:

ERROR: Nothing PROVIDES 'virtual/egl' (but /data/yocto/yocto/sources/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.12.2.bb, /data/yocto/yocto/sources/poky/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.12.2.bb DEPENDS on or otherwise requires it)

Мои вопросы:

Считаете ли вы хорошей практикой определять собственный bblayers.conf в зависимости от выбранной ПЛАТФОРМЫ? Есть ли какой-либо другой способ полностью отключить BSP-слой при создании другого? Могут ли некоторые из вас предложить исправление для решения этой проблемы с дополнительным слоем bsp-rockchip?

Заранее большое спасибо!:)

1 ответ

Решение

Теоретически все уровни BSP должны следовать рекомендациям проекта, чтобы гарантировать, что они могут быть смешаны с другими уровнями BSP по желанию пользователя.

https://www.yoctoproject.org/docs/latest/bsp-guide/bsp-guide.html

https://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html

К сожалению, слои BSP, созданные и поддерживаемые самими поставщиками, часто не соответствуют этим критериям, поскольку поставщик действительно заинтересован только в демонстрации собственного оборудования. Смешивание слоев BSP просто не то, что они могут проверить.

Вы можете поработать над исправлением и отправить его им через запрос на github. В противном случае вы можете сделать все, что пожелаете, что вам подходит (форк, модификация и т. Д.).

Другие вопросы по тегам