Raspberry PiをAirPlay対応の音楽再生機にするため、mikebrady/shairport-syncをインストールしました。
shairport
には複数の派生バージョンがあるため、ご注意ください。
1. 環境
Raspberry Piの本体は、余っていたModel B Rev.2を使用し、Linuxディストリビューションには、公式のRaspbian(Jessie)を使用しました。
pi$ uname -a
Linux raspberrypi 4.1.7+ #817 PREEMPT Sat Sep 19 15:25:36 BST 2015 armv6l GNU/Linux
pi$ cat /etc/debian_version
8.0
また、試験用にUSBスピーカー「Olasonic TW-S7」を使用しました。
2. インストール
公式サイトのREADME.mdに従うだけで、問題なくインストールできました。
以下の内容は、Raspberry Pi向けに余分なものを排除した感じです。
基本的な流れは、以下の通り。
- 必要なライブラリのインストール
- ソースコードのクローン、ビルド
- デーモン用のユーザ、グループの準備
- インストール
今回は最新版(HEAD)をインストールしましたが、安定版が良ければタグ名などでgit checkout
してください。
# 必要なライブラリをインストールする
pi$ sudo apt-get update
pi$ sudo apt-get install libshairport2 autoconf libtool libdaemon-dev libasound2-dev libpopt-dev libconfig-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev
# ソースコードをクローンし、ビルドする
pi$ cd ~
pi$ git clone https://github.com/mikebrady/shairport-sync.git
pi$ cd shairport-sync
pi$ autoreconf -i -f
pi$ ./configure --with-alsa --with-avahi --with-ssl=openssl --with-metadata --with-soxr --with-systemd
pi$ make
pi$ ./shairport-sync --version
2.6-openssl-Avahi-ALSA-soxr-metadata
# デーモンを動かすためのユーザ、グループを作成する
pi$ sudo groupadd -r shairport-sync
pi$ sudo useradd -r -M -g shairport-sync -s /usr/bin/nologin -G audio shairport-sync
# インストールする
pi$ sudo make install
# systemdへの登録状況を確認し、有効化する
pi$ systemctl status shairport-sync
● shairport-sync.service - ShairportSync AirTunes receiver
Loaded: loaded (/usr/lib/systemd/system/shairport-sync.service; disabled)
Active: inactive (dead)
pi$ sudo systemctl enable shairport-sync
Created symlink from /etc/systemd/system/multi-user.target.wants/shairport-sync.service to /usr/lib/systemd/system/shairport-sync.service.
pi$ systemctl status shairport-sync
● shairport-sync.service - ShairportSync AirTunes receiver
Loaded: loaded (/usr/lib/systemd/system/shairport-sync.service; enabled)
Active: inactive (dead)
3. 設定
設定はお好みで。標準のshairport-sync.conf
内に詳しい説明があります。
今回の設定内容は以下の通り。
- 表示名は「raspberrypi」(iTunesなどに表示される名前)
- 再生に使用するALSAオーディオデバイスは
plughw:1
pi$ cd /etc
pi$ sudo mv shairport-sync.conf shairport-sync.conf.original
pi$ sudo sh -c 'cat << EOF > shairport-sync.conf
general =
{
name = "raspberrypi"
}
alsa =
{
output_device = "plughw:1"
mixer_device = "plughw:1"
}
EOF'
4. 起動
以下のコマンドで起動します。iTunesなどにAirPlayの再生先として表示されれば成功です。
pi$ sudo systemctl start shairport-sync