你知道如何使用分布式 bitbake 编译构建 oe 项目吗?我想过distcc。
export PATH=~/distcc/bin:$PATH
make -jn CC=linux-gcc
make将从我的路径调用Linux-gcc,该路径指向distcc。
distcc 会将任务安排到所有已知主机。
-jn 将创建 make 的 n6 实例。
它工作正常。
但是现在我想将distcc与bitbake一起使用。
我知道如何将 -jn 与 bitbake 一起使用。
只需使用export PARALLEL_MAKE=-jn
但是如何将导出PATH=~/distcc/bin:$PATH
与位烘焙一起使用。distcc/bin
必须站在$PATH
前面.
但是 bitbake 会将$PATH_prepend
(放在 org.openembedded.dev/conf/bitbake.conf 中)放在$PATH
前面。
或者有人得到了另一种工具,可以更好地使用 bitbake 进行分布式构建?
尝试冰淇淋:https://github.com/icecc/icecream/blob/master/README.md
与distcc一样,Icecream从构建中获取编译作业,并将其分发到允许并行构建的远程机器之间。但与distcc不同的是,Icecream使用一个中央服务器,该服务器将编译作业动态调度到最快的免费服务器。
OpenEmbedded和Yocto项目都支持Icecream。见 https://git.yoctoproject.org/cgit.cgi/poky/plain/meta/classes/icecc.bbclass
安装 Icecream,然后将以下内容添加到您的网站.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 时,它都会使用这些值。