10

您知道如何使用分布式 bitbake 编译构建 oe 项目吗?我考虑过distcc。

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

make 将从指向 distcc 的路径调用 linux-gcc。
distcc 会将任务安排到所有已知的主机。
-jn 将创建 n6 个 make 实例。
它工作正常。
但现在我想将 distcc 与 bitbake 一起使用。
我知道如何将 -jn 与 bitbake 一起使用。
只需使用export PARALLEL_MAKE=-jn

但是如何将导出PATH=~/distcc/bin:$PATH与 bitbake 一起使用。必须站在
. 但是 bitbake 会将(放在 org.openembedded.dev/conf/bitbake.conf 中)放在.distcc/bin$PATH
$PATH_prepend$PATH

或者有人得到了另一种工具来更好地使用 bitbake 进行分布式构建?

4

2 回答 2

18

试试冰淇淋: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.conflocal.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"
于 2013-06-18T18:51:22.983 回答
0

一种更类似于 BitBake 的并行调用构建方式是编辑 local.conf 并取消注释 BB_NUMBER_THREADS 和 PARALLEL_MAKE 并将它们的值设置为您拥有的核心数量的两倍。现在,无论何时调用 BitBake,它都会使用这些值。

于 2013-01-28T14:13:09.887 回答