Включите библиотеки в / deploy / rpm в образ Yocto

Я новичок в Yocto, поэтому мне очень жаль, если этот вопрос очевиден. Я пытаюсь создать образ для i.MX6 с поддержкой OpenCL для использования графического процессора. У меня есть рецепт драйвера графического процессора (imx-gpu-viv) в моем рецепте изображения, и я вижу, что он успешно компилируется. Однако в моем финальном образе нет некоторых библиотек, таких как libOpenCL.so. Я вижу, что они существуют в виде пакетов .rpm в tmp / deploy / rpm, и я попытался добавить их в свою систему с помощью команды rpm на устройстве. Однако у них есть дополнительные зависимости, и я не хочу охотиться за каждым пакетом, который зависит от них, их зависимостями и т. Д. Более того, я хотел бы, чтобы эти пакеты были установлены в будущих образах, а не тратить время на их установку снова и снова.

Есть ли способ включить пакеты, которые хранятся как файлы .rpm, в образ SD-карты, создаваемый bitbake?

Изменить: чтобы прояснить мой вопрос, я знаю, что могу добавлять рецепты к своему изображению, используя IMAGE_INSTALL_append в local.conf. Это конкретное изображение не требует включения рецепта «imx-gpu-viv», поскольку он добавлен в файл изображения в исходном коде.


person Kumsaati    schedule 30.10.2018    source источник
comment
Возможный дубликат Как добавить пакет pciutils в yocto AGL?   -  person Oleksandr Kravchuk    schedule 30.10.2018
comment
Я сомневаюсь, что libOpenCL.so не является частью рецепта imx-gpu-viv. Проверьте рецепт, по которому создается этот файл, и используйте соответствующий рецепт в IMAGE_INSTALL   -  person Parthiban    schedule 31.10.2018
comment
Мне удалось решить свою проблему. Позвольте мне добавить это в качестве ответа. Рецепт imx-gpu-viv действительно скомпилировал libOpenCL.so, но мой образ не включал ни одного рецепта, который RDEPEND добавлял в библиотеку, поэтому он не был включен в rootfs. Я создал рецепт группы пакетов, который зависит от нужных мне библиотек, и добавил его в свой рецепт изображения. Это привело к появлению библиотек в rootfs.   -  person Kumsaati    schedule 31.10.2018


Ответы (1)


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

Рецепт imx-gpu-viv действительно скомпилировал libOpenCL.so в пакете libOpenCL-imx. Однако в моем образе не было никаких рецептов, которые RDEPEND использовал в пакете libOpenCL-imx, поэтому он не был включен в rootfs. Я создал новый рецепт группы пакетов, в котором есть команды RDEPENDS_ * для нужных мне библиотек (например, RDEPENDS_${PN} += " libopencl-imx "), и запрошенные библиотеки были включены в мои rootfs после того, как я добавил новую группу пакетов в свой рецепт образа и перестроил свой образ.

person Kumsaati    schedule 31.10.2018