Ubuntu 8.10で、AmarokからAirMac Expressに音楽を飛ばす
(2010/10/22追記:Ubuntu 10.10向けに修正した版を書きました→AirMac Express経由で音楽を聞く(Ubuntu 10.10対応版) - にせねこnotes)
RAOP_PLAYのインストールとAmarokの設定をして、ついにAirMac Expressに接続したスピーカーから曲が聞けるようになりました。
Ubuntu 8.04ではカーネルに問題があったらしく上手く動かなかったですが、8.10にしたらすんなりと行ってしまいました。
以下やり方のようなもの
必要なものをインストール
- build-essential
- libssl-dev
- libfltk1.1
- libfltk1.1-dev
- fluid
- libglib2.0-dev
- libsamplerate0-dev
- libid3tag0
- libid3tag0-dev
- cvs
これらをSynapticなどでインストールする。
ソースコードのダウンロード
cvs -d:pserver:anonymous@raop-play.cvs.sourceforge.net:/cvsroot/raop-play login
パスワードを聞かれたら何も入力せずEnter
cvs -z3 -d:pserver:anonymous@raop-play.cvs.sourceforge.net:/cvsroot/raop-play co -P raop_play
コンパイル、インストール
- RAOP_PLAY
cd raop_play ./configure make sudo make install
- ALSAドライバ
cd drivers/ make sudo make install
シェルスクリプトを用意する
3つのスクリプトを適当なフォルダに作成する。
- load_airport_express_driver
#!/bin/sh module=alsa_raoppcm devnode=/tmp/pcmout if ! grep "^$module" /proc/modules > /dev/null; then /sbin/modprobe alsa_raoppcm fi major=`sed -n -r "s/(^[0-9]+) pcmout/\\1/p" /proc/devices` if [ -c $devnode ]; then rm -f $devnode; fi mknod $devnode c $major 0
- start_airport_express
#!/bin/bash sudo load_airport_express_driver raop_play airport /tmp/pcmout &
- stop_airport_express
#!/bin/bash killall -9 raop_play
これらをパスの通ったフォルダ(/usr/bin)にコピーし、実行属性を与える
sudo cp load_airport_express_driver start_airport_express stop_airport_express /usr/bin sudo chmod +x /usr/bin/load_airport_express_driver /usr/bin/start_airport_express /usr/bin/stop_airport_express
/etc/hostsを編集する
sudo gedit /etc/hosts
で、
AirMacExpressのIPアドレス airport
AirMacExpressのIPと、airportというホスト名を対応させる一行を書き加える。
スクリプトを実行
start_airport_express
上手く接続できたら↓のようなメッセージがでます
DBG: CSeq: 1 DBG: Apple-Response: aNfUQA36LuFwRrWP ... DBG: Audio-Jack-Status: connected; type=analog DBG: CSeq: 2 DBG: Session: 809F8840 DBG: Transport: RTP/AVP/TCP;unicast;interleaved=0-1;mode=record;server_port=6000 DBG: Audio-Jack-Status: connected; type=analog DBG: CSeq: 3 DBG: Audio-Jack-Status: connected; type=analog DBG: CSeq: 4 DBG: Audio-Jack-Status: connected; type=analog connected DBG: audio data type: 8 INFO: read_line:disconnected on the other end DBG: stop reading from console
ここで
cat /proc/asound/cards
すると、
0 [ICH6 ]: ICH4 - Intel ICH6 Intel ICH6 with STAC9750,51 at irq 17 1 [raoppcm ]: raoppcm - ALSA RAOPPCM alsa pcm driver to bridge to raop_play
こんな風に出ます。
Amarokを設定
Amarokのメニューから、設定(S)->Amarokの設定(C)で設定ウィンドウを開く。
[エンジン]タブで、出力プラグインのプルダウンボックスからALSAを選択して、適用。
モノラル、ステレオの値をhw:1,0(この環境では)に変更して、OKをクリック。
再生
AirMac Expressに接続したスピーカーから音楽が流れてきます
再生し始めに音が細切れになったり、ときどき音が途切れたりしますが、諦めましょう。
ここで、音楽は再生されず、「オーディオ出力が使用不能です。デバイスはビジーです。」とか出た。どうやら、ユーザーがaudioグループに属してないとサウンドが再生できないようで、audioグループに自分を追加したら再生できました。
システム->システム管理->ユーザとグループから、自分のユーザ名を選択して、プロパティをクリック。次に「ユーザの権限」タブで、「オーディオデバイスを利用できる」チェックボックスをチェックする。
念のためシステムを再起動しました。
音楽を再生するときは、start_airport_expressを実行した後、Amarokを立ち上げて、再生します
何も再生してない時でも空のデータを送り続けるので、聞かないときはsudo stop_airport_expressして止めといた方が良さそうです。