2013-01-23 19 views
6

Masz pojęcie, jak zbudować projekt Oe z rozproszoną kompilacją bitów? Myślałem o distcc.Rozproszona kompilacja z bitbakiem

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

make będzie wywoływać linux-gcc z mojej ścieżki, która wskazuje na distcc.
distcc zaplanuje zadania dla wszystkich znanych hostów.
-jn utworzy n6 wystąpień make.
Działa dobrze.
Ale teraz chcę użyć distcc z bitbake.
Wiem, jak używać -jn z bitbake.
Po prostu użyj export PARALLEL_MAKE=-jn

Ale jak używać eksportu PATH=~/distcc/bin:$PATH z bitbake.
Model distcc/bin MUSI stać przed urządzeniem $PATH.
Ale bitbake umieści $PATH_prepend (umieszczony w org.openembedded.dev/conf/bitbake.conf) przed $PATH.

Czy ktoś dostał inne narzędzie do lepszego rozproszenia budynku za pomocą bitbota?

+0

polecenie eksport doda daną ścieżkę do zmiennej $ PATH i będzie aktywny w tej sesji . Ale nie mam jasności co do twojego problemu. Czy mógłbyś wyjaśnić swój problem? –

+0

Problem polega na tym, że po prostu wiem, jak używać PARALLEL_MAKE, ale jeśli chodzi o bitbake, który w końcu wywołuje make, nie mam idearu, jak skonfigurować go tak, aby działał jako metoda PARALLEL_MAKE. – butter

Odpowiedz

1

Nieco bardziej BitBake-ish sposób wywoływania kompilacji z równoległością jest edycja local.conf i un-komentarz BB_NUMBER_THREADS i PARALLEL_MAKE i ustawić ich wartości na dwa razy więcej niż liczba rdzeni, które masz. Teraz, gdy wywołasz BitBake, użyje tych wartości.

+0

Próbowałem już BB_NUMBER_THREADS sposobów, ale nie udało się go poprawić w pojedynczej maszynie. Ustal, że system operacyjny ograniczył liczbę wątków – butter

11

Spróbuj lody: https://github.com/icecc/icecream/blob/master/README.md

Jak distcc, lody trwa kompilować zadania z kompilacji i rozprowadza je wśród zdalnych maszynach umożliwiających równoległą budować. Ale w przeciwieństwie do distcc, Icecream używa centralnego serwera, który dynamicznie planuje zadania kompilacji na najszybszy wolny serwer.

Obsługa OpenEmbedded i Yocto Project Icecream. Zobacz https://git.yoctoproject.org/cgit.cgi/poky/plain/meta/classes/icecc.bbclass

Install lodów, następnie dodać następujące do site.conf lub 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" 
Powiązane problemy