2010-7-11 追記 この記事は間違っています。
この記事は
違うcpuでdistcc を使うの補足です。
distccをインストールして起動します。
http://www.gentoo.org/doc/ja/distcc.xml
kurobox-hg 側のバージョンを確認します。
$ emerge -pv binutils gcc linux-headers glibc
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild R ] sys-devel/binutils-2.18-r3 USE="nls -gold -multislot -multitarget -test -vanilla" 0 kB
[ebuild R ] sys-kernel/linux-headers-2.6.27-r2 0 kB
[ebuild R ] sys-devel/gcc-4.3.4 USE="fortran nls -altivec -bootstrap -build -doc (-fixed-point) -gcj -gtk (-hardened) (-libffi) -mudflap (-multilib) -multislot (-n32) (-n64) -nocxx -nopie -nptl -objc -objc++ -objc-gc -openmp -test -vanilla" 0 kB
[ebuild R ] sys-libs/glibc-2.9_p20081201-r2 USE="gd nls -debug -glibc-omitfp (-hardened) (-multilib) -profile (-selinux) -vanilla" 0 kB
CPUが早い方の gentoo の入ったパソコンで同じバージョンをインストールします。
その際USEをそろえます。
sudo USE="-nptl -gtk -multilib -openmp mudflap" crossdev -t powerpc-unknown-linux-gnu --binutils 2.18-r3 --gcc 4.3.4 --kernel 2.6.27-r2 --libc 2.9_p20081201-r2
確認します。
$ emerge -pv cross-powerpc-unknown-linux-gnu/binutils cross-powerpc-unknown-linux-gnu/gcc cross-powerpc-unknown-linux-gnu/linux-headers cross-powerpc-unknown-linux-gnu/glibc
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild R ] cross-powerpc-unknown-linux-gnu/binutils-2.18-r3 USE="nls -gold -multislot -multitarget -test -vanilla" 0 kB [1]
[ebuild R ] cross-powerpc-unknown-linux-gnu/linux-headers-2.6.27-r2 0 kB [1]
[ebuild R ] cross-powerpc-unknown-linux-gnu/gcc-4.3.4 USE="fortran (multilib) nls (-altivec) -bootstrap -build -doc (-fixed-point) -gcj -gtk -hardened -libffi -mudflap -multislot (-n32) (-n64) -nocxx -nopie -nptl -objc -objc++ -objc-gc -openmp -test -vanilla" 0 kB [1]
[ebuild R ] cross-powerpc-unknown-linux-gnu/glibc-2.9_p20081201-r2 USE="gd (multilib) nls -debug -glibc-omitfp -hardened -profile (-selinux) -vanilla" 0 kB [1]
早い方のgentooのpackage.keywords, package.mask, package.useに設定が追加されます。
その際 kurobox-hg 側に同じようなマスクを追加します。
>sys-devel/binutils-2.18-r3
>sys-devel/gcc-4.3.4
>sys-kernel/linux-headers-2.6.27-r2
>sys-libs/glibc-2.9_p20081201-r2
早い方の gentoo にインストールしたパッケージが消されないように登録します。
$ sudo grep cross-powerpc-unknown-linux-gnu /var/lib/portage/world
cross-powerpc-unknown-linux-gnu/binutils
cross-powerpc-unknown-linux-gnu/gcc
cross-powerpc-unknown-linux-gnu/glibc
cross-powerpc-unknown-linux-gnu/linux-headers
kurobox-hg 側の emerge の設定に distcc を追加します。
$ grep -i distcc /etc/make.conf
FEATURES="distcc"
DISTCC_HOSTS="192.168.0.100 192.168.0.100 192.168.0.100 192.168.0.100 192.168.0.100"
updateのコマンドを実行します。
(例) $ sudo emerge --update --deep --newuse --verbose --tree --with-bdeps=y --jobs=10 --load-average=5 --keep-going -ask world
成功している場合、付属のコマンドで、経過が出力されます。
cpu貸りる側。
$ sudo DISTCC_DIR=/var/tmp/portage/.distcc distccmon-text 1|grep -v ^$
29861 Blocked [0]
29856 Preprocess io.cc 192.168.0.100[0]
29757 Preprocess base.cc 192.168.0.100[1]
29792 Preprocess versionsort.cc 192.168.0.100[2]
29860 Preprocess header.cc 192.168.0.100[3]
cpu貸す側。
$ sudo tcpdump tcp port 3632 -n -v
gccなどの使われないパッケージも有ります。
pump emerge を使うと、より使うそうだが php で試したらセグメンテーション違反になりました。
libtool を使うものと相性が悪いらしいです。
cpu 借りる側の cpu 以外の性能も悪ければ cpu 貸す側は phenom9350e 以下で余裕で足ります。
この例の場合、このcpu1個で足ります。topなどでロードアベレージが0.5いきません。
後日、再度 pump emerge -av php をやったら大丈夫でした。