@トイ さん
素晴らしい機材かつ独創的な構成ですね。
これ以上をポタに求めようという意欲が凄い・・・
トイ さんの平面振動版+強力アンプの音を聞いてみたいです。
@パパリウス さん
mpd -Vでpipeは出力されませんでしたので、mpdは自力でビルドするつもりです。
それから、@Kichitaroさんのブログに開発のベースにさせて頂きたい旨をコメントさせてもらいました。
@デジタル さん
チャットのメッセージは確認できましたでしょうか?
まだあまり使っていない機能ですが、うまく活用できればと思います。
(チャットの着信を通知してくれる機能があればいいんですけど、見当たらないんですよねえ:relieved: )
mpdのビルド、ぜひ楽しんでください。
最近のmpdはcmakeを使うようになっています。
私はconfigure/makeのシンプルで使い方が理解しやすいところが好きなんですが、cmakeが必要なソフトも増えてきてますね。
音質面でいうと、
でチューニングすることができます。
ビルドオプションも山ほどありまして、32bit版であればPi2/Pi3/Pi4向け、Pi3向け、Pi4向けとターゲットをどのように絞るかによって使えるオプションも変わってきます。
64bit版(aarch64)ですと、ビルドオプションの組み合わせはグッとシンプルになります。
このようなビルドに関するノウハウも共有していきましょう。
raspbianにコンパイラ(gcc)が入っていると思いますが、別途最新のコンパイラも準備されるとよいと思います。
gcc8、gcc9、llvm+clangが候補になります。
@パパリウス さん
@Kichitaro さんより返信を頂きました。
端的に言うと、LeanMPDをベースにすることはOKだということです。
ただし、注意点としてはKichitaroさんのスクリプトにはたかじんさん作のもの、
およびじんそんさん作のものが含まれており、その流用はたかじんさん、じんそんさんに確認してほしいとのことです。
(たかじんさん、じんそんさんはポタ用のDAC基板の作者で基板に再生・停止等の制御ボタンを搭載されており、
スマホ等からハードウェアボタンと同様の操作性を実現するためのスクリプトを書かれています。)
また、Kichitaroさん自身がsmpdのポタ版的なものを目指しておられたそうで喜んでおられました。
ただ、リアルがいろいろ立て込んでおられ、また、ご自身もLeanMPDを開発する意欲を失っていないようで、
ポータブル版開発への直接のご助力は難しそうです。
mpdのコンパイルに関しては、VMWareにdebianを入れクロスコンパイルの環境を作る作業中ですので今少しお待ちください。
@デジタル さん
fileコマンドの結果は問題ないようですね。
mpdはバージョンによっては mpd.conf の書き方に問題がある場合に
segmentation faultが発生することがありました。
以下、お試しください。
①バージョン確認
※ファイル形式があっていれば、これは実行できるはずです。
mpd -V
②デバッグ実行
※途中で落ちているのであれば何かしら情報を得られると思います。
mpdはフルパス指定の方が確認の意味でもよいかと思います。
※もし動き続けるようでしたら Ctrl + C で止まります。
sudo systemctl stop mpd
sudo /usr/bin/mpd --no-daemon --stderr --verbose /etc/mpd.conf
@デジタル さん
私はカーネル以外は実機でコンパイルしていますので、
クロスコンパイラでそのまま使えるかどうかは分かりませんが、
以前、Raspberry Pi Zeroでコンパイルした際に指定したオプション
を以下に記載します。
ご参考までに。
CFLAGS="-s -O2 -march=armv6zk -mfpu=vfp -mfloat-abi=hard -mtune=arm1176jzf-s -mcpu=arm1176jzf-s -ffast-math -ftree-vectorize -funsafe-math-optimizations"
CXXFLAGS="-s -O2 -march=armv6zk -mfpu=vfp -mfloat-abi=hard -mtune=arm1176jzf-s -mcpu=arm1176jzf-s -ffast-math -ftree-vectorize -funsafe-math-optimizations"
@donuts-shop73 さん
情報のご連携ありがとうございます。
CFLAGS、CXXFLAGSを教えて頂いた内容にしてビルドしてみましたが、
やはりsegmentation faultが発生しました。
クロスコンパイルで指定するべき項目に漏れがあるのだと思いますが、
追及するには時間が必要だと思えますので環境を変更しました。
Raspberry Pi のセルフビルド環境を QEMU で作る - Qiita
ここを参考に疑似セルフビルド環境を作成してビルドしてみました。
結果、作成したバイナリで正常に音出しする事ができました。
mpdにはデジファイのおとさんのRTパッチのみを当て、CFLAGS、CXXFLAGSはdonuts-shop73さんのものを使わせて頂きました。
次はsmpdのカーネルの導入により、smpdとLeanMPDの融合に1歩踏み出したいと思っています。
mpdのビルドよりずっと大変でしょうが。
@デジタル さん
クロスコンパイルはなかなか難しいですよね。
クロス環境ではLTOあり(CFLAGS="-flto")でうまくビルドが通らなくて、断念したという経緯があります。
リンカーの問題だとは思うのですが、いろいろ試したものの解決には至りませんでした。
donutsさんと同じく、私もカーネルのビルドだけクロス環境で行っています。
RTカーネル・Xenomaiカーネルに共通なのですが、USBのFIQが問題になって起動しないケースがあります。
smpdのカーネルに差し替える際には、cmdline.txtに
dwc_otg.fiq_enable=0
dwc_otg.fiq_fsm_enable=0
dwc_otg.lpm_enable=0
を入れておいていただく必要があるかもしれません。
@デジタル さん
モジュールのパスが異なっている場合、depmodは失敗します。
今回のようにmodules.depもセットで別のカーネルに差し替える場合は、depmodのエラーは気にしなくてよいと思います。
depmodは、カーネルモジュールを修正して差し替えた時にmodules.depを更新したいときに使います。
私も1000回以上、カーネルを差し替えてきました。
「性能上がるかな、、、音質上がるかな、、、!?」とワクワクしながらカーネルを差し替え、測定と試聴を繰り返していました。うまく起動しないことも数百回あったはずです。
デジタルさんもカーネルガチャを楽しんでください:flushed: