Vine Mac   - Vine Linux PPC on iBook で始めるリナックス -


■ Mt-Daapd で iTunes サーバー ■


iPod の普及 に伴い、オーディオプレイヤーの iTunes もかなり有名になりました。
この iTunes の音楽共有機能を Linux 上で再現する、ということに挑戦してみます。

iTunes の音楽共有には、DAAP という特殊なプロトコル(通信形式)が用いられていて、
iTunes はLAN 内の DAAP サーバーを自動的に検索して、プレイリストに加える様になっています。
iTunes と互換性のある DAAP サーバーが動作していれば、それが何によるものであれ、
接続する iTunes からは、ただの共有プレイリストに見えるわけです。

以下は、Linux 上で動作する DAAP サーバー、mt-daapd を動かすことで、
Linux 上にある音楽ファイルを、クライアント側の iTunes で再生する方法です。

使用環境:vine linux ppc 3.1, howl-1.0.0, libid3tag-0.15.1b-1vl1, libid3tag-devel-0.15.1b-1vl1
       mt-daapd-0.2.3, gdbm-1.8.0-20vl1, gdbm-devel-1.8.0-20vl1, 02/09/2006


● mt-daapd のコンパイルに必要なもの

mt-daapd は、apt-get では手に入らないため、
ソースをダウンロードしてきて自力でコンパイルする必要があります。
mt-daapd のコンパイルにあたって、以下のパッケージが別に必要になります。

howl
Zeroconf Network (ゼロコンフネットワーク)と呼ばれるネットワークを作るプログラムです。
今回は howl-1.0.0 を使用しました。

libid3tag
ID3タグを利用するためのライブラリです。

gdbm
ハッシュなどを用いたデータベースを扱うためのライブラリです。



● 下準備 - Howl のインストール

Howl はソースコードしか公開されていないため、自力でコンパイルする必要があります。

howl の公式サイトからリンクをたどり、howl-1.0.0.tar.gz をダウンロードします。
Web 上のファイルを Linux 内へダウンロードするには、コマンド " wget [URL] " を使います。
(wget が入っていない場合は、apt-get でインストールしておいてください)

$ wget http://www.porchdogsoft.com/download/howl-1.0.0.tar.gz
--20:55:06-- http://www.porchdogsoft.com/download/howl-1.0.0.tar.gz
=> `howl-1.0.0.tar.gz'
   ・
   ・
   ・
20:55:09 (292.85 KB/s) - `howl-1.0.0.tar.gz' を保存しました [542782/542782]
$

クライアント側でダウンロードして、Samba や FTP で転送するのも有りでしょうか。

ダウンロードしたファイルを展開(解凍)します。
tar ファイルを展開するには、コマンド " tar " にオプション " -xf " を付けて実行します。
今回は gz 形式を解凍するための " -z "、展開経過を表示する " -v " も加えています。

$ tar -xvzf howl-1.0.0.tar.gz
howl-1.0.0/
howl-1.0.0/README
howl-1.0.0/AUTHORS
   ・
   ・
   ・
$


展開されたディレクトリへ移動します。

$ cd howl-1.0.0


コンパイルのための情報を集めるため、configure スクリプトを動かします。

$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
   ・
   ・
   ・
config.status: creating howl.pc
config.status: creating include/howl_config.h
config.status: executing depfiles commands
$

スクリプトが自動で情報収集し、その環境にあった Makefile を作ってくれます。
必要なライブラリが無かったりすると、ここでエラーがでます。
とりあえず、私の Vine Linux 3.1 PPC 環境ではすんなり通りました。

無事 configure が通ったら、"make" と打って、
configure スクリプトで作られた Makefile に従って、コンパイルを開始させます。

$ make
Making all in include
make[1]: ディレクトリ `/home/hoge/doing/howl-1.0.0/include' に入ります
make all-recursive
   ・
   ・
   ・
$

しばらくかかります。

続いて、コンパイルが完了したバイナリファイルを、
システムが認識できる Path 位置に置くため、"make install" と打ちます。
システムに大きく干渉するため、管理者権限が必要です。

# make install
Making all in include
make[1]: ディレクトリ `/home/hoge/doing/howl-1.0.0/include' に入ります
make all-recursive
   ・
   ・
   ・
#


これで、howl がシステムに組み込まれました。



● 下準備 - libid3tag と gdbm のインストール

この二つは apt 経由で手にはいるため、楽にインストールできます。
ただし、mt-daap の configure スクリプトがヘッダファイルを参照するため、
devel ファイルも併せてインストールしてください。

# apt-get install libid3tag
   ・
   ・
   ・

# apt-get install libid3tag-devel
   ・
   ・
   ・
# apt-get install gdbm
   ・
   ・
   ・
# apt-get install gdbm-devel
   ・
   ・
   ・
#

apt が自動でインストールしてくれます。



● mt-daapd のインストール

下準備が無事済めば、いよいよ mt-daapd のインストールに移ります。

