2013年2月5日火曜日

Raspberry Pi:ラジオ(SqueezeSlave)も聴くぜぇ~♪(2013/06/12:Squeezeliteに移行)

「ながら族」の私はラジオも聴きたい。

MPDでもSHOUTcastは聴けるようになるが、BayFM,東京FM,NHKFMなどのラジオは聴けない。
そこで、NASに導入したLogitecMediaServerのクライアント(SqueezeSlave)をインストールして、
プラグインの「らじるこ plugin for Squeezebox(らじる&ラジコを聴く)」にアクセスするぞ!

NAS+LMS+らじるこ(ラジオ)→Raspberry Pi(聴取:Squeezeslave:オーディオ出力)←PC(操作)
こんな感じです。
参考にしたのは
Running SqueezeSlave on Raspberry Pi
http://dabdig.blogspot.jp/2012/05/running-squeezeslave-on-raspberry-pi.html
です。

1.ARM用バイナリの入手
pi@raspberrypi ~/work $ wget http://jaist.dl.sourceforge.net/project/softsqueeze/squeezeslave/squeezeslave-1.3.393/squeezeslave-1.3-393-armhf-lnx32.tar.gz
--2013-01-23 14:20:56--  http://jaist.dl.sourceforge.net/project/softsqueeze/squeezeslave/squeezeslave-1.3.393/squeezeslave-1.3-393-armhf-lnx32.tar.gz
Resolving jaist.dl.sourceforge.net (jaist.dl.sourceforge.net)... 150.65.7.130
Connecting to jaist.dl.sourceforge.net (jaist.dl.sourceforge.net)|150.65.7.130|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 354010 (346K) [application/x-gzip]
Saving to: `squeezeslave-1.3-393-armhf-lnx32.tar.gz'

100%[======================================>] 354,010     1.96M/s   in 0.2s

2013-01-23 14:20:56 (1.96 MB/s) - `squeezeslave-1.3-393-armhf-lnx32.tar.gz' saved [354010/354010]

pi@raspberrypi ~/work $ ls -l
total 348
-rw-r--r-- 1 pi pi 354010 Jan 21 21:24 squeezeslave-1.3-393-armhf-lnx32.tar.gz

2.展開とコピー
pi@raspberrypi ~/work $ tar xzvf squeezeslave-1.3-393-armhf-lnx32.tar.gz
LICENSE.txt
squeezeslave
pi@raspberrypi ~/work $ ls -l
total 980
-rw-r--r-- 1 pi pi  18009 Jan  3 01:24 LICENSE.txt
-rwxr-xr-x 1 pi pi 625351 Jan  3 01:53 squeezeslave
-rw-r--r-- 1 pi pi 354010 Jan 21 21:24 squeezeslave-1.3-393-armhf-lnx32.tar.gz

pi@raspberrypi ~/work $ sudo cp squeezeslave /usr/bin/squeezeslave
pi@raspberrypi ~/work $ ls -l /usr/bin/squee*
-rwxr-xr-x 1 root root 625351 Jan 23 14:55 /usr/bin/squeezeslave

3.デバイスの確認
pi@raspberrypi ~/work $ squeezeslave -L
Output devices:
  0: (ALSA) bcm2835 ALSA: bcm2835 ALSA (hw:0,0) (11/46)
  1: (ALSA) sysdefault (11/46)
  2: (ALSA) pulse (11/46)
  3: (ALSA) mmap0 (11/46)
* 4: (ALSA) default (11/46)
→0番がターゲット

