Обычно вы не работаете с отдельными файлами при создании образов Yocto
В обратном порядке
- Вы устанавливаете пакеты в образ
- Вы создаете пакеты с помощьюиспользуя рецепт
- Вы находите (или, в крайнем случае, пишите) рецепты как часть слоев.
Обычно, когда чего-то не хватает, вы предпринимаете следующие шаги:
- Проверьте индекс слоя https://layers.openembedded.org/layerindex/branch/master/recipes/?q=wayland Он сообщает, что существует рецепт под названием
wayland
в слое openembedded-core
- Добавьте нужный слой.
openembedded-core
уже содержится в poky
Yocto (прямо под именем meta
, просто чтобы сбить с толку новичка ...), поэтому нечего добавить в этом примере - Создать список параметров среды для рецепта
bitbake -e wayland >wayland.env
- Проверьте, какие пакеты создает данный рецепт
grep ^PACKAGES= wayland.env
.В этом случае это просто, потому что на самом деле существует только один пакет wayland
(-debug
, -dev
и т. Д. Специального назначения, которые не содержат библиотеку) - Добавьте пакет к изображению с помощью егоимя пакета.Как это сделать, зависит от типа создаваемого вами изображения.Имя переменной, приведенное в вопросе, работает для некоторых изображений, но не для всех.Ищите
IMAGE_INSTALL
в руководстве https://www.yoctoproject.org/docs/2.6.1/mega-manual/mega-manual.html для других опций.
После того, как вы создали рассматриваемый рецепт, вы также можете проверить, какие файлы содержатся в пакете (в этом случаеимя рецепта и имя пакета идентичны, но это не всегда так. Некоторые рецепты создают более одного пакета, подходящего для установки, поэтому, очевидно, им нужно использовать разные имена)
$ oe-pkgdata-util list-pkg-files wayland
wayland:
/usr/lib/libwayland-client.so.0
/usr/lib/libwayland-client.so.0.3.0
/usr/lib/libwayland-cursor.so.0
/usr/lib/libwayland-cursor.so.0.0.0
/usr/lib/libwayland-server.so.0
/usr/lib/libwayland-server.so.0.1.0