2013-01-23 248 views
6

你有任何想法如何建立一個分佈式bitbake編譯一個OE項目? 我想過distcc。分佈式編譯與bitbake

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

作將調用的linux-GCC在我的道路,它指向的distcc。
distcc會將任務安排到所有已知主機。
-jn將創建n6個make實例。
它工作正常。
但是現在我想用distba和bitbake。
我知道如何在bitbake中使用-jn。
只需使用export PARALLEL_MAKE=-jn

但如何利用出口PATH=~/distcc/bin:$PATH bitbake的帶。
distcc/bin必須站在$PATH的前面。
但bitbake會將$PATH_prepend(置於org.openembedded.dev/conf/bitbake.conf中)放置在$PATH的前面。

或者有人得到另一種工具,以更好的方式與bitbake分佈式建築?

+0

導出命令將增加給定的路徑$ PATH變量,將在該屆會議上活躍。但我不清楚你的問題。你能解釋一下你的問題嗎? – 2013-01-23 06:23:38

+0

問題是我只知道如何使用PARALLEL_MAKE,但是當談到bitbake時,誰最終調用make,我沒有理想的如何配置它以PARALLEL_MAKE的方式工作。 – butter

回答

1

稍微多一點的BitBake-ish調用具有並行性的構建方式是編輯local.conf並取消註釋BB_NUMBER_THREADS和PARALLEL_MAKE,並將它們的值設置爲擁有的核心數量的兩倍。現在,無論何時調用BitBake,它都將使用這些值。

+0

我試過BB_NUMBER_THREADS方法,但它在單機上沒有得到很大的提高。看到操作系統限制了make thread – butter

11

嘗試活動熱點:https://github.com/icecc/icecream/blob/master/README.md

的distcc一樣,冰淇淋需要從構建編譯工作和遠程計算機允許並行構建之間分配它。但與distcc不同,Icecream使用中央服務器,將編譯作業動態調度爲最快的免費服務器。

OpenEmbedded和Yocto Project均支持Icecream。見https://git.yoctoproject.org/cgit.cgi/poky/plain/meta/classes/icecc.bbclass

安裝冰淇淋,然後添加以下到您的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"