別のスレでサルがupnpアダプタをrpiでやっているという話をちらっとですがしました。
これは、lightmpdupnpgwの説明をよく読んでいるうちにこれならapuじゃなくても
できるんじゃないか、と考えてやったらできてしまったという顛末です。
音の評価は僕は先入観を与えたくないので触れません。
それより自分でやってみたいという人の手助けが少しでもできればという思いで
書いてみたいと思います。ただ、buildrootの説明でやったときのような手取り
足取りみたいなことはやりません。今までにbuildrootを扱ってそれなりに実力が
ついてきている人が対象です。そういう方はおそらくbeagleboneだけでなくrpiの
システムも自分で作れるようになっていると思いますので。
今回は概要だけ説明します。これだけでもできる方はいらっしゃるんじゃないでしょうか。
サルでもできましたので安心してください。
サルがやっているupnpアダプタの簡単な構成を以下に示します。
upmpdcli+polipo mpd
[NAS]----------------[rpi2B]------------[BBG or rpi]
eth1 eth0 eth0
(192.168.1.X) (10.0.0.1) (10.0.0.2)
upnpアダプタはnat,napt(ipマスカレード)を使う方法とupmpdcli,polipoを使う方法が
あります。lightmpdupnpgwではどちらの方法でも取れるようになっています。(この表現は
不正確ですね。polipoを使わない場合、nat機能を使うということです。)
しかし、せっかくupnpで音出しをしているわけですから、upmpdcli,polipoを使う方が
わかりやすいと考えました。
rpi2Bにはご存知のとおり、ethが1つしかありせんので、usb-etherアダプタを使い
ます。私は1000円ちょっとで購入しました。これでrpi2Bにnas側とBBG側をつなげます。
この構成でネットワーク分離とupnpレンダラーができるupnpアダプタの完成です。
lightmpdgwの最終形態?のイーサネット分離もできればやってみたいですが、今は
時間があまりとれませんので、できた人がいらっしゃればサルに教えてください。
最初音がでたときはほんと不思議な感じでした。今まで、mpdとupmpdcli,polipoが
同居するupnpレンダラーしかやったことがなかったのでこれらを別居させ、なおかつ
音がでるというのがサルには興味深かったわけです。
あくまでもネットワークの利便性を失わず、いい音を聴きたいというdigififanさんの
思いが伝わってきます。この場を借りまして敬意を表したいと思います。
とにかく、lightmpdupnpgwのdigififanさんの説明をよくお読みになってください。
できますので。
次回以降は少し間を置き、もっと説明して欲しいといったリクエストがございましたら
できる限り答えていきたいと思います。
リクエストが来ませんように。
なるほど、図をみればあきらかですか。
upmpdcli + polipo と mpd の二つのシステムに分離すれば良いということですか。
問題はネットワークの処理ですね。フロント側は2回線(対UPnP機器、対バックエンド)取り扱う必要があるから、そのあたりをどうやったか、書いていただけると参考になります。
yoさん
>問題はネットワークの処理ですね。フロント側は2回線(対UPnP機器、対バックエンド)取り扱う必要があるから、そのあたりをどうやったか、書いていただけると参考になります。
またまた、本当はもうわかっていらっしゃるんじゃありませんか。わかってて、サルに喋らそうとしているんではないでしょうね。まあ、いいでしょう。
サルはこうやっています。
rpi2Bにはupmpdcli+polipoがあればいいので、archとかubuntu
とかでもいいと思います。サルは元からbuildrootにシステムを
作らせてますので、そのネットワークの部分だけ書いておきます。
[rpi2B]
(/etc/network/interface)
auto lo
iface lo inet loopback
auto eth1
iface eth1 inet static
address 192.168.1.x
netmask 255.255.255.0
default gw 192.168.1.1
broadcast 192.168.1.255
auto eth0
iface eth0 inet static
address 10.0.0.1
netmask 255.255.255.252
(resolve.conf)
nameserver 192.168.1.1
(upmpdcli.conf)
これはネットワークに係る部分だけ書いておきます。
upnpiface=eth1
mpdhost=10.0.0.2
(polipo.conf)
これもネットワークに係る部分だけ書いておきます。
allowedClients=10.0.0.2
[BBG or rpi]
(/etc/network/interfaces)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.0.0.2
netmask 255.255.255.252
default gw 10.0.0.1
(resolv.conf)
nameserver 192.168.1.1
(mpd.conf)
input {
plugin "curl"
proxy "10.0.0.1:8123"
}
以上終わり。
あと、図ではNASを直結したみたいに書いてますが、ルーターが
間に入っていたりとかサルの環境はもう少し複雑です。
インターネットラジオももちろん聴ける環境ですので。
ああ、そうそう、これを読んでいらっしゃるであろうヨイコの
皆様はいちいちサルに付き合わなくていいですからね。
サルは楽しいからやってるわけで、そのおすそ分けをと思って
いるにすぎません。arch boticが音がいいというならそれで
いいじゃありませんか。自分の耳に自信をお持ちになって
ください。
サル
inthedark さん
明快な解説ありがとうございました。
donutsさんの公開されたイメージに lightmpd.conf.player というconfファイルがあって、これはどうも、upmpdcli(フロント側) と polipoj + mpd (バックエンド側) という具合にシステムを分けるためのものらしいのですが、面白そうだなぁと思っています。upnpgw はフロント upmpdcli + polipo 、バック mpdですよね。
また、lightmpdの掲示板でdigififanさんとaki2muraさん(誰だかみえみえですよね)が丁々発止、白熱のやりとりをされていて、同じようにpolipoをどうフロント側/バックエント側に置くかという議論が進んでいます。
このあたり、オーディオ的にはかなり面白い話題のはずなのですが、いかんせん技術的に難しすぎる議論なので、誰でも近寄れるという話題にならないのがつらいところなのですよね。
まあ、自分の知識のなさを棚に上げて、いいだの悪いだの印象批評だけしているタヌキは無視するとして、このような技術的問題はオーディオ的な音の良さの追求につながっていることを理解するおサルさん達が活性化するといいなと思っています。
yoさん
ご無沙汰しております。遅くなりましたが、upnp版誕生おめでとう
ございます。これで、double lines playerの敷居が低くなったん
じゃないかと思います。色々、うまくいかないこともありますが
それも含めて作る喜びみたいなものがありますんで。
当方、イーサネット分離の音にはまってしまいまして色々作って
遊ぶのに忙しい毎日を送っております。lightmpd掲示板をお読み
ならお分かりでしょうが。yoさんの掲示板ではしゃべりすぎてますので
自粛しております。そのうちlightmpd掲示板で出入り禁止になるかも
しれません。ついでにここでも。
yoさんにだけ内緒話をしたいと思います。(内緒話になってませんが)
yoさんのupnp版ではusb-otg接続でのdouble lines playerに対応してますか?
bbb(bbg)はご存知かもしれませんが、usb-otgに対応してますので
usb-ethernetアダプタを使わず、usb-otgケーブル(bbg買ったらついてくるやつ)
とethernetケーブルでapuとつなぎdouble lines playerにしたてることができます。
lightmpdupnpgwの説明の中にapuとbbb(bbg)でイーサネット分離をusb-otgでやる
図があります。
私は、lightmpd掲示板でも書きましたがintel nuc と bbgでやりました。
もちろん音出しはusb-dacによるものです。しかし、ハイレゾ(24bit 192khz,dsd128以上)
だとパリ、パリと不定期にノイズが入ります。この辺の調整はdigififanさんが
次期lightmpdでされると思います。が、yoさんはapuとbbgをお持ちですので
機会がありましたら、こっそりboticで音出しをして感想をお聞かせいただければ
と思います。おそらくですが、boticならノイズレスで再生できる可能性がありますので。
またしゃべりすぎてますのでこの辺でおしまいにいたします。
inthedark
inthedark さん、お久しぶりです。「なんちゃってネットワーク分離」をロムしていますので、余りそういう感じはしませんが。
アドバイスありがとうございました。USB-otgについてはlightMPD upnpgw版の解説でdigififanさんのコメントがあるので、知識としては知っていましたが、どうせ専用のケーブルがいるのなら、USB-LAN変換アダプタでやった方がわかりやすいだろうと考え、パスしていました。
> usb-otgケーブル(bbg買ったらついてくるやつ)とethernetケーブルでapuとつなぎdouble lines playerにしたてることができます。
というのはbbgの電源供給用のマイクロUSB端子を使って通信できるという意味でしょうか。その場合APU側もUSB-otgに対応するカーネルのビルドが必要になると考えていいですね。
> しかし、ハイレゾ(24bit 192khz,dsd128以上)だとパリ、パリと不定期にノイズが入ります。
USB-LAN変換アダプタではパリパリノイズは経験したことがありません。理屈としては同じUSBなので、発生してもよさそうなものですが、i2s接続の功徳で発生しないということですかね。
yoさん
>どうせ専用のケーブルがいるのなら、USB-LAN変換アダプタでやった方がわかりやすいだろうと考え、パスしていました。
yoさんが公開されているパッケージはあれでいいと思います。私は個人的にyoさんに楽しんでもらいたいと思いましてお話しました。
>というのはbbgの電源供給用のマイクロUSB端子を使って通信できるという意味でしょうか。その場合APU側もUSB-otgに対応するカーネルのビルドが必要になると考えていいですね。
おっしゃるとおりです。今流行り?のrpi zeroはotg機能がありますので,それを使ってrpi zeroと通信できました、みたいな話はネットでもゴロゴロしてますが、bbb(bbg)についてはpcとbbgをbbg付属のケーブルでつないでemmcのosにアクセスするみたいな情報以外、どう設定したらusb-otgによるether通信ができるのかずばり書いているサイトが私の調べた限りないんですよ。bbgでやる人があんまりいないんでしょうか。一応、私がやったことをこっそり書いておきますね。おっしゃるとおり、apu,bbgのカーネルを再構築しないといけません。
カーネルオプションをどう設定したらいいかを以下に示します。
[apu]
Device Drivers --> [*] Network device support --> [*] USB Network Adapters --> [*] Multi-purpose USB Networking Framework --> [*] CDC Ethernet support
[bbg]
Device Drivers --> [*] USB support --> [*] Inventra Highspeed Dual Role Controller
MUSB Mode Selection (Dual Role mode)
--> [*] USB Gadget Support --> USB Gadget Drivers(Ethernet Gadget (with CDC Ethernet support)
Ethernet Gadget (with CDC Ethernet support)
以上で再構築されたカーネルで起動しますと、ifconfigでusb0というのが生えているはずです。こうなればもうこっちのものです。ethXと同じようにipアドレス等を設定
して頂いて、double lines playerを構築してやってください。
bbgにはapuから電源が供給されます。apuの電源だけ操作すればよいのでlightmpdのような電源ぶち切りできるシステムでは便利ですね。
まあ、こういう遊びもできるということですので興味がございましたらやってみてください。
>USB-LAN変換アダプタではパリパリノイズは経験したことがありません。理屈としては同じUSBなので、発生してもよさそうなものですが、i2s接続の功徳で発生しないということですかね。
rpi2B,rpiB+のコンビでイーサネット分離のシステムを作ったんですが、その時の音出しはrpiB+にのせたi2sdacからでした。その時24bit,192khz,flacのハイレゾもノイズレスで再生できた経験から、i2sの方がノイズに悩まされにくいと推測しております。usb-dacはやはり、apuのようなパワーのあるボードでやった方がいいというのが個人的な意見です。
ps 私もiFI-Audio iPurifier DCの愛好者です。
inthedark
inthedark さん
貴重な情報の公開ありがとうございます。財務省もこの位やってくれると、世の中もっと分かりやすくなるのですけどね(^^;;;。面白そうなので、是非試してみるつもりです。
USBですが、SOCチップのマイコンの弱点じゃないかと思っています。r-piがこれだけ流行っている理由の一つはこの弱点を克服したからでしょう。確か、r-piの初期モデルはusbにノイズがのって音楽用にはまったく使えなかったと記憶しています。BBもそういう傾向があるので、パリパリノイズはこれが理由ではないですかね。i2s接続でそのへんがどうなるか大いに興味があるので、試してみる一手ですね。結果はご報告いたします。
実は、BBのpolipoでのトラブルもusbに関連しているのではないかなと疑っています。double lines playerでeth0側にpolipo回線を設定すると500MBの壁がクリア出来たのはその証拠じゃないですかね。pingが確認したのですが、eth0とeth1(usb-lanアダプタ)では倍以上の性能差がありましたから。
iPurifier DC は簡単に使えて、効果は抜群なので、いいですね。ヤマハ(製造中止で)亡き後、頼みの綱です。
遅ればせながら、linuxcomさんからブリッジ基板を購入いたしましてboticで音出しを致しました。(ほんと、初めてです。)
構成はbbg=brixのusb-otgを使ったシステムを自分で作りました。(もう私にとってはおなじみですが)
24bit,192khz,flacを見事ノイズレスで再生しきりました。素晴らしい。rpiB+でも確認していたことなので当然といえば当然
なんですが。
upnpgwとplayerを分けるこのシステムはそれぞれを様々なボードの組み合わせで試すことができますので面白いですね。
私にとっては、いい音が聴けるのはもちろんですが、linuxの勉強にもなる、ネットワークの勉強にもなる、一粒食べて2度、3度
おいしいので楽しいです。
あとこれは余談ですが、git版mpd(バージョン表示は0.21になる)は、rtoptionのpatchがrejされますね。
rtパッチをあてず音出ししてみましたが、素晴らしい音です。maxさんには頭が下がります。
inthedark
inthedark さん、botic-i2sクラブにようこそ。
ご無沙汰してますが、usb-otgを忘れたわけではありません。BBB(fornt)-BBG(backend)という組み合わせで、こっそり試しているところですが、難行しています。三つ前の書き込みで教えて頂いた方法でカーネルをビルド。カーネルを入れ換え、起動します。
バックエンド側は
ifconfig usb0 up
ifconfig usb0 10.0.0.2
ifconfig usb0 netmask 255.255.255.252
という形で回線をオープン。
usb0 Link encap:Ethernet HWaddr 52:B3:72:26:19:47
inet addr:10.0.0.2 Bcast:10.0.0.3 Mask:255.255.255.252
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
となったことを確認。
問題はフロント側で同じ方法でオープンすると両方ともDual Role modeとなり、pingが効きません。
フロント側にUSB回線を認識させるおまじないを捜しているのですが、どうやるのですかね。
yoさん
bbb-bbgでdouble linesってハード的にできるんでしょうか?フロント側のbbbは3回線確保する必要があるわけですよね。
bbbへの電源供給をusb-otg端子以外から供給するようにすれば可能なんでしょうかね。もし可能であればという前提で
私がフロント側のbbbのシステムをつくると仮定したらカーネルオプションをどうするか? 考えてみました。
基本的にはapuと同じだと思うんですが。apuのusb端子はホスト(親)にしかなれないと思いますのでなんの問題もないですが
bbb(bbg)はホスト(親)にもガジェット(子)にもなれるということなんで。
Device Drivers --> [*] Network device support --> [*] USB Network Adapters
--> [*] Multi-purpose USB Networking Framework --> [*] CDC Ethernet support
Device Drivers --> [*] USB support --> [*] Inventra Highspeed Dual Role Controller
MUSB Mode Selection (Host only mode)
もちろん、USB Gadget Support はチェックをはずします。
これでbbbのusbのA端子もmicro端子もホスト(親)として機能するかどうかやってみないとわかりません。
これ以上のことは私にはわかりませんが色々遊んでみてください。
inthedark
yoさん、inthedarkさん
お久しぶりです
このスレが立って3ヵ月近く経ちましたが、rpiでつくる...はまだ私自身実現できていません。
lightMPDをベースにしようと、digififanさんが公開してくださったbeaglebone用のbuildroot設定ファイルをrpi3用にオプション変更したりして自分なりにトライしてみましたが、カーネルを自前ビルドのものに差し替えるとrpi3が起動しなくなるので挫折してしまいました。
ビルドもbuildroot一辺倒でここで教えていただいた使い方以上のことはできず、独自にクロスビルド環境を構築できるスキルもないのでrpi3についてはdigififanさんをはじめ、皆様の次の展開を待つのみといった状況です。
代わりにBBG 2台を使ってlightMPDベースでsingle lineでのadapter+playerの環境を自前ビルドで構築することができました。
これもひとえにyoさんがお手本となるBB用 lightMPD UPnP-Adapter/Playerを公開してくださったおかげです。
myscript.shの実装とネットワーク設定等は非常に参考になりました。
yoさん、digififanさん、inthedarkさん他関係された方々に非常に感謝しております。
私が所有するUSB-LANアダプタ:LOGITEC LAN-TXU2Cを使用するため、カーネルビルドで
Device Drivers --> [*] Network device support --> [*] USB Network Adapters
--> [*] Multi-purpose USB Networking Framework --> [*] ASIX AX88xxx Based USB 2.0 Ethernet Adapters
を追加選択する必要があり、yoさんが公開してくださっているBB用 lightMPD UPnP-Adapter/Playerをそのままでは使用できないだろうと思い(すみません、実動作で試していません)、自前ビルドでなんとか環境を整えたという次第です。
最終的にはdouble linesも試してみたいと思っています。いつか、きっと、、、
inthedark さん
inthedark さんのお見立てでドンピシャリの正解でした。bbgをホスト(親 フロント)にして Host only mode のzImage。bbbをガジェット(子 バックエンド)にして Dual Role mode のzImageにしてバッチリ3回線使えました。これでBBGフロント、BBBバックエンドとしてdouble lines player として使えそうですね。
ネットワークの性能はusb-otgの方がUSB-LAN変換アダプターの倍以上良いので、音もよくなりそうです。
ご教授ありがとうございました。
これがUSB-LAN変換アダプター
# ping 10.0.1.2
PING 10.0.1.2 (10.0.1.2): 56 data bytes
64 bytes from 10.0.1.2: seq=0 ttl=64 time=0.948 ms
64 bytes from 10.0.1.2: seq=1 ttl=64 time=0.816 ms
64 bytes from 10.0.1.2: seq=2 ttl=64 time=0.750 ms
...
11 packets transmitted, 11 packets received, 0% packet loss
round-trip min/avg/max = 0.610/0.720/0.948 ms
これがusb-otg。
# ping 10.0.0.2
PING 10.0.0.2 (10.0.0.2): 56 data bytes
64 bytes from 10.0.0.2: seq=0 ttl=64 time=0.468 ms
64 bytes from 10.0.0.2: seq=1 ttl=64 time=0.284 ms
64 bytes from 10.0.0.2: seq=2 ttl=64 time=0.341 ms
...
11 packets transmitted, 11 packets received, 0% packet loss
round-trip min/avg/max = 0.230/0.312/0.468 ms
kensさん
お久しぶりです。BBG-BBGで自分の環境に合わせて作ることができたということでおめでとうございます。
これをきっかけにご自身の環境に合わせたシステムが自由に構築できるようになるといいですね。
このスレの表題からは話がかけ離れていってますが、私がしゃべりすぎますとみなさんが自分で苦労して
自分のシステムを作るという楽しみを奪う結果になると思いましたので、あえてこのようにしております。
yoさんが本家を追い越して先端を行っておられますので、色々勉強させてもらえる環境が整っています。
これからもめげずに楽しんでください。
yoさん
とりあえずusb0が生えたようなのでよかったです。
digififanさんの方の動きが遅い分、yoさんがすでに最先端をいっておられます。
BBG=BBGのシステムができましたらこっそり感想などお聞かせください。
inthedark
inthedark さん
double lines player モードで音もでました。なかなかいいですね。音は素晴らしい。録音をしたホールの空間の感じがよく出ています。single lineとの一番大きい差です。apuとの比較はしていませんが、僕はこれで十分だなという感想です。とりあえずBBGが不足するので、発注しました。これで、BBB二台、BBG二台とBB4台の持ち主となりました。病膏肓、ここに至れりです(^^;;;。
ところで昨日の書き込みにいくつか誤りがあります(pingが通った大喜び状態で書き込んだもので)。訂正をかね、usb-otgを使った double lines player の作り方を書いておきます。
BBGフロント、BBBバックエンドとしてdouble lines player を構成します。BBG側はeth0(LAN lightmpd.conf [network]192.168.0.20)、eth1(USB-LAN upmpdcli.conf 10.0.0.1)、usb0(usb-otg polipo.conf 10.0.1.1)、BBB側はeth0(LAN 10.0.0.2)、usb0(usb-otg 10.0.1.2) と繋ぎます。
BBGフロント/BBBバックエンドそれぞれのカーネルはBBGフロント(子ガジェット)、BBBバックエンド(親ホスト)となります(昨日の記述は間違え、逆に書いてしまいました)。従って、BBGフロントは、BBBバックエンドからusb-otgケーブルを使って、電源を供給されることになります。BBGフロント/BBGバックエンドという構成も可能と思いますが、未確認です。カーネルのコンフィグですが、基本的にはinthedark さんの解説通りでいいのですが、BBBバックエンドの親ホストのカーネルもUSB Gadget Supportのチェックをしておく必要があります。
もうちょっと丁寧に書くと、BBGフロント/BBBバックエンドのカーネルは基本的に同じ設定であり、一箇所だけ、MUSB Mode Selection (Host only mode)とするとBBBバックエンド用、MUSB Mode Selection (Dual Role mode)とするとBBGフロント用となります。
zImage-botic-103-v02からの変更点を書き出すと
Device Drivers -->
[*] Network device support -->
[*] USB Network Adapters -->
[*] Multi-purpose USB Networking Framework -->
-*- CDC Ethernet support
[*] USB support -->
[*] Inventra Highspeed Dual Role Controller
MUSB Mode Selection -->
(X) Dual Role mode 又は Host only mode
[*] USB Gadget Support -->
USB Gadget Drivers(Ethernet Gadget (with CDC Ethernet support)
(X) Ethernet Gadget (with CDC Ethernet support)
Ethernet Gadget (with CDC Ethernet support)
となります。
「(X) Dual Role mode 又は Host only mode」という部分で必要な方を選択すればよいです。
ここから先の実装はupnp版、adapter版の実装をご覧になれば推察がつくと思います。一応簡単に書いておくと
- ビルドしたカーネルをそれぞれzImage-botic-103-v03-d、zImage-botic-103-v03-hとして
- dはadpter版の、hはupnp版の /boot/ に保存
- /uEnv.txt の kernel_file= で指定
- BBGフロントのmyscript.shに以下の記述を追加し、usb-otg回線をオープン
ifconfig usb0 up
ifconfig usb0 10.0.1.1
ifconfig usb0 netmask $NETMASK
- BBGフロントのmyscript.shに以下の記述のコメントを外す
ifconfig $ETH up
ifconfig $ETH $IPADD
ifconfig $ETH netmask $NETMASK
- BBBフロントのpolipo-adapter.confを設定
proxyAddress = 0.0.0.0
allowedClients = 10.0.1.2
- BBBバックエンドのmyscript.shに以下の記述を追加し、usb-otg回線をオープン
ifconfig usb0 up
ifconfig usb0 10.0.1.2
ifconfig usb0 netmask $NETMASK
(10.0.0.1はlightmpd.confの[network]でオープンされる)
- BBBバックエンドのpolipo.confを設定(以下の行のコメントを外す)
proxyAddress = 127.0.0.1
allowedClients = 127.0.0.1
parentProxy = 10.0.1.1:8123
というところです。最初の難関をクリア出来たら、あとは案外簡単でした。
ところで、ノイズの件、usb-otg回線にしても発生します。inthedark さんのところとは違う結果ですが、不思議。
yoさん
音出しもできたということでよかったですね。しかし、バックエンド(つまりplayer側ですよね)から電源を供給するというのは面白いですね。
私はdigififanさんのapu=bbb(bbg)がお手本ですので電源はフロント側のapuからbbb(bbg)に供給されるわけです。
つまり親から供給されるわけだから、player側を親とすればそちらから子のgw側に供給されるということですかね。
それに、私はapuはもっておりませんのでbrix又はnucでやるわけですが、そのカーネルの構築でUSB Gadget Supportはチェックしておりません。
cdc ethernet supportさえチェックを忘れなければusb0は生えますので。(usb-otgの理屈からしてそうだし、実際私の環境では確認ずみ)
まあ、しかし面白いもんですね。
ノイズがでますか。私のところはきれいさっぱりでません。前回も言いまいしたが、rpi2B(gw)=rpiB+(player,i2sdac)のイーサネット分離でも
24bit,192khz,flacはノイズレスでしたんで。
それにしても、rpiB+に接続していたi2sdacをブリッジ基板に乗せ換えただけですが音が変わります。外部クロックをクリスタルから注入する
方式ですからその影響も大きいと思いますが。最小限の投資でこれだけの音がでるのはほんとありがたい話です。
inthedark
inthedark さん
> しかし、バックエンド(つまりplayer側ですよね)から電源を供給するというのは面白いですね。
BBG(フロント adapter)-BBB(バックエンド player)だとusb-otgの設定で親子が逆転するのは混乱しますね。BBG-BBGであれば逆転させないで繋ぐことが出来るのではないかと思います。
このあたり、otg対応カーネルを公開する時、問題になりそうですね。分かっている人以外は使うことがかなり難しいと思います。
> そのカーネルの構築でUSB Gadget Supportはチェックしておりません。
このあたりはapuでも同じになりそうなので、試してみるかなと思っています。
ノイズの件はBB同士の接続で発生する問題かもしれませんね。これもapuとotg接続してみれば切り分けられそうです。
まあ、いずれにしても不思議なことは多いです。
i2s接続は使うクロックで音は大きく変わりますね。これは値段の高いやつが効果的です。ハンダ付けが得意ならいろいろ試してみることができるのですが、僕は駄目です。残念。
僕はNeutrinoというヨーロッパ製のクロックを使っています(掲示板に情報はあります。3年近く前の書き込みですが、Neutrinoで検索すると出てきます)。
http://www.newclassd.com/index.php?page=24&hv=1" target="_blank">http://www.newclassd.com/index.php?page=24&hv=1
inthedarkさん
BBGでupnpアダプタの構成に慣れてきたところで再びRP3を使ったupnpアダプタに挑戦しました。
今回はlightMPDベースに拘らずRaspbian jessie liteで環境構築することにし、結果うまくいきました。
BBGで環境構築した経験を通して、ある程度動作原理について勉強できたのが良かったのだと思います。
upmpdcliはRaspbian jessie lite上でRaspbian Jessie用パッケージをインストール。
polipoはbuildrootでrpi3に合わせたビルドオプションでビルドしてRaspbianに持っていきました。
ネットワークやupmpdcli, polipoの設定をBBGに合わせ、polipoのメモリサイズはRP3に合わせて2倍にしました。
幸いなことに私が所有するUSB-LANアダプタ:LOGITEC LAN-TXU2Cは差しただけで認識されました。
あとはpolipoを自動起動できるようにsystemctlで登録したり、不要なサービスを止めたり。
この構成で音が出たときとRP3側のpolipoのVIRT/RESが増えていく様を見たときは大変嬉しかったです。
kensさん
なんでもいいので自分で考えて環境を作るというのは楽しいものです。人の作ったものを使わせてもらうのは
楽でいいですが、やはり自分で一から苦労して作るというのは味が違います。
これからも体験したことをご報告いただけると幸いです。
yoさん
yoさんにつられてもう一つbbgを購入してdoublelines playerを構築しました。(もちろん自分で作ったシステム)
意外と簡単でした。私が当初言っていたようにホスト側(player側)のカーネルではUSB Gadget Supportは不要です。
Host only modeでちゃんとusb0が生えます。
24bit,192kHz,flacのでかいファイルもノイズレスで再生します。さすが、i2sですね。
あと、pingもotg回線とeth0回線で試しましたがyoさんのような激しい違いはありませんでした。
私の環境ではむしろeth0回線の方が若干速いです。(usb-lanアダプタをかましてる環境とは違うんでしょうね)
inthedark
inthedark さん
ようこそBBGクラブに。
> 私が当初言っていたようにホスト側(player側)のカーネルではUSB Gadget Supportは不要です。
どうも、これがもう一つのスレッドで話題になっている僕が公開した版の動きがギクシャクしている原因かなという気がしてきました。inthedark さんのシステムではコントロールポイントの動きはスムーズでしょうか。またハイレソファイル/dsdファイルの再生でノイズは発生しませんか ?
> 私の環境ではむしろeth0回線の方が若干速いです。(usb-lanアダプタをかましてる環境とは違うんでしょうね)
僕の環境でもeth0-eth0であれば、それが一番速いです。usb.lan-eth0だと遅くなるのですよね。
外(インタネット)に出る線をusb.lanとする手はあるのですが、nasを使っている場合はそこがボトムネックになるので、同じことですね。dlnaサーバをadapterの中にあるものを使うのであれば(公開版だとminidlnaを使うことになる)、eth0-eth0という繋ぎ方はいい手かもしれません。
yoさん
dsdに関してはi2sdacが対応してませんので確認できません。
が、私の経験則では24bit192kHzflacがノイズレスで再生できる場合、dsd128も同じく
ノイズレスで再生できます。(逆は成り立たないという経験はあります)
polipo回線をotg経由にしようが、eth0経由にしようが、私の環境では24bit192kHzflacは
ノイズレスです。コントロールポイントの動きもスムーズでなんの問題もありません。
brix=bbgのシステムの時には、brixにlan端子が1つしかありませんのでbbgのlan端子との接続は
usb-etherアダプタを使ってました。その時にotg回線とeth1-eth0回線でpingを打ったんで
すが、その時もyoさんの環境のような違いはありませんでした。gw,rendererそれぞれに
どのようなハードを使うかでも違うんでしょうね。
gw=renderer間にusb-lanアダプタをかまさない理由は見た目がいいこととdigififanさん
との話で聞いていた内容によります。私が、rpi2B-rpiB+でupnpアダプタを作ったよという
話をしたときに、usb-lanアダプタはホームネットワーク側に持っていったほうがいいよ
という話をしておられたからです。(過去にusb-lanアダプタで苦労させられたそうです)
私の環境では、ホームネットワーク側にもっていこうが、polipo回線に使おうがなんの
問題もありませんでした。rpiの場合、eth0もusb-lanなんで。ところがbbgはそうじゃない。
以上が、gw=renderer間にusb-lanアダプタを使わない理由です。
linuxcomさんのdsdが再生できるdacを買ってもいいんですが、pcmで満足しているし
コレクションにdsdがほとんどありませんので、もったいない気がしております。
inthedark
inthedark さん
①USB Gadget Supportを無(ブランク)にしてHost-onlyモードのzImageを作成し、playerに試してみました。多少、コントロールポイントの動きはスムーズになったという感じはしますが、ノイズが発生するのは相変わらずですね。
②そこで、adapterとplayerのeth0をlanケーブルで対向接続し、adapterのusb端子にusb.lanアダプタを差して、インタネットに出るように接続と設定を変更しました。状況は変わらずです。
③次に、polipo回線をusb-otgからeth0の対向接続側に、upmpdcli回線をeth0の対向接続側からusb-otgに変更したら、ノイズは魔法のように消えました。
不思議ですね。ただカーネルを変えて、音は良くなったという感じがします。ノイズのない最後の状態での再生音は楽器の実在感がリアルですが、ホールの雰囲気も出ていて素晴らしいです。
確認ですが、inthedark さんのシステムの設定は①~③のどれでしょうか ?
それぞれの繋ぎ方をもう一度図示すると
①
BBG adapter eth0 <--> ==internet
usb.lan(eth1) <--> BBB player eth0 ==upmpdcli
usb-otg dual-role(usb0) <--> BBB player Host-only usb0 ==polipo
②
BBG adapter eth0 <--> BBB player eth0 ==upmpdcli
usb.lan(eth1) <--> ==internet
usb-otg dual-role(usb0) <--> BBB player Host-only usb0 ==polipo
③
BBG adapter eth0 <--> BBB player eth0 ==polipo
usb.lan(eth1) <--> ==internet
usb-otg dual-role(usb0) <--> BBB player Host-only usb0 ==upmpdcli
player側は空いていたBBBを使っています。BBGでも同じことだと思います。
コントロールポイントによってノイズが発生しやすいものと、そうでないものはありますが、コントロールポイントだけが原因というわけではないようです。③の状態ではどのソフトでも発生しなくなりますので。ちなみにDSD再生の安定度ではUpplayが抜群ですね。
僕の場合は手持ちのDSDファイルがSACDで100枚位あるので、64DSDの安定した再生は必須要件です。従ってlinuxcomさんのボードを実験用に使っています。良い音のボードだと思いますが、ファイルなかったら無駄でしょうね。
yoさん
前スレで説明したとおり、②と③を試しました。
どちらでも私の環境では差はありません。ノイズレスです。
不具合は全くありません。
私のotgのためのカーネル設定のポリシーはbrix=bbgのときから何も変わって
おりません。
僕はdlnaサーバーがminimserverなので相性がいいと言われる
luminでコントロールしています。なんの問題もありません。
inthedark
誤解のないようもう一度otgのための私のカーネルオプションを書いておきます。
[upnpgw]
Device Drivers
-->Network device support
-->USB Network Adapters
[*]Multi-purpose USB Networking Framework
[*]Asix AX88xxx Bosed USB 2.0 Ethernet Adapters (私のusb-etherアダプタのドライバ)
-->USB support
[*]Inventra Highspeed Dual Role controller
MUSB Mode Selection (Dual role mode)
[*]USB Gadget Support(これがガジェット側のusb0となる)
USB Gadget Drivers(Ethernet Gadget (with CDC Ethernet support)
Ethernet Gadget (with CDC Ethernet support)
[renderer]
Device Drivers
-->Network device support
-->USB Network Adapters
[*]Multi-purpose USB Networking Framework
[*]CDC Ethernet support(これがホスト側のusb0となる)
-->USB support
[*]Inventra Highspeed Dual Role Controller
MUSB Mode Selection(Host only mode)
inthedark
inthedark さん、yo さん
ようやく時間が取れたので RPi3(adapter)=BBG(player) のdoublelines構成に挑戦してみました。
例によってRPi3はRaspbian jessie liteです。
1回線はsingleline構成時と同様にUSB-LANアダプタをRPi3側に刺してBBGと接続しました。
もう1回線はUSB-OTG接続です。
BBG(player)側のカーネルをガジェット/Dual role modeでビルドしています。
RPi3をHostとし、BBGのmicroUSBと接続してRPi3側からBBGに電源を供給しています。
RPi3とBBGのそれぞれでsingleline構成時の設定からpolipoとusb0のネットワーク設定をdoublelines用に変更しました。
つまりUSB-OTG接続がpolipoデータフローになります。
結果は、うまく動いているようです。
adapterのRPi3はSSHで接続できるのですが、Raspbian jessie liteにtelnetクライアントがインストールできず、BBG側の様子がわかりません。
adapter側のpolipoは期待動作しているようです。
RPi3側からのpingによる回線速度はUSB-LANアダプタとUSB-OTGで殆ど差はありませんでした。
192kHz/24bit flac、DSD128の再生もノイズレスで再生できています。
なぜかDSD256はスロー再生になってしまいました。(singleline構成時は正常に再生されます)
BBG側はyoさんがリリースされているBB用 Boticized lightMPD UPnP版を参考に優先度の設定をしていますが、polipoの優先度設定はコメントアウトしています。
singleline構成時はpolipoの優先度がある程度高いとキャッシュ読み込み中はCPUが100%に張り付いてコントロールポイントがもたつきました。
RPi3側は余計なサービスは止めていますが、優先度設定はデフォルトのままです。
kensさん
動作報告ありがとうございます。kensさんのようにgw,rendererに色々なボードを使えるようになれば
楽しいと思います。digififanさんのイーサネット分離の音出し方法はほんと僕にとっては魅力的です。
asoyajiさんや「昼はがん治療、夜はPC AUDIO」のHajime Imadaさんもapu2台でのlightmpdgwを使った
イーサネット分離をされてますが、jplayに近い音がでるぞと最近話題にされてます。
jplayの日本語サイトでもlightmpdgwのイーサネット分離について触れられてますし、結構有名なんですね。
inthedark
inthedark さん
RPi3にtelnetをインストールできなかったのは、Raspbian jessie liteで色々サービスを止めすぎてインターネットに接続できなくなっていたからでした。
改めてRPi3側の環境を整えてからtelnetをインストールし、BBG側の動作を確認して正常動作していることを確認できました。
kensさん
telnetの件自己解決されたということでよかったです。
DSD256がスロー再生になるなど私の環境では体験できないお話を聞かせていただきありがとうございます。
yoさんもそうですが研究熱心な方がここには集まっておられますので非常に勉強になります。
これからもよろしくお願いいたします。
inthedark
inthedark さん
そうなんですよ、なぜかDSD256はスローになってしまいます。
playerのmpdはDSD256再生の実績のあるdigififanさんのパッチをあてたmpd-0.19.21rt-native-dsdです。
cat /proc/asound/Botic/pcm0p/sub0/hw_params
で確認すると
access: RW_INTERLEAVED
format: DSD_U32_LE
subformat: STD
channels: 2
rate: 352800 (352800/1)
period_size: 2940
buffer_size: 52920
と表示され、DSD256のレートになっているのですがノイズ混じりのスロー再生になってしまいます。
standaloneやsingleline構成時には正常に再生できていました。
加えてwavファイルも正常に再生できません(mpdが再生してくれない)。
DSD256やwavのコレクションは少ないので困らないのですが、まだ色々調査する必要があります。
それにしてもUSB-OTGは便利ですね。
RPi3をpoweroffすれば連動してBBG側の電源も落ちます。
BBGはlightMPDベースでSDカードも起動後はマウントしないようにしてあるので安心して電源を落とせます。
inthedark さん、kensさん、情報ありがとうございます。
「Jpalyは二台(dual)構成じゃないと意味がない」と焚きつけたのは、多分、僕です。「2年位前にWindowsでも音のいいソフトがあるんだなぁ」と感心して、紹介したら、皆さん興味をもたれて、今では、結構、流行っているみたいですね。まあ、僕はWindows(Server)を2台構成にする不自由さに懲りて、またLinuxに遁走。lightMPDを見つけて、これがJplayと同じくらいに音が良いと分かり、飛びついたというわけです。polipoとか、upmpdcliとか、というようなオープンなソフトをベースにupnpの世界を切り開けるというのはWindowsに対する圧倒的な強みですね。という訳なので、botic版のソフトを公開していますが、inthedark さん、kensさんのように自力でやられる方が増えるといいなぁと思っています。是非、情報交換/共有し、世界を広めましょう。
それで、本題に戻して、usb-otg版でコントロールポイントの動きがギクシャクするのは、kensさんご指摘のように、polipoの優先度の問題が大きいようですね。以前、この件は inthedark さんからもご指摘があったと記憶しています。多分、ノイズの件もこれが関連していると思います。時間とれたら、試してみるつもりです。
kensさん
mpd-0.19系でも同じようにwavに難あり、ということで非常にありがたい情報です。wavでコレクションされている方のためにも
なんとかイーサネット分離でまともに再生できるようになるといいですね。ということでyoさんに頑張って頂きましょう。
wavは私の環境での話はlightmpd掲示板でも散々書きましたが、16bit,32bitのwavは何も問題ありません。24bitでも別スレでsugi-さんが
紹介してくれたサイトのものは私のところでも問題なく再生します。foobar2000で24bitwav形式でリッピングしたものはサーというホワイト
ノイズ交じりに小さく音楽が聴こえます。digififanさんが試したという第九は私もダウンロードして試しましたがこれはノイズしか
聴こえません。digififanさん曰く、サーというホワイトノイズ交じりに小さく音楽が聴こえるというのは私の想定していない状態
だとおっしゃってましたね。
dsd256に関しては僕のところでも再生させてみたいですね。linuxcomさんの2万1千円のやつ買おうかな。でもあれdsd入力が5.6Mhzまででしたね。まあ、dsdは僕の場合当分後回しです。pcmのコレクションを聴きなおすので手一杯です。
usb-otgの便利さを分かっていただいてうれしいですね。あの設定がわかるまで苦労したんですよ。誰も教えてくれないですしね。
yoさん
polipo回線をotg経由にすると音がいいとおっしゃってましたので、是非とも実現させてください。私の環境では問題なくできますので。
inthedark
inthedark さん、kensさん
公開したusb-otg版の動きがギクシャクするのとノイズの問題はpolipoの優先度が原因であることを確認しました。お二人の貴重なアドバイスに感謝します。
adapterとplayerのpolipoの優先度の指定を無効(コメントアウト)すると見事に動きが変わりますね。改めてrt優先度の重要性を認識させられました。
ここだと見てない人もいるかと思いますので、改めて障害対応スレッドの方に書き込みするつもりです。
inthedark さん、yoさん
DSD256がスロー再生になる原因がわかりました。
単にplayer側のCPUが100%に張付いて処理が回らなくなっていただけでした。
FLAC 352.8kHzの再生でも同様にplayer側でキャッシュ中は処理が回らなくなったので
もしやと思い調べてみたらビンゴでした。
MPDの優先度設定をyoさんの配布されているBoticized lightMPD UPnP v3.1のmpd.confの設定に合わせることで解消されました。
それにしても優先度設定は難しいですね。
目下私のRP3=BBG環境での課題は皆様と異なり24bit関係なくWAVが全く再生できない状況になっていることです。
libcurlを7.50.1にしてもです。
yoさんのBoticized lightMPD UPnP v3.1をプレーヤーにしても同様でしたのでRP3側に原因があると思っています。
kensさん yoさん
みなさん、どうもしっくりいかないことが続いてますね。私は皆さんの苦労はどこ吹く風みたいな感じで問題が
ありません。私はyoさんと環境を少しでも合わせようと思いまして、BBG=BBGでeth0-eth0(polipo回線)
usb0-usb0(upmpdcli回線)です。最初は電源はplayer側のBBGから5v,2.5AのACアダプタを使い、adapterのBBGには
usb-otg経由で電源を供給してました。(minimserver-luminのコンビです。)
この環境でもluminの動きがギクシャクするとかいうのはなかったですね。私はpcmしか聴いてませんが、
wav,flac,16bit,24bit,32bitで全く問題ありませんでした。
そこで電源を別々に供給されている方もいらっしゃるので私もやってみました。まず、たかじんさんのDC-ARROW
(non-NFBディスクリート電源基板)を組み立て、これをplayer側のBBGに供給、adapter側のBBGにはusb-otgの
間にセルフパワーのusbハブを挟みそこから電源を供給するようにしました。
さらに、upplayをwindows10にインストールしそこからコントロールを試みましたがいたって正常です。
ファイルの種類によって動きが変わるとか全くありません。再現しませんね。
wavの問題ですが、player側のBBGのcurlを7.50.1にしてからは全くノイズレスとなりました。adapter側は
7.54.0です。曲の切り替わりでノイズがでるという方もいらっしゃいますが私のところでは全くなくなり
ました。(player側が7.54.0の時はありましたが)
digififanさんのようにcurlのバージョンを7.49.1にまでさげたり、player、adapter双方のcurlのバージョンを
統一したり色々やってみるしかありませんね。
もちろん以上のことは自分で作っているシステムでのことですので。
352.8kHzもファイルを2lからダウンロードして再生していますが何の問題もありません。
私のところではみなさんの現象が全く再現しないのでお役にたてませんが。ご健闘を!
inthedark さん
丁寧な報告ありがとうございます。
まとめると,minimserver-lumin(iPad)のコンビでwavファイルに限定すれば、ハイレソ再生でも問題なく再生されるということですね。これは僕の環境での確認と一致します。polipoのバージョンの対応も僕の環境と一緒です。
もう一つのスレッドで話題になっているコントロールポイントの初期動作不良はコントロールポイント側の問題が大きいのかもしれません。lumin(iPad)の場合、DSDだけだめというのも不思議です。
僕の推理は「時刻表示は曲の再生で重要性は低いので、コントロールポイントは忙しい時はあまり頑張らないで諦める仕様にになっている。Luminはそのあたり諦めずに頑張る変なソフトである(^^;;;」というのですが、駄目ですかね。
kens さん
> yoさんのBoticized lightMPD UPnP v3.1をプレーヤーにしても同様でしたのでRP3側に原因があると思っています。
lightmpd-upnp-adapter-v3のlibcurlのバージョンは 7.52.1 です。adapterのlibcurlは inthedark さんが書かれているようにバージョンは関係ないかなと思っていたのですが、何かあるのですかね。RPIのカーネルのバージョンは結構古いので、そのあたりが関連するのですかね。
yoさん、inthedark さん
ようやくlightMPDベースのRPi3 upnpgw でシステムを構築することができました。
RPi3(adapter)=BBG(player)の2回線接続でpolipo回線はUSB-OTG接続です。
RPi3からBBGに電力を供給しています。(RPi3がホスト)
ベースとしたのはyoさんがホームページ「RaspberryPIをUPnP化させる」で紹介されているdonuts.shop73さんのr-pi upnp対応システムです。
つまりlightMPDベースのdonuts.shop73さんカスタム版ベースということになりますね。(ややこしい)
理屈はよくわかっていませんが、donuts.shop73さんカスタム版ベースだとカーネル関連ファイル(zImage、bcm2710-rpi-3-b.dtb)やrootイメージファイル(initrd.romfs.gz)を差替えて起動することができました。
BBG用に構築したlightMPDベースのupnpgw環境をRPi3用にビルドオプションを変更して作成したファイルをdonuts.shop73さんカスタム版に持っていたら期待動作した次第です。
buildrootはgit最新版。
カーネルはLinux lightmpd 4.11.10-rt7(Lowlatency)。
polipoのメモリ関連はBBG設定のほぼ2倍の数値に設定。
私がlightMPDベースにこだわったのは電源ブチ切りしたかったからです。
RPi3 upnpgwとBBG player双方がlightMPDベースとなり、安心して電源を落とせるようになりました。
kens さん
lightMPDベースのRPi3 upnpgwシステムの構築成功、おめでとうございます。
僕も同じようなことをやっているわけですが、結構、手間取っています。
難所はカーネルのビルド。BBでカーネルのビルドで手こずったことはないので、r-piって特殊なのですかね。donuts.shop73さんのzImageをパクっちゃうというのはいい手かもしれませんね。
yo さん
半年以上かかりましたが、何とかスレのお題通りのことができました。
yo さん、donuts.shop73 さん、inthedark さんをはじめ、この掲示板での情報がなければここまでたどり着けませんでした。
あらためて情報を寄せていただいた皆様に感謝いたします。ありがとうございました。(勿論digififanさんにも感謝の気持ちでいっぱいです。)
私はRPiやBBBのSD起動の仕組みが理解できていないため、自力でスクラッチでSD起動できるシステムを作ることは困難でした。
そのため、ベースとなるBBB版やRPi版のlightMPDにbuildrootで自前ビルドしたカーネルやrootイメージをコピーする方法で対応していました。
本家RPi版lightMPDではカーネルを自前ビルドのものに差し替えると起動しなくなるので難航していました。
donuts.shop73さんカスタム版にはpolipoとupmpdcliが組み込まれていたのでplayerに接続するための回線さえ構築できればupnpgw化は可能だと思っていました。
それには自前ビルドしたカーネルが必要だったのですが、幸いdonuts.shop73さんカスタム版のカーネルを自前ビルドしたものに差し替えても無事起動してくれました。
今回カーネルはbuildrootを使ってrpi-4.11.yに4.11.9-rt7パッチを当て、USB-OTG(host)と所有しているUSB-LANアダプタを加えてLowlatencyでビルドしました。
カーネルのconfigはdonuts.shop73さんカスタム版から拝借しました。
当初はカーネルの差替えだけで後はdonuts.shop73さんカスタム版のlightmpd.confを弄ってupnpgw化しようと思っていたのですが、カーネルの差替えで問題なく起動できたのに気を良くしてrootイメージも自前ビルドのものに差し替えてみたところ、すんなり動作してしまいました。
APU2が現時点で入手困難な状況だし、RPi3はBBGに比べるとCPUパワーとメモリ、USB端子数にアドバンテージがあるのでupnpgw化するには丁度良いデバイスだと思います。
kensさん
色々試行錯誤されながらやっておられるのを拝見させていただき私も大いに勉強に
なります。このスレでは私は詳細を書きませんが、githubで私がbuildrootで作る
rpi2B用のupnpgwを備忘録として残したいと考えております。(いつになるかわかり
ませんが)
yoさん
yoさんがrpi?と最初は驚きましたが、面白そうなことをやられてますね。
勉強になります。
私はNanoPi-NEOでi2sによる音出しをして遊んでおります。本当にやりたかったのは
i2sdacとNanoPi-NEOに対する分離給電なんですが、やっているうちにあれよあれよと
出来てしまいました。i2sdacはlinuxcomさんのpcm5102です。分離給電にこだわる方の
気持ちがわかる気がします。電源はDC-ARROW、お気に入りです。
i2s化に関する備忘録もgithubにアップしております。
inthedark
inthedark さん
githubの公開楽しみにしております。pc音楽でのUPnP化は間違いなく今後メイジャーになっていくでしょうから、いろいろな情報がオープンにされて、発展していくといいでね。マイクロソフト流の秘密主義は時代遅れだと思います。Windows用の音楽再生のusb2.0対応がようやくはじまるようじゃ、どうしようもないですね。
DC-ARROWは良さそうですね。ケースをどうするかなという問題はあるのだけど、とりあえず、部品、電源といっしょに注文してしまいました。
yo さん
「RaspberryPIをUPnP化させる(3)」でupmpdcliのソースをビルドしてインストールする方法について紹介されていますね。
参考までに私がRaspberryPi3でRaspbian Jessie liteを使ってupnpアダプタを作成したときは、下記ページの手順を参照してupmpdcliパッケージをインストールしました。
http://osa030.hatenablog.com/entry/2016/08/20/163624" target="_blank">http://osa030.hatenablog.com/entry/2016/08/20/163624
kens さん
情報ありがとうございます。
ふつうに
apt-get install upmpdcli
とやっても、そんなパッケージないよというエラーになるので、raspbianでは駄目なのかなと思っていました。開発元ご本家が自前で登録しているのですね。そういえば、開発元のページにそんな記載があったような気がします。まあ面倒なので、configure、make && make installでやっちゃったのですが、ちょっと乱暴だったですかね。
inthedark さん
DC-ARROW、届いたので、作ってみました。
凄いですね。過去いろいろな電源を試してみましたが、これがベストワンです。r-piが真空管アンプを通したような上品な音に変わります。エージングしたら、どれだけ良くなるか楽しみです。
だだ、部品数は少ないですが、制作は結構大変ですね。ワット数の大きい半田鏝を使うのがポイントみたいです。折角ですので、サイトに七転八倒の制作日記をアップするつもりです。
yo さんの情報に基づき、raspbianのカーネルをビルトしUSBネットワークアダプターを認識するようになりました。
これをeth1として、10.0.0.1 netmask 255.255.255.252と設定しました。もう一台のraspiにデジファイのおとさんのlightmpdをupmpモードで入れました。こちらは、apuとつないでシングルラインプレーヤーとして動作することを確認しています。
次に、kens さんの情報に基づき、アダフター側のraspiに upmpdcliのインストールはできたのですが、うまく機能しません。upmpdcli.confで設定したのは次の事項です。
uprclhostport = 10.0.0.1:9090
mpdhost=10.0.0.2
upnpiface=eth0
どこか更に設定する必要があるのでしょうか?アダプターとプレーヤー間のpingは通ります。
ちなみに、systemctl status umpmdcliの結果は、次のとおりです。
● upmpdcli.service - UPnP Renderer front-end to MPD
Loaded: loaded (/lib/systemd/system/upmpdcli.service; enabled)
Active: active (running) since 日 2017-07-23 12:28:34 UTC; 25min ago
Main PID: 1555 (upmpdcli)
CGroup: /system.slice/upmpdcli.service
mq1555 /usr/bin/upmpdcli -c /etc/upmpdcli.conf
7月 23 12:45:04 raspberrypi upmpdcli[1555]: :2:libupnpp/upnpplib.cxx:150::UpnpInit :-205: UPNP_E_OUTOF_SOCKET
7月 23 12:45:04 raspberrypi upmpdcli[1555]: :3:libupnpp/upnpplib.cxx:291::LibUPnP::~LibUPnP: UpnpFinish :-116: UPNP_E_FINISH
7月 23 12:47:04 raspberrypi upmpdcli[1555]: :2:libupnpp/upnpplib.cxx:150::UpnpInit :-205: UPNP_E_OUTOF_SOCKET
7月 23 12:47:04 raspberrypi upmpdcli[1555]: :3:libupnpp/upnpplib.cxx:291::LibUPnP::~LibUPnP: UpnpFinish :-116: UPNP_E_FINISH
7月 23 12:49:04 raspberrypi upmpdcli[1555]: :2:libupnpp/upnpplib.cxx:150::UpnpInit :-205: UPNP_E_OUTOF_SOCKET
7月 23 12:49:04 raspberrypi upmpdcli[1555]: :3:libupnpp/upnpplib.cxx:291::LibUPnP::~LibUPnP: UpnpFinish :-116: UPNP_E_FINISH
7月 23 12:51:04 raspberrypi upmpdcli[1555]: :2:libupnpp/upnpplib.cxx:150::UpnpInit :-205: UPNP_E_OUTOF_SOCKET
7月 23 12:51:04 raspberrypi upmpdcli[1555]: :3:libupnpp/upnpplib.cxx:291::LibUPnP::~LibUPnP: UpnpFinish :-116: UPNP_E_FINISH
7月 23 12:53:04 raspberrypi upmpdcli[1555]: :2:libupnpp/upnpplib.cxx:150::UpnpInit :-205: UPNP_E_OUTOF_SOCKET
7月 23 12:53:04 raspberrypi upmpdcli[1555]: :3:libupnpp/upnpplib.cxx:291::LibUPnP::~LibUPnP: UpnpFinish :-116: UPNP_E_FINISH
root@raspberrypi