10

分散 bitbake コンパイルを使用して oe プロジェクトをビルドする方法について何か考えはありますか? 私はdistccについて考えました。

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

make は、distcc を指すパスから linux-gcc を呼び出します。
distcc は、既知のすべてのホストにタスクをスケジュールします。
-jn は、make の n6 インスタンスを作成します。
それは正常に動作します。
しかし今、私は bitbake で distcc を使いたいと思っています。
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 を使用した分散ビルドのより良い方法のための別のツールを手に入れましたか?

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.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"
于 2013-06-18T18:51:22.983 に答える
0

並列処理でビルドを呼び出すもう少し BitBake っぽい方法は、local.conf を編集して BB_NUMBER_THREADS と PARALLEL_MAKE のコメントを外し、それらの値を使用しているコア数の 2 倍に設定することです。これで、BitBake を呼び出すたびに、これらの値が使用されます。

于 2013-01-28T14:13:09.887 に答える