Raspbian Busterでxnp2をコンパイルしようとしたら色々問題出たので書いてみる。
ていうか、こいついっつもxnp2コンパイルしてんな、とか思われそう。
*MIN MAXマクロがどうたらこうたらエラー
http://etokami.sblo.jp/article/183744301.html?1575887577昔書いた記事参照、パッチもあるYO!
*configure中にACX_PTHREAD command not foundと出る
そのままコンパイルするとエラーで止まる。
原因さっぱり分からないが、対処法ならなんとかなる。
CFLAGSとCXXFLAGSに-pthreadを入れるか、LDFLAGS="-lpthread"で対処可能。
*SDL2.0だと音が出ない
公式発表だと2.0.2にバグがある、しかしインストールされているのは2.0.4。
2.0.2のバグは既に修正されているらしのだが。。。
Fedora 31でも試したがやはり音が出ない。
前に自分で作ったSDL Mixer2.0使ったゴミソフトは音が出てるので、xnp2側の問題。
対処できないかと思ったけれど、エラーすら吐かないのでお手上げ状態。
暫定的な対処法としてSDL1.2を強制する。
./configure --disable-sdl2
な感じでオプション入れるとSDL1.2を使うようになるので音が出る。
*Pulseaudio運用時音が出ない、音が遅れる、音が割れる、全体が処理落ちする
xnp2だけでなく色んなところに影響でる。
対処法は、Pulseaudioを使わないか、/etc/pulse/default.paを編集して、
load-module module-udev-detect
上記項目を探して、
load-module module-udev-detect tsched=0
と、変更して保存して再起動。
念の為、xnp2は必ず-O2オプションで最適化すること。
つけないと大幅にパフォーマンスが落ちる。
せっかくなので、コンパイル時間を計測してみた。
ちょっとしたベンチマーク代わり。
下記オプションを付与してコンパイル。
--enable-build-all --disable-sdl2 (※以下適当な最適化オプション)
全て-jオプションはなし。
Raspberry Pi 4 + Raspbian Buster
real:4m55.199s
user:3m53.159s
sys :0m57.241s
Core i5 750 + Fedora 31
real:1m49.604s
user:1m32.390s
sys :0m15.499s
Atom N270 + Ubuntu14.04
real:8m34.423s
user:7m40.824s
sys :0m45.724s
腐ってもCore i5というか、我がPCの圧勝ではないか。
後10年は戦える(戦うとまでは言ってない)。
そして、さすがにAtom N270に対して倍の速度を出している。
Cortex-A72はできる子だな!
-j2で温度がこの時期ですら70度に到達する点を見なければ、だけど。
■おまけ(※ここからはお暇な人だけどうぞ)
うん、買っちゃったんだ、Raspberry Pi 4。
USB周りが修正されているOkDOのやつです。
輸入したい衝動にかられてたけど、ズルズル時間が経過して気がついたら日本でも発売されてしまった。
使用しているSDカードはこれ、トランセンドのTS32GUSD300Sというやつ。
問題なく使えています。
Raspberry Pi 4では現状Ubuntu MATEが厳しいようなので、暫定的にRaspbian Buster入れてます。
PIMORONIの金属ケース、Heliodr Gold。
しかし現状はむき身で使っているため、このケースはまだ使ってません。
KSYのACアダプタ。
Raspberry Pi 4に使えそうなACアダプタの選択肢なんてない。
ぁゃιぃ中国製か怪しくない中国製のどちらか。
Raspberry Pi 4を買うなら必ずACアダプタも一緒に買うこと。
KSYなりRS公式なりで買えば怪しくないほうを買うことができるでしょう。
さて、以前のパーツがほとんど使いまわせないため買い直し。
この結果予算がオーバーしてしまった。
しかしRaspberry Pi 4はMicro HDMIなので普通のHDMIケーブルが使えない。
さてどうしよう。。。
DAIS○でこんなの買った。
かつては携帯電話の変換ケーブルで左右逆に音が出る不具合品を堂々と販売していた百均ショップ。
しかし残念なことにこの変換アダプタは普通に使えている。
やるじゃん……いや、これが普通なのか。
当たり前が幸せ、だから良かった探しの旅に出ます、現実逃避と言うのかも知れません。