mt-daapdは前提としてmDNSを使用しているのだけど、これはFC5ではavahiデーモンとして標準のモジュールとなっている
もともとはAppleがIETFで提唱したZeroconfig NetworkingとしてRendezvousというものがあり、オープンソース化されて、今は名前が変わってBonjourとなっているらしい。
ということで、ちゃんと他のPCからファイル共有ができるようになりました。
ということで、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をアドバタイズしている。
ちなみにDAAPはユニキャストのTCP、ポート番号3689の中をhttpを使って、ファイルのリストや音楽ファイル自身を転送しているようだ。
ふーん、こんなことしているんだな。
参考:
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


DJをやってます。
お書きになっている記事が非常に難しくて、
僕の知識だと理解できないようですw
今度自分の楽曲ファイルをサーバー上で管理しようと思っているのですが、ファイルの管理を
i tuneでできたりするのでしょうか。
なんか近いことが書いてあるような気がしたので、コメントさせていただきました。
よろしければお返事ください。
ファイルの管理をiTunesでするというよりは、iTunesで管理しているファイルを別のPCに置いておくことができる、という感じのソフトです。
DJさんなら、おそらくTraktorなんかのDJソフトを使用されると思うのだけど、私がTraktor2.6の頃にやってみたときには、iTunesのプレイリストのインポートくらいしかできませんでした(←しかもこれもうまくいった記憶がありません)。
今はちゃんとできるかもしれませんが、Windowsのフォルダでの管理くらいしかちゃんとはできない気がしますね。