mt-daapd の公式サイトからリンクをたどり、SourceForge よりソースファイルをダウンロードします。
今回は、バージョン 0.2.3 を使いました。

$ wget http://keihanna.dl.sourceforge.net/sourceforge/mt-daapd/mt-daapd-0.2.3.tar.gz
--21:29:58-- http://keihanna.dl.sourceforge.net/sourceforge/mt-daapd/mt-daapd-0.2.3.tar.gz
=> `mt-daapd-0.2.3.tar.gz'
   ・
   ・
   ・
21:29:59 (683.65 KB/s) - `mt-daapd-0.2.3.tar.gz' を保存しました [406035/406035]
$


展開して中に入ります。

$ tar -xvzf mt-daapd-0.2.3.tar.gz
mt-daapd-0.2.3/
mt-daapd-0.2.3/Makefile.in
mt-daapd-0.2.3/README
   ・
   ・
   ・
$
cd mt-daapd-0.2.3


configure スクリプトを動かします。

$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking whether make sets $(MAKE)... yes
   ・
   ・
   ・
$

下準備が滞りなく済んでいれば、エラー無く通るはずです。
何かしらのエラーがでた場合は、エラー原因のパッケージ名をメモして確認してみてください。

無事 configure が通れば、続いて "make", "make install" します。

$ make
make all-recursive
make[1]: ディレクトリ `/home/hoge/doing/mt-daapd-0.2.3' に入ります
Making all in src
   ・
   ・
   ・
$
su
Passwd:
(rootになる)
#
make install
   ・
   ・
   ・
#


これで mt-daapd がシステムに組み込まれました。
具体的には、/usr/local/sbin/ 以下に mt-daapd ファイルが追加されています。

手動インストールでは、コンパイル後、プログラムに合わせて若干の操作が必要な場合があります。

キャッシュの保存場所を確保するため、以下のように打ってください。

# mkdir /var/cahce/mt-daapd
# touch /var/cache/mt-daapd/songs.gdb


続いて、mt-daapd-0.2.3 ディレクトリ内の contrib/ 以下にある
サンプル用の設定ファイルと起動スクリプトを、システム上の所定の場所へとコピーします。
mt-daapd-0.2.3 ディレクトリ内で、

# cp contrib/mt-daapd.conf /etc/
# cp contrib/mt-daapdd /etc/init.d/

と打ってください。

以上で、mt-daapd のインストールは完了です。



● 設定ファイルを環境に合わせて書きかえる

同封されていた設定ファイルはただのサンプルですので、環境に合わせた書き換えが必要です。

まず、管理者権限で、/etc/init.d/ 以下にコピーした起動スクリプトを開きます。

# vi /etc/init.d/mt-daapd


start 関数内の "daemon" に続けて、mt-daapd の位置を path 名で指定します。

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

":wq" で上書きして vi を抜けます。


次に /etc/ 以下にコピーした mt-daapd.conf を開きます。

# vi /etc/mt-daapd.conf


説明文に従って web_root を書きかえます。
configure の時に "--prefix=/usr" オプションを付けておくと、この変更は不要になります。

web_root /usr/local/share/mt-daapd/admin-root


mp3_dir で 共有したい MP3 ファイルの置き場所を path 名で指定します。
Samba で共有できる範囲内に MP3 用フォルダを作って、それを指定しておくと便利でしょうか。

mp3_dir /home/hoge/files/mp3


servername で、iTunes 上に表示されるサーバー名を指定できます。

servername vinelinux


エラーがでたときの原因究明に便利なので、ログファイルを取るようにします。
行先頭の "#" を削除してコメント化を解除します。

logfile /var/log/mt-daapd.log


rescan_interval で、共有ディレクトリ内にある音楽ファイルの再チェック間隔を指定できます。
300秒(50分)毎に更新されるように設定してみました。

rescan_interval 300


以上で設定完了です。
":wq" で上書き保存して vi を抜けます。



● mt-daapd の起動と動作確認

設定が完了したら、いよいよ DAAP サーバーを立ち上げます。
/etc/init.d/ 以下に置いた起動スクリプトに "start" を与えて動作させます。

# /etc/init.d/mt-daapd start
Starting DAAP server:                       [ OK ]
#


正常に動けば、iTunes 上に設定した名前でプレイリストが追加されているはずです。

何も追加されていない場合は、iTunes で、[編集] - [設定] - [共有] の、
「共有されている音楽を検索する」 にチェックが入っているか確認してください。




以下のように、servername で指定した名前のプレイリストが表示されていれば成功です。




DAAP サーバーが立ち上がれば、LAN 内のすべてのパソコン上の iTunes で、
共有されている曲を聴くことが出来ます。
また、共有ディレクトリ内に m3u 形式のプレイリストを置くことで、
曲ファイルに加えてプレイリストも共有化出来たり、
パスワードを設定することで、クライアントの接続に制限をかけたりすることも可能です。

色々と活用してみてください。