Распределенная компиляция с помощью bitbake

Есть ли у вас какие-либо идеи о том, как создать проект с распределенной компиляцией bitbake? Я думал о distcc.

export PATH=~/distcc/bin:$PATH
make -jn CC=linux-gcc

make вызовет linux-gcc с моего пути, который указывает на distcc.
distcc будет планировать задачи для всех известных хостов.
-jn создаст n6 экземпляров make.
Работает нормально.
Но теперь я хочу использовать distcc с bitbake.
Я знаю, как использовать -jn с bitbake.
Просто используйте export PARALLEL_MAKE=-jn

Но как использовать экспорт PATH=~/distcc/bin:$PATH с битбейком.
distcc/bin ДОЛЖЕН стоять перед $PATH,
Но битбэйк заменит $PATH_prepend (помещается в org.openembedded.dev/conf/bitbake.conf) перед $PATH,

Или кто-то получил другой инструмент для лучшего способа распределенного построения с помощью bitbake?

2 ответа

Попробуйте Icecream: https://github.com/icecc/icecream/blob/master/README.md

Как и distcc, Icecream берет задания компиляции из сборки и распределяет их по удаленным машинам, обеспечивая параллельную сборку. Но в отличие от distcc, Icecream использует центральный сервер, который динамически распределяет задания компиляции на самый быстрый бесплатный сервер.

И OpenEmbedded, и Yocto Project поддерживают Icecream. См. https://git.yoctoproject.org/cgit.cgi/poky/plain/meta/classes/icecc.bbclass

Установите Icecream, затем добавьте следующее в ваш site.conf или local.conf

INHERIT += "icecc"

# This value overrides PARALLEL_MAKE when ICECC is enabled
# This would enable icecc for local and cross
ICECC_PARALLEL_MAKE = "-j 24"

Немного более сложный способ вызова сборок с параллелизмом для BitBake- это отредактировать local.conf и откомментировать BB_NUMBER_THREADS и PARALLEL_MAKE и установить их значения в два раза больше имеющихся у вас ядер. Теперь, когда вы вызываете BitBake, он будет использовать эти значения.

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