概要
buildrootでupnpレンダラーをつくるときに、やったほうがいいことの一つに
「NanoPi-NEO2に最適化したビルド」
があります。
symphonic-mpdのパパリウスさんもおっしゃられてますが、最適化ビルドをしたほうが音がよくなるというのは実際に体験してみて私も感じています。
私がやっていることについて書いておきます。
最適化オプション
gcc 7.Xのドキュメントとにらめっこしながら実際に設定している(ビルドが通る)NanoPi-NEO2用のビルドオプションは以下の通りです。詳しい人からみればこれいらないんじゃない?みたいな部分もあると思いますが。
CFLAGS="-O3 -pipe -ftree-vectorize -march=armv8-a+fp+simd -mtune=cortex-a53 -mcpu=cortex-a53+fp+simd -mabi=lp64"
CXXFLAGS="${CFLAGS}"
最適化ビルドする対象
音楽再生に関係があると思われるもので最適化オプションでビルドしているものは以下のとおりです。
alsa-lib alsa-utils audiofile flac libcurl libmad mpd libupnp libupnpp upmpdcli
buildrootでの最適化ビルドオプションの記載例
buildrootでは各パッケージのビルド手順は/buildroot/package/の中にあります。例えばalsa-libなら、/buildroot/package/alsa-lib/alsa-lib.mkです。このファイルを以下のように編集しています。
ALSA_LIB_CONF_OPTS = --disable-ipv6 \
CFLAGS="-O3 -pipe -ftree-vectorize -march=armv8-a+fp+simd -mtune=cortex-a53 \
-mcpu=cortex-a53+fp+simd -mabi=lp64" \
CXXFLAGS="${CFLAGS}"