玄箱 による 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

コメント(10)

kinneko :

それは知らなかったです。
専用設定ユーティリティとの通信でマルチキャストでも使っているのかな?
それともすっかりdebian化してもダメなのでしょうか?
# 私的には、素直にLANDISKを買えというのはアリガタイことですが(^^;。

くまっち :

凄い知識が乏しいんでアレなんですが、
(1) の場合で本体からの multicast パケットが出ているというのを見る限り、カーネルをコンパイルする際の設定云々による問題というわけではないと思っているのです。multicast そのもの一切出ないのであればカーネルコンパイルしなおせばクリアとかしそうなのですが、そうではないし…

素の玄箱でも同様に Multicast に対しての応答が無反応かどうかはちょっと不明です。

んで、我が家には新たに Linkplayer というオモチャがやってきて、ますます NAS に DAAP を乗せる必要性がなくなった状態であります。玄箱は DAAP サーバ改め Linkplayer Media サーバに変化しました。
もし DAAP サーバを利用する専用プレイヤー、要はプレイヤーに iTunes が載っているようなものがメジャーになったとしても、その頃には NAS も複数台になってるでしょうし、機器そのものも進化してるでしょ、きっと(笑)

den :

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 パケット処理の話ですし、実際こちらのモードでも正しく表示できるようになりました。

しかしこれは気付きませんでした。情報ありがとうございました。

den :

ifconfig eth0 allmulti

これで上手くいきました。
ありがとうございました。
ifconfig のオプション知りませんでした。
http://www.atmarkit.co.jp/fnetwork/netcom/ifconfig/ifconfig.html

ウチもローカルサーバですが、外向けにする場合、USB NICを追加するのがよいかと。

プレイリスト自動更新はmt-daapd 0.2.1 PR3にて対応とのこと。
これでバラ色かもしれません。

grampy :

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 系のお話を近いうちに出来るといいな。

kinneko :

mt-daapd 0.2.1 を LANDISK でコンパイルしてみました。
期待のプレイリストの更新もうまくいっているようです。

コメントする

このブログ記事について

このページは、が2004年12月10日 18:22に書いたブログ記事です。

ひとつ前のブログ記事は「ck - terminal emulator」です。

次のブログ記事は「第三回 PHP 関西セミナー無事終了」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.01