Bubble UPnP ServerをRaspberry Piで動かす

このブログに何度も書いてることなんですが、おさらいの意味でメモ(^^;)


Raspbian(LITE)の最新バージョンをダウンロード。
https://www.raspberrypi.org/downloads/raspbian/

Win32 Disk Imagerで、ダウンロードしたイメージをMicroSDに書き込む。

最新のRaspbianはデフォルトでSSHがOFFになっているので、"SSH"というファイをエディターで作成してMicroSDの"/boot"に書き込む。"SSH"は空のファイルでOK。

起動。

SSHでログイン。
$ssh pi@raspberrypi.local
password: raspberry

(メモ)_/_/_/_/_/_/_/_/_/_/_/
Macのターミナルでログインしようとすると、
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
といった、メッセージが表示されてログインできないことがある。そんな場合は、
$ ssh-keygen -R remote_host_name
もしくは、
$ sed -i '/remote_host_name/d' ~/.ssh/known_hosts
これでOK。
_/_/_/_/_/_/_/_/_/_/_/_/_/_/

java をインストール
$ sudo apt-get update && sudo apt-get install oracle-java8-jdk

BubbleUPnP Server をダウンロードするディレクトリを作る。

$ mkdir bubbleupnp

作ったディレクトリに移動。
$ cd bubbleupnp

BubbleUPnP Server をダウンロード。
$ sudo wget http://www.bubblesoftapps.com/bubbleupnpserver/BubbleUPnPServer-distrib.zip -O bubbleupnpserver.zip

解凍.。
$ unzip bubbleupnpserver.zip

"launch.sh" のアクセス権を変更
$ sudo chmod +x launch.sh

BubbleUPnP サーバーを起動。
$ sudo ./launch.sh > /dev/null 2>&1 &

ブラウザで動作チェック。
http://raspberrypi.local:58050/

起動時にBubbleUPnP Server がスタートするよう設定。nano を使って /etc/init.d/ に "BubbleUPnPServer" というファイルを作成し、以下のテキストをコピペしてセーブ。

$ sudo nano /etc/init.d/BubbleUPnPServer
---------------------------------------------------------------------------------------------

#!/bin/bash
### BEGIN INIT INFO
# Provides:          BubbleServer
# Required-Start:    $remote_fs $syslog
# Required-Stop:     $remote_fs $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: BubbleUPnP Server Background Service Management
# Description:       Used to ensure BubbleUPnP starts/stops etc
### END INIT INFO

DAEMON_PATH="/home/pi/bubbleupnp"

DAEMON="java -Xss256k -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dfile.encoding="UTF-8" -jar BubbleUPnPServerLauncher.jar"
DAEMONOPTS=""

NAME=BubbleUPnPServer
DESC="Runs BubbleUPnPServer"
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME

case "$1" in
start)
  printf "%-50s" "Starting $NAME..."
  cd $DAEMON_PATH
  PID=`$DAEMON $DAEMONOPTS > /dev/null 2>&1 & echo $!`
  #echo "Saving PID" $PID " to " $PIDFILE
        if [ -z $PID ]; then
            printf "%sn" "Fail"
        else
            echo $PID > $PIDFILE
            printf "%sn" "Ok"
        fi
;;
status)
        printf "%-50s" "Checking $NAME..."
        if [ -f $PIDFILE ]; then
            PID=`cat $PIDFILE`
            if [ -z "`ps axf | grep ${PID} | grep -v grep`" ]; then
                printf "%sn" "Process dead but pidfile exists"
            else
                echo "Running"
            fi
        else
            printf "%sn" "Service not running"
        fi
;;
stop)
        printf "%-50s" "Stopping $NAME"
            PID=`cat $PIDFILE`
            cd $DAEMON_PATH
        if [ -f $PIDFILE ]; then
            kill -HUP $PID
            printf "%sn" "Ok"
            rm -f $PIDFILE
        else
            printf "%sn" "pidfile not found"
        fi
;;

restart)
    $0 stop
    $0 start
;;

*)
        echo "Usage: $0 {status|start|stop|restart}"
        exit 1
esac

---------------------------------------------------------------------------------------------
コピペしたら、
DAEMON_PATH="/var/www/bubbleupnp"

DAEMON_PATH="/home/pi/bubbleupnp"     (解凍したディレクトリを指定)
に変更。

ctrl + x ----> y   enter で終了。

"/etc/init.d/BubbleUPnPServer" のアクセス権を変更。
$ sudo chmod 755 /etc/init.d/BubbleUPnPServer

"rc.d" ディレクトリにシンボリックリンクを張る。
$ sudo update-rc.d BubbleUPnPServer defaults

iPad でシャットダウンするため固定IPアドレスを設定。以下を末尾に追加。
$ sudo nano /etc/dhcpcd.conf
---------------------------------------
interface eth0
static ip_address=192.168.x.x/24
static routers=192.168.x.x
static domain_name_servers=192.168.x.x
---------------------------------------------------

ctrl + x ----> y   enter で終了。

再起動。
$ sudo reboot

ブラウザで動作を確認。
http://raspberrypi.local:58050/

(追記)
今はこんな状態(^^;)で運用していますがすこぶる快適です^^


SDカードへの書き込みが頻繁に起きるのでカードの寿命が心配なのですが、当面これで行こうかなと(笑)

ゆくゆくはこれかな。
http://www.physical-computing.jp/product/1335




_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
(直接関係ないけど今回お世話になったコマンド)
不要なパッケージを削除
# sudo apt-get remove --purge {package名}

依存関係がなく不要と判断されたパッケージを削除
# sudo apt-get autoremove

このブログの人気の投稿

日本のオーディオメーカー一覧

「ミュージック」アプリでアルバムアートが削除できない

メディアサーバーの Plex, Emby, Jellyfin を試す

Raspbian Stertch Lite に MPD と upmpdcli をインストールして OpenHome のレンダラーを作る

電力会社と音質