玄箱 による iTunes Music Box (DAAP サーバ) その後
玄箱で iTunes Music Box (DAAP サーバ) を構築するための情報を求めて来られる方が結構おられます。なんか Google でえらい上位に入ってるし。その割にまともな情報が書かれていないのは非常に忍びないので、分かっている範囲の情報を一応書こうかなと思います。
ちなみに構築方法は他サイトの方で既にキチンと記載されていますので、ここでは記載せずポインタにて失礼したいと思います。どっちかというと問題をば。あげるだけ。解決してません。やっぱり忍びない。
● Linux における iTunes 音楽共有の実現
iTunes の音楽ファイル共有は Rendezvous という Zero Configuration Networking (Zeroconf) の実装 + DAAP (Digital Audio Access Protocol)という独自ファイル共有規格の組合せで実現されています。iTunes 自身この機能を持ち合わせていて、簡単な設定を行うだけで共有させることができます。
Linux で 上記を実現するならば、以下のものが有名どころ。
mDNSResponder + daapd
Howl + mt-daapd
これら導入は以下サイトが参考になります。
mDNSResponder + daapd
mizzy.org
StandAloneComplex
Howl + mt-daapd
Linux UPK
玄箱 Debianサーバ構築メモ
● 玄箱 DAAP サーバの問題
iTunes クライアント側で玄箱 DAAP サーバが見えたり見えなかったりします。
(1) iTunes を起動した状態で DAAP サーバを立ち上げる → サーバが表示される
(2) DAAP サーバを立ち上げた状態で iTunes を起動する → サーバが表示されない
これについてパケットキャプチャして通信を覗いてみると、(1) では DAAP サーバ起動時サーバからの Multicast により iTunes クライアントへサーバの存在を伝えることができますが、(2) では iTunes クライアントからのサーバ有無確認の Multicast に対し本来ならば玄箱 DAAP サーバが返答を行うはずなのですがこれを行っていません。したがってサーバが見えない(存在しない)状態となる模様です。
これは daapd, mt-daapd ともに発生します。どうやら玄箱自身が正しく Multicast 通信を行えない模様で、その他の Multicast を使用するソフトウェアで似た症状が発生するとの報告が 2ch スレッドにて行われていました。
つまり (1) のステップを踏まない限り、DAAP サーバの恩恵は受けれないということになります。iTunes を起動するたびに DAAP サーバを立ち上げなおし。ちっとも嬉しくありません。
なお、玄箱ではなく通常の PC で稼動している Linux や同様の NAS 製品 LANDISK ではこのような症状は報告されていません。
● 玄箱 iTunes Music Box としてこの先生きのこるには
明らかに問題なので、これを修正するのが一番でしょう。恐らくカーネルまわりの問題と思われますので手を加えることができれば修正できるかもしれません。私は力を持ち合わせおらず不可能です…どこをみればよいことやら。
上記以外では、正直なところ iTunes Music Box としてどのように利用するかで回避策が変わりそうな気がします。
私はアレゲな想い以外で実際使用するならば、複数 PC のどこでもすべて共通の楽曲が再生できる方法として DAAP サーバを立ち上げようとしました。そのすべてで iTunes を起動させることができ、かつすべてがネットワーク越しに玄箱へアクセスできるわけだから、すべての iTunes の iTunes Music フォルダ を samba で公開されている玄箱に指定すればいいやん、ということが分かりました。実際複数 PC で同時に共通のファイルにアクセスしてもいまのところ問題は発生していません。
正直、こうしたほうがすべての PC で曲情報の操作もできるし iPod への転送もできるだろうし。iPod 持ってませんが。
どーしても DAAP サーバとして動かしたいんだ!というのであれば、クライアント側 で iTunes を立ち上げる際に1枚スクリプトをかまして DAAP サーバを再起動するような仕掛けを組み込めば、手動で再起動する煩わしさを回避できるかもしれません。手っ取り早そうなのは、玄箱側で CGI を構えてクライアント側から GET リクエストを投げる。GET を受け取った CGI がコマンド叩いて DAAP サーバを再起動する、という感じ。もちろんこれをするとすでに共有してた人は一度切断されます。
もしくは LANDISK を買え、と。
なんか凄いガッカリな結論なので、Multicast 処理の修正を行って頂けるきのこる先生の光臨に期待します。
(2005年1月16日 22:30 追記)
このエントリのコメントを見ていただけると分かるとおり、ifconfig コマンドで NIC にてマルチキャストパケットのすべてを受信するようオプションをつけるととりあえずは daap デーモンまでパケットが到達し正しく処理できるようになる模様です。
本来自分が受信すべきではないマルチキャストパケットまで処理するモードですので、取り扱いにはご注意を。私の環境は完全クローズなネットワークなのでとりあえずはこれで回避しようと思います。
トラックバック(0)
このブログ記事を参照しているブログ一覧: 玄箱 による iTunes Music Box (DAAP サーバ) その後
このブログ記事に対するトラックバックURL: http://hatotech.org/mt-admin/mt-tb.cgi/391

