Pylone Blog - タグ:distcc
distcc による Linux カーネルのクロスコンパイル
Mon, 23 Jun 2008 07:41 GMT, Posted by Seiichi SATO
Bishop のカーネルを distcc による分散クロスコンパイル環境 でクロスコンパイルしてみました。
distcc の FAQ によると
You should use about twice the total number of CPUs available, but it depends on your network, program being compiled, available memory, etc. Experiment with different values.
とのことなので、 とりあえず -j をプロセッサ・コア数の2倍にします。
まずは localhost 1台で計ってみます。 (Xeon 2.40GHz x2, コア x4)
$ time make -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnu- uImage
real 4m0.051s
user 13m14.462s
sys 1m12.329s
ホストを一台追加します。 (host2: Pentium D 3.0GHz, コア x2)
$ export DISTCC_HOSTS="localhost host2" $ time make -j12 ARCH=arm CROSS_COMPILE=arm-linux-gnu- CC="distcc arm-linux-gnu-gcc-4.1" uImage real 2m4.114s user 4m38.933s sys 0m57.964s
もう一台追加します。 (host3: Core 2 Duo E6600 2.4GHz, コア x2)
$ export DISTCC_HOSTS="localhost host2 host3" $ time make -j16 ARCH=arm CROSS_COMPILE=arm-linux-gnu- CC="distcc arm-linux-gnu-gcc-4.1" uImage real 1m32.039s user 3m41.718s sys 1m0.260s
さらにもう一台追加します。 (host4: Celeron M 520 1.60GHz, コア x1)
$ export DISTCC_HOSTS="localhost host2 host3 host4" $ time make -j18 ARCH=arm CROSS_COMPILE=arm-linux-gnu- CC="distcc arm-linux-gnu-gcc-4.1" uImage real 1m22.078s user 3m17.572s sys 1m2.056s