Raspberry Pi上のArch Linux ARMでAURのAsteriskをdistccで素早くビルドする

distccを使って、AURパッケージをビルドしようとしていた。しかし、何故かローカルでビルドされて、どうやってもスレーブにコンパイルが振られなかった。結局のところ、-march=nativeがgccの引数に与えられていたのが原因だった模様だった。menuselectでBUILD_NATIVEを無効にすることでビルドすることができた。Ryzen 7 1700を積んでいるPCではHyper-Vを使って8コア割り当てて、仮想マシン上でArch Linuxを走らせて、distccdを動かしている。x86_64 CPUを8コア利用することビルドは10分以内で終わった。configureに2,3分、圧縮にも同じくらいかかっているので、コンパイル自体は5,6分くらいだろうか。Raspberry Pi 3だけでビルドすると20分はかかった。ヒートシンクを取り付けていないので加熱でサーマルスロットリングがかかって遅かったかもしれない。

スレーブ側(PC)

こちらで紹介されているAURパッケージを入れる。/etc/conf.d/distccdを編集して、ローカルネットワークからジョブを送り込めるようにする。そして、 sudo systemctl start distccd-armv7hを実行して、distccdを走らせておく。

マスター側(Raspberry Pi)

~/distccd/hosts

192.168.0.XX:3635,lzo,cpp

trizen -S asteriskを実行した。

pkgbuildを編集するか聞かれたら編集するを選んで、下記のようにする。

build() {
cd ${pkgname}-${pkgver}
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --sbindir=/usr/bin
make menuselect
menuselect/menuselect --disable BUILD_NATIVE
make -j12
}

あとは適当に続行すればよい。

 

追記:日本語音声を入れ忘れていた。

make menuselect
menuselect/menuselect --enable CORE-SOUNDS-JA-WAV --enable CORE-SOUNDS-JA-ULAW
make -j4

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です