4.インタラクティブモードで試す
「-D」を指定すると、コンソール上でインタラクティブに操作できます。
「-o 0」は音声の出力先です。(#3で確認したもの)
pi@raspberrypi ~/work $ ./squeezeslave -o 0 192.168.1.23 -D

                   lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
                   xSqueezebox Home                  1 of 10x
                   xNow Playing                            >x
                   mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj


                   lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
                   xraziru&raziko (Qian Xie eria)           x
                   x      10 of 17TOKYO FM                  x
                   mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj


                   lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
                   xNow Playing                        00:15x
                   xTOKYO FM - doraibazuinhuo               x
                   mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

→TOKYO FMがちゃんと聴こえます(^^)
ここまでは簡単だった。。。

5.起動用のスクリプト入手
マシンが起動したらSqueezeSlaveが自動起動するように設定するためのスクリプトです。
Rasbianの元になったDebian用のスクリプトがそのまま使えます。

pi@raspberrypi ~/work $ wget http://ralph_irving.users.sourceforge.net/squeezeslave.init.debian
--2013-01-24 16:21:22--  http://ralph_irving.users.sourceforge.net/squeezeslave.init.debian
Resolving ralph_irving.users.sourceforge.net (ralph_irving.users.sourceforge.net)... 216.34.181.96
Connecting to ralph_irving.users.sourceforge.net (ralph_irving.users.sourceforge.net)|216.34.181.96|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4657 (4.5K) [text/plain]
Saving to: `squeezeslave.init.debian'

100%[======================================>] 4,657       11.5K/s   in 0.4s

2013-01-24 16:21:23 (11.5 KB/s) - `squeezeslave.init.debian' saved [4657/4657]
pi@raspberrypi ~/work $ ls -l squeezeslave.init.debian
-rw-r--r-- 1 pi pi 4657 Dec  6  2010 squeezeslave.init.debian

6.インストール方法の確認
pi@raspberrypi ~/work $ vi squeezeslave.init.debian
# Install Instructions
#
#       Copy file to /etc/init.d/squeezeslave
#       chmod 755 /etc/init.d/squeezeslave
#       update-rc.d squeezeslave defaults
#
#       Create /etc/default/squeezeslave to override any default
#               variables defined here.  No not edit this file.
#
→スクリプトの頭にコメントが書かれています。(素晴らしい!!見習いたいものです。)
後半のCreate /etc/default・・・の部分の意味がよくわからずすっ飛ばしてしまい、
サーバに接続できず何回もネットを調べてはやり直しました。(T_T)
色々調べた結果、スクリプトのパラメタはスクリプトを修正するのではなく、
/etc/default/squeezeslaveに記述することによりオーバーライドできるんだよ!
ということだと分かりました。(#7.5がミソ)

7.インストール開始
スクリプトに書かれている通りに進めるだけです。
7.1.初期化スクリプトディレクトリにセットする
pi@raspberrypi ~/work $ sudo cp squeezeslave.init.debian /etc/init.d/squeezeslave
pi@raspberrypi ~/work $ cd /etc/init.d/

7.2.実行モードをセットする
 pi@raspberrypi /etc/init.d $ ls -l squeezeslave
-rwxr-xr-x 1 root root 4707 Jan 24 02:15 squeezeslave

7.3.デフォルト登録する
pi@raspberrypi /etc/init.d $ sudo update-rc.d squeezeslave defaults
update-rc.d: using dependency based boot sequencing

7.4.スクリプト初期設定の確認をする
pi@raspberrypi ~/work $ vi squeezeslave.init.debian
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Squeezebox client"
NAME=squeezeslave
DAEMON=/usr/bin/$NAME
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
SSMAC="00:00:00:00:00:01"
SBSHOST="localhost"
SSOPTIONS=
SSLOG=/var/log/squeezeslave.log
OSS="`$DAEMON -V | grep -c 1810`"
AOSS=/usr/bin/aoss
DAEMON_ARGS="-R -M${SSLOG} ${SSOPTIONS} -m${SSMAC} ${SBSHOST}"

→SBSHOST(接続先の設定),SSOPTIONS(その他オプション:出力先の設定)の
2つのパラメタを修正する

7.5.デフォルトスクリプトの修正パラメタファイルの作成
pi@raspberrypi /etc/init.d $ sudo vi /etc/default/squeezeslave
SBSHOST="192.168.1.23"
SSOPTIONS="-o 0"

8.起動の確認
pi@raspberrypi /etc/init.d $ sudo ./squeezeslave start
pi@raspberrypi /etc/init.d $ ps ax | grep squeeze
 2494 ?        Ssl    0:00 /usr/bin/squeezeslave -R -M/var/log/squeezeslave.log -o 0 -m00:00:00:00:00:01 192.168.1.23
 2516 pts/0    S+     0:00 grep --color=auto squeeze

→Logitech Media Serverからリモコンしてみる。
オーディオからも音が出た。バッチリだぜ!

9.停止の確認
pi@raspberrypi /etc/init.d $ sudo ./squeezeslave stop
pi@raspberrypi /etc/init.d $ ps ax | grep squeeze
 2549 pts/0    S+     0:00 grep --color=auto squeeze

10.自動起動の確認
pi@raspberrypi /etc/init.d $ sudo shutdown -r now
Broadcast message from root@raspberrypi (pts/0) (Thu Jan 24 16:17:53 2013):
The system is going down for reboot NOW!

pi@raspberrypi ~ $ ps ax | grep squeeze
 1671 ?        Ssl    0:00 /usr/bin/squeezeslave -R -M/var/log/squeezeslave.log -o 0 -m00:00:00:00:00:01 192.168.1.23
 2109 pts/0    S+     0:00 grep --color=auto squeeze

やったね!! 、「ながら環境」できあがり(^^)/

2 件のコメント:

  1. 自己レスです。。。
    その後、「らじる&ラジコプラグイン」を使用した日本のラジオ局では、40秒~60秒経過後に止まってしまう現象が発生しています。いくつかのバージョンをインストールし直してみましたが、改善できていません。Squeezebox Radioではちゃんと聞けてるので残念。
    標準のインターネットラジオは大丈夫です。

    返信削除
  2. 本件、解決できず断念しました。
    Squeezeliteを導入して解決しました。m(_ _)m

    返信削除