Edited at

Raspberry Piにshairport-syncをインストールする

More than 1 year has passed since last update.

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向けに余分なものを排除した感じです。

基本的な流れは、以下の通り。


  1. 必要なライブラリのインストール

  2. ソースコードのクローン、ビルド

  3. デーモン用のユーザ、グループの準備

  4. インストール

今回は最新版(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


5. 参考