2006年06月26日

mt-daapd&mDNS

iTunesで音楽ファイルを共有するために、LINUXではmt-daapdというサービスがあるのでこれをセットアップすることにする。

mt-daapdは前提としてmDNSを使用しているのだけど、これはFC5ではavahiデーモンとして標準のモジュールとなっている
もともとはAppleがIETFで提唱したZeroconfig NetworkingとしてRendezvousというものがあり、オープンソース化されて、今は名前が変わってBonjourとなっているらしい。

ということで、ちゃんと他のPCからファイル共有ができるようになりました。

iTunes.JPG

ということで、mt-daapdをインストール。

公式サイトから、0.2.4のソースを入手。FC4まではバイナリのパッケージがあったけど、FC5はまだないようだ。

日本語のファイル名に対応するパッチを作っている人がいるので、これを入手。
http://ouchi.nahi.to/~kaidempa/mt-daapd/
http://www.kzsoft.to/~kazu/mt-daapd/←今回はこっちを利用
感謝・感謝

libid3tagを入手。
すこし調べて、以下のものをゲット。
ftp://ftp.mars.org/pub/mpeg/libid3tag-0.15.1b.tar.gz

さて、いよいよ、インストール開始。

[mt-daapdのインストール]

入手したソースを/usr/local/src/mt-daapd-0.2.4/に展開
ここにパッチを置いて、日本語パッチをあてる。

# patch src/db-gdbm.c mt-daapd-0.2.4-cp932.patch
db-gdm.cのほかmp3-scanner.c、parser.cにもパッチを適用。

./configure
make clean
make all
make install


[libid3tagのインストール]
インストールは簡単。

./configure
make clean
make all
make install


調べると、/usr/local/libにインストールされたようだ。

# ls -la /usr/local/lib
:
-rw-r--r-- 1 root root 233682 6月 25 21:16 libid3tag.a
-rwxr-xr-x 1 root root 822 6月 25 21:16 libid3tag.la
lrwxrwxrwx 1 root root 18 6月 25 21:16 libid3tag.so -> libid3tag.so.0.3.0
lrwxrwxrwx 1 root root 18 6月 25 21:16 libid3tag.so.0 -> libid3tag.so.0.3.0
-rwxr-xr-x 1 root root 178627 6月 25 21:16 libid3tag.so.0.3.0



ライブラリの位置として指定されていないので、このディレクトリを追加する。

# vi /etc/ld.so.conf
/usr/local/lib ←追加

# ldconfig


[mt-daapdの起動の準備]
confファイルを用意。

# cp contrib/mt-daapd.conf /etc/


confファイルを書き換え。

# vi /etc/mt-daapd.conf
web_root /usr/local/share/mt-daapd/admin-root
admin_pw xxxxxxxx
mp3_dir /var/data/Archives※ここにTABが入っているのを消去
servername juno
logfile /var/log/mt-daapd.log
rescan_interval 86400←1日に1回とした
process_m3u 0


さて、サービス化するための起動ファイルが見当たらない。。。
前にパッケージで入手したものを利用してコピー。
ちなみにこんな感じです。

#cat /etc/init.d/mt-daapd
#!/bin/bash
#
# chkconfig: 2345 85 15
# description: mt-daapd is a multi-threaded DAAP server for iTunes
# processname: mt-daapd
# pidfile: /var/run/mt-daapd
#

# source function library
. /etc/init.d/functions
[ -e /etc/mt-daapd.conf ]

RETVAL=0

start() {
echo -n $"Starting DAAP server: "
daemon /usr/local/sbin/mt-daapd
# daemon mt-daapd
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/mt-daapd
}

stop() {
echo -n $"Shutting down DAAP server: "
# This is broken.
# killall -INT /usr/local/sbin/mt-daapd
killproc mt-daapd
RETVAL=$?

echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/mt-daapd
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
RETVAL=$?
;;
status)
status mt-daapd
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac

exit $RETVAL


※すこし具合が悪かったところがあるので、いじってます。

さて、こんな感じで動いた感じ。

[iptables]
最後にファイアウォールの設定。

##mt-daapd
-A RH-Firewall-1-INPUT -p tcp --dport 3689 -s x.x.x.x/xx -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT


DAAPとmDNSを通してます。

これでちゃんと他のPCからファイル共有ができるようになりました。
GOOD!

インストールがすべて終わって立ち上げたあとに、パケットをEtherealで見てみた(ちゃんとデコードされます)。

mDNSのほうはUDP、ポート番号5353を使用。アドレスは送信元は自分のIPアドレス、あて先は、224.0.0.251というマルチキャストアドレス。
自分のIPアドレス、ホスト名をStandard Query ResponceとしてAレコードやPTRをアドバタイズしている。
MDNS.JPG

ちなみにDAAPはユニキャストのTCP、ポート番号3689の中をhttpを使って、ファイルのリストや音楽ファイル自身を転送しているようだ。
DAAP.JPG

ふーん、こんなことしているんだな。

参考:
  http://journal.mycom.co.jp/cgi-bin/print?id=23685
  http://kazz7.air-nifty.com/tekito/2005/01/itunes_1.html
 http://jo1upk.blogdns.net/linux/index.php?%E7%8E%84%E7%AE%B1%2FiTunes(DAAP)%E3%82%B5%E3%83%BC%E3%83%90
posted by juno at 01:05| Comment(2) | TrackBack(2) | FC5/Server | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
はじめましてyuuiuと申します。
DJをやってます。

お書きになっている記事が非常に難しくて、
僕の知識だと理解できないようですw

今度自分の楽曲ファイルをサーバー上で管理しようと思っているのですが、ファイルの管理を
i tuneでできたりするのでしょうか。

なんか近いことが書いてあるような気がしたので、コメントさせていただきました。

よろしければお返事ください。
Posted by yuuiu at 2007年06月22日 20:54
こんにちは、juujuさん。

ファイルの管理をiTunesでするというよりは、iTunesで管理しているファイルを別のPCに置いておくことができる、という感じのソフトです。

DJさんなら、おそらくTraktorなんかのDJソフトを使用されると思うのだけど、私がTraktor2.6の頃にやってみたときには、iTunesのプレイリストのインポートくらいしかできませんでした(←しかもこれもうまくいった記憶がありません)。

今はちゃんとできるかもしれませんが、Windowsのフォルダでの管理くらいしかちゃんとはできない気がしますね。
Posted by juno at 2007年06月23日 03:05
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/19856303

この記事へのトラックバック

mt-daapdを入れてみた
Excerpt: 自宅サーバにmt-daapdサーバを導入してみました。このmt-daapdというのは、iTuneに対してストリーム配信ができるサーバです。比較的いろいろなところに導入例が書かれていたので、それを参照し...
Weblog: LostMemories
Tracked: 2006-10-17 14:26

iTunesサーバーを作る〜その2
Excerpt: ディレクトリとか、そこら辺はテキトーに読み替えてください。$cd /usr/local/src #ここはソースファイルのあるディレクトリ$tar zxvf mt-daapd-0....
Weblog: にゃーさん
Tracked: 2008-04-14 00:00