#yocto #bitbake
#yocto #bitbake
Вопрос:
Я создал сценарий оболочки bash и хочу, чтобы этот сценарий выполнялся во время сборки этого рецепта (в соответствии с которым был создан скрипт). Итак, я хочу, чтобы bitbake запускал этот скрипт при создании рецепта. Что я должен добавить в файл .bb?
Любая помощь была бы действительно оценена.
Комментарии:
1. зависит от того, что должен делать ваш скрипт. Но обычно просто создайте задачу или проще, сделайте do_compile_append(){ ${WORKDIR}/<your-script> <аргументы>} и она будет запущена. Если еще нет задачи do_compile, вы можете опустить _append или просто использовать другую задачу
Ответ №1:
Если вы хотите запустить скрипт в рецепте, вы можете определить задачу и добавить к ней зависимость
Это в моем uboot.bb
файле. При этом образ uboot копируется в каталог каждый раз, когда компилируется uboot
before do_build
означает, что этот сценарий выполняется при каждом запуске bitbake <recipe>
after do deploy
Означает, что при каждой компиляции uboot выполняется этот сценарий.
PACKET_OUTDIR ?= "${DEPLOY_DIR_IMAGE}/out"
UBOOT_OUTFILE ?= "${MACHINE}.uboot"
# Copy bin after compile
addtask bin after do_deploy before do_build
# redo task if vardeps variables changed from last execution
do_bin[vardeps] = "UBOOT_OUTFILE PACKET_OUTDIR"
do_bin() {
# create directory
install -d ${PACKET_OUTDIR}
# copy uboot bin to the out directory and print output on display
bbplain $(cp -vH ${DEPLOY_DIR_IMAGE}/${UBOOT_MAKE_TARGET}-${UBOOT_CONFIG} ${PACKET_OUTDIR}/${UBOOT_OUTFILE})
# run an external script in home
~/external_script.sh
}
Если вы хотите запустить скрипт перед компиляцией, просто используйте before do_compile