それは知らなかったです。
専用設定ユーティリティとの通信でマルチキャストでも使っているのかな?
それともすっかりdebian化してもダメなのでしょうか?
# 私的には、素直にLANDISKを買えというのはアリガタイことですが(^^;。
凄い知識が乏しいんでアレなんですが、
(1) の場合で本体からの multicast パケットが出ているというのを見る限り、カーネルをコンパイルする際の設定云々による問題というわけではないと思っているのです。multicast そのもの一切出ないのであればカーネルコンパイルしなおせばクリアとかしそうなのですが、そうではないし…
素の玄箱でも同様に Multicast に対しての応答が無反応かどうかはちょっと不明です。
んで、我が家には新たに Linkplayer というオモチャがやってきて、ますます NAS に DAAP を乗せる必要性がなくなった状態であります。玄箱は DAAP サーバ改め Linkplayer Media サーバに変化しました。
もし DAAP サーバを利用する専用プレイヤー、要はプレイヤーに iTunes が載っているようなものがメジャーになったとしても、その頃には NAS も複数台になってるでしょうし、機器そのものも進化してるでしょ、きっと(笑)
debian化してますが、ダメです。
Multicastはドライバ、もしくはLANアダプタが対応しないような気がします。
ウチの玄箱は100Mbpsですが、Giga版ではどうでしょうか?
この問題と、プレイリストの更新にmt-daapdの再起動が必要なことの2点で、玄箱のiTunesサーバ化はイマイチですね。
玄箱 HG で mt-daapd を導入して、今のところ問題は起きていないという報告が。
http://kazz7.air-nifty.com/tekito/2005/01/itunes_1.html
ええもん、DAAP サーバ立てれなくても、プンプン!
というのはまあアレですが、通常の玄箱にて再度一からやり直してみたいという気持ち反面、データのバックアップおよび再構築の時間が取れず仕舞という状態です。
/sbin/ifconfig eth0 promisc
ってすると表示されたりしませんか?
mt-daapd-0.2.0 なんですが・・・これでうまく行ってるみたいです。
むう、確かに表示されるようにはなりますが、根本解決になってなーい(笑)
top による CPU 使用率を見る限りでは変化はないですが、もしこの方法で解決させるのならば、promisc ではなく allmulti でいいかもしれません。multicast パケット処理の話ですし、実際こちらのモードでも正しく表示できるようになりました。
しかしこれは気付きませんでした。情報ありがとうございました。
ifconfig eth0 allmulti
これで上手くいきました。
ありがとうございました。
ifconfig のオプション知りませんでした。
http://www.atmarkit.co.jp/fnetwork/netcom/ifconfig/ifconfig.html
ウチもローカルサーバですが、外向けにする場合、USB NICを追加するのがよいかと。
プレイリスト自動更新はmt-daapd 0.2.1 PR3にて対応とのこと。
これでバラ色かもしれません。
zcipを試されてますか?
http://rpmfind.net//linux/RPM/cooker/10.1/ppc/media/main/zcip-4-3mdk.ppc.html
我が家の玄箱は、mt-daapを起動直後はiTuneから見えているのですが、しばらくすると消えてしまうという症状でした。
zcipを起動しておけば問題ないようです。
あやしいのう。あやしいテクなしでなんとかならんもんなのかいな。
何はともあれ別アプローチでの情報ありがとうございます。
mt-daapd 0.2.1 が今月リリースされて、fix 版 0.2.1.1 が何時の間にか出てたみたいですが、うちの玄箱はすっかり MediaWiz 系プレイヤーのオモチャと化し daap 関連はすっかり使われなくなってしまったのであります。つまり Ver.UP してまへん。
MediaWiz 系のお話を近いうちに出来るといいな。
mt-daapd 0.2.1 を LANDISK でコンパイルしてみました。
期待のプレイリストの更新もうまくいっているようです。