2013-01-23 245 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"