Как интегрировать внешние рецепты в образ yocto с помощью packagegroup? - PullRequest
0 голосов
/ 09 июля 2020

Я использую дистрибутив yocto от STM: https://wiki.st.com/stm32mpu-ecosystem-v1/wiki/STM32MP1_Distribution_Package

Структура каталогов следующая

openstlinux-20-02-19  OpenSTLinux distribution
├── layers 
│    ├── meta-openembedded                Collection of layers for the OpenEmbedded-Core universe (OpenEmbedded standard)
│    ├── meta-qt5                         QT5 layer for OpenEmbedded (standard)
│    ├── meta-st
│    │   ├── meta-st-openstlinux          STMicroelectronics layer that contains the frameworks and images settings for the OpenSTLinux distribution
│    │   ├── meta-st-stm32mp              STMicroelectronics layer that contains the description of the BSP for the STM32 MPU devices
│    │   │   ├── recipes-bsp
│    │   │   │   ├── alsa                 Recipes for ALSA control configuration
│    │   │   │   ├── drivers              Recipes for Vivante GCNANO GPU kernel drivers
│    │   │   │   ├── trusted-firmware-a   Recipes for TF-A
│    │   │   │   └── u-boot               Recipes for U-Boot
│    │   │   ├── recipes-extended
│    │   │   │   ├── linux-examples       Recipes for Linux examples for STM32 MPU devices
│    │   │   │   ├── m4coredump           Recipes for script to manage coredump of cortexM4
│    │   │   │   └── m4projects           Recipes for firmware examples for Cortex M4
│    │   │   ├── recipes-graphics
│    │   │   │   ├── gcnano-userland      Recipes for Vivante libraries OpenGL ES, OpenVG and EGL (multi backend)
│    │   │   │   └── [...]
│    │   │   ├── recipes-kernel
│    │   │   │   ├── linux                Recipes for Linux kernel
│    │   │   │   └── linux-firmware       Recipes for Linux firmwares (example, Bluetooth firmware)
│    │   │   ├── recipes-security
│    │   │   │   └── optee                Recipes for OPTEE
│    │   │   ├── recipes-st
│    │   │   │   └── images               Recipes for the bootfs and userfs partitions binaries
│    │   │   └── [...]
│    │   ├── meta-st-stm32mp-addons       STMicroelectronics layer that helps managing the STM32CubeMX integration
│    │   └── scripts
│    │       ├── envsetup.sh              Environment setup script for Distribution Package
│    │       └── [...]
│    ├── meta-timesys                     Timesys layer for OpenEmbedded (standard)
│    └── openembedded-core                Core metadata for current versions of OpenEmbedded (standard)

Я клонировал слой из openembeddedlayers и добавил его в файл слоев bblayers в каталоге сборки ... Теперь, что я хотел бы сделать, это создать группу пакетов. bb и добавьте рецепты из этих слоев и всех других слоев в этот файл группы пакетов, чтобы они добавлялись в мое изображение, когда я выполняю битбейкинг изображения.

Мой файл группы пакетов выглядит следующим образом

SUMMARY = "packagegroup containing packages  
client"LICENSE = "MIT"
inherit packagegroup
RDEPENDS_${PN} = "\
nano \
tmux \  
python3-pyserial \  
python3-paho-mqtt \  
python3-pymodbus \  
sqlite3 \  
python-pysqlite \  
python3-sqlite3 \  
"
Теперь, где мне поместить этот файл, а также где мне добавить его в свой проект? Я новичок в yocto и не могу этого понять.

Ответы [ 2 ]

0 голосов
/ 01 августа 2020

Все возможные места для рецептов (или bbappend) определяются переменными BBFILES, найденными в conf/layer.conf слоя, в котором вы хотите разместить рецепты. См. В meta-openembedded / meta-oe / conf / layer.conf [1]:

BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend"

Это означает, что будет найден любой файл с расширением .bb или .bbappend в любом подкаталоге любого каталога, имя которого начинается с recipes-.

Чтобы узнать, найден ли ваш рецепт bb или bbappend, выполните команду bitbake-layers show-recipes или bitbake-layers show-appends.

[1] http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/conf/layer.conf#n15

0 голосов
/ 30 июля 2020

Packagegroups - это просто рецепты bitbake для всех намерений и целей. Следовательно, вы можете просто создать новый каталог относительно каталога изображений и поместить его туда. Раньше я делал это

<path to>/recipes-images/images
<path to>/recipes-images/packagegroups

Затем просто помещал ваш файл packagegroup в каталог packagegroups. Если ваши слои и метакаталог настроены правильно, они будут найдены.

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

У вас нет собственного метаслоя, что означает, что вы либо пропускаете группы пакетов и добавляете каждый рецепт в свой local.conf, либо создаете свой собственный мета-уровень. слой. Параметр local.conf был бы намного быстрее / проще.

...