人気のRaspberry Piですが用途が色々とありすぎてどう使っていいかわからないかもしれません。用途の一つにAirPlay Clientがあります。インストールが簡単で複数のスピーカーを同時に使う際には非常に有効的です。
Raspberry PiのDebianで構築しましょう。
# apt-get install git libao-dev libssl-dev libcrypt-openssl-rsa-perl libio-socket-inet6-perl libwww-perl avahi-utils # git clone https://github.com/albertz/shairport.git shairport # cd shairport # make # make install # /usr/local/bin 以下にインストール
あとは起動スクリプトを書いて完成です。shairportの使い方は下記の通り。
ShairPort version 0.05 - Airport Express emulator Usage: shairport.pl [OPTION...] Options: -a, --apname=AirPort Sets AirPort name -p, --password=secret Sets password -o, --server_port=5002 Sets Port for Avahi/dns-sd/howl -i, --pipe=pipepath Sets the path to a named pipe for output --ao_driver=driver Sets the ao driver (optional) --ao_devicename=devicename Sets the ao device name (optional) --ao_deviceid=id Sets the ao device id (optional) -s --squeezebox Enables local Squeezebox Server integration -c --cliport=port Sets the SBS CLI port -m --mac=address Sets the SB target device -l --volume=level Sets the SB volume level (in %) --play_prog=cmdline Program to start on 1st connection --stop_prog=cmdline Program to start on last disconnection -d Daemon mode -w --writepid=path Write PID to this location -v --verbose Print debugging messages -h, --help This help
起動スクリプトを作ります。パーミッションは755で。
# vim /etc/init.d/shairport
内容は下記の通り。
#!/bin/bash ### BEGIN INIT INFO # Provides: shairport # Required-Start: $local_fs $remote_fs $network $syslog # Required-Stop: $local_fs $remote_fs $network $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts the shairport # Description: starts the shairport ### END INIT INFO TARGET_SCRIPT=/usr/local/bin/shairport.pl FASTCGI_USER=www-data RETVAL=0 PIDFILE=/var/run/shairport.pid case "$1" in start) $TARGET_SCRIPT --writepid=$PIDFILE -d > /dev/null 2>&1 RETVAL=$? ;; stop) kill `cat $PIDFILE` echo '' > $PIDFILE RETVAL=$? ;; restart) kill `cat $PIDFILE` echo '' > $PIDFILE $TARGET_SCRIPT --writepid=$PIDFILE -d > /dev/null 2>&1 RETVAL=$? ;; *) echo "Usage: shairport {start|stop|restart}" exit 1 ;; esac exit $RETVAL console output
monitなどを入れて落ちないように工夫します。
# vim /etc/monit/conf.d/shairplay.conf
内容は下記の通り。
check process shairport with pidfile /var/run/shairport.pid start program = "/etc/init.d/shairport start" stop program = "/etc/init.d/shairport stop"