Raspberry Pi 3にChinachuをインストールするときのメモ

Raspberry Pi 3にChinachuをインストールする際、公式のインストールガイドのままではうまくインストールできないので、対処法のメモ。

ffmpegを自前でビルドする

commit 48afd7でスタティックビルド版のffmpegをインストールするようになっているが、スタティックビルド版にはarmhf版がない。 そこで、インストール時は自前ビルドを行う古いバージョンのスクリプトを用いるようにする。

$ wget https://github.com/kanreisa/Chinachu/raw/b34cbbf1eddf60be678ec3e5d441e7c3cb6818bc/chinachu -O chinachu_old
$ chmod +x chinachu_old

コンパイルオプションを修正する

Raspberry Pi 3のCPUであるCortex-A53の場合、gcc-march=nativeオプションをつけるとクラッシュしてしまうバグが存在する。 また、nodeのビルドはコンパイルオプションがARMv7以下でないと失敗する。 そこで、-march=nativeの代わりにRaspberry Pi 2と同等のコンパイルオプションを使うように修正する。

--- chinachu_old       2016-05-05 01:23:16.456616228 +0900
+++ chinachu_old       2016-05-05 01:23:22.606583914 +0900
@@ -77,8 +77,8 @@
   ensure_dir "$USR_DIR/src"
   ensure_dir "$USR_DIR/bin"

-  export CFLAGS="-O2 -w -pipe -march=native"
-  export CXXFLAGS="-O2 -w -pipe -march=native"
+  export CFLAGS="-O2 -w -pipe -mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard"
+  export CXXFLAGS="-O2 -w -pipe -mcpu=cortex-a7 -mfpu=neon-vfpv4 -mfloat-abi=hard"
   export MAKEFLAGS="-j $((`grep processor /proc/cpuinfo | wc -l` + 1)) -l 3"

   echo "Chinachu Installer Menu:"

上記の修正を加えたインストールスクリプトを実行することで、nodeおよびffmpegのビルドが正常に完了するようになる。

$ ./chinachu_old installer