Raspberry Pi 3 Model B に MiniDLNA & BubbleUPnP Server をインストール

ホントの備忘録

Raspberry Pi 3 Model B(Raspbian Jessie Lite) に  "MiniDLNA" と "BubbleUPnP Server" をインストール。

ログイン。
$ ssh pi@192.168.xx.xx

 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

こんな警告が出て接続できない。
いくつかある対処法方のうち、以下のコマンドで対応。
$ ssh-keygen -R 192.168.xx.xx

これでうまくいかない時は、
$ vi ~/.ssh/known_hosts

で該当するホストの行を削除。

ログイン。
$ ssh pi@192.168.xx.xx
Password: raspberry

念のためrootファイルシステムを拡張。
$ sudo raspi-config

メニュー "1" を実行して再起動。

サーバーからパッケージ・リストを入手。
ホスト名 " raspberrypi.local" でアクセスするため "avahi" をインストール。
UPnP/DLNAサーバーである "MiniDLNA" をインストール。
$ sudo  apt-get update
$ sudo apt-get install avahi-daemon(既にインストール済みだった ^^;)
$ sudo apt-get install minidlna

念のためリブート。
$ sudo reboot

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

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

zipファイルをダウンロードするディレクトリを作成。
$ cd /opt
$ sudo mkdir bubbleupnp
$ cd bubbleupnp

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

解凍。
$ sudo unzip bubbleupnpserver.zip

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

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

( 色々メッセージを吐く起動方法は、
sudo ./launch.sh )

ブラウザで動作チェック。
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="/var/www/bubbleupnp"

DAEMON="java -Xss256k -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -jar BubbleUPnPServer.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" )を BubbleUPnP Server を解凍したディレクトリに変更。

セーブして nano を終了。

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

自動起動の設定。
$ sudo update-rc.d BubbleUPnPServer defaults

リブート。
$ sudo reboot
(または
 $ sudo shutdown -r now )

ブラウザで BubbleUPnP Server の起動を確認。
http://raspberrypi.local:58050

起動しない(笑)"launch.sh" から類推して "/etc/init.d/BubbleUPnPServer" を以下のように修正したら起動(爆)

(誤)
DAEMON="java -Xss256k -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -jar BubbleUPnPServer.jar"

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

一応、BubbleUPnP Server とおまけで MiniDLNA のインストール成功。

Raspberry Pi をシャットダウン
$ sudo shutdown -h now

---------------------------------------------------------------------------------------------
続き

起動時にNASをマウントする設定を行う。
NAS のユーザー&パスワードを "/etc/fstab.cred" というファイルを作って保存。
$ sudo nano /etc/fstab.cred
---------------------------------------------------------------------------------------------
username=USER
password=PASSWORD
---------------------------------------------------------------------------------------------

"fstab.cred のアクセス権を設定。
$ sudo chmod 600 /etc/fstab.cred

"/etc/fstab" に以下の1行を追加。
$ sudo nano /etc/fstab
---------------------------------------------------------------------------------------------
//192.168.xx.xx/Multimedia/Music /mnt/storage cifs credentials=/etc/fstab.cred,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0
---------------------------------------------------------------------------------------------

minidlna の設定。
$ sudo nano /etc/minidlna.conf
---------------------------------------------------------------------------------------------
#   * "A" for audio    (eg. media_dir=A,/var/lib/minidlna/music)
#   * "P" for pictures (eg. media_dir=P,/var/lib/minidlna/pictures)
#   * "V" for video    (eg. media_dir=V,/var/lib/minidlna/videos)
media_dir=/var/lib/minidlna
media_dir=A,/mnt/storage           コメントアウト

# Automatic discovery of new files in the media_dir directory.
inotify=yes

# Notify interval, in seconds.
notify_interval=895                    コメントアウト
---------------------------------------------------------------------------------------------

再起動してブラウザでDBができているか確認。
http://raspberrypi.local:8200/

失敗。コントロールポイントにサーバーが表示はされるが、アルバムや曲は表示されず。しかもサーバがハングアップ。

解決策を発見。
$ sudo nano /etc/minidlna.conf
----------------------------------------------------------------------------------------------
# set this if you would like to specify the directory where you want MiniDLN    A to store its database and album art cache
db_dir=/var/cache/minidlna            コメントアウト  
---------------------------------------------------------------------------------------------

再起動して、、、成功!

・・・・・と、思ったら、iOS の foobar2000 では正常なのに Kazoo でアクセスしたらハングアップ。

どして?


参考

 apt-getでインストールしたパッケージをアンインストールする方法
 $ sudo apt-get --purge remove パッケージ名

アクセス権を調べる
$ ls -l

参考にさせていただいたサイト様
ログインできない問題
http://qiita.com/grgrjnjn/items/8ca33b64ea0406e12938
java をインストール
https://www.raspberrypi.org/forums/viewtopic.php?f=81&t=101543
起動時に "BubbleUPnP Server" を自動起動
https://www.raspberrypi.org/forums/viewtopic.php?f=38&t=73464
NASの自動マウント
https://skalldan.wordpress.com/2013/01/09/mac・windows・linux-で起動時に-nas-を自動マウントする方法/
MiniDLNA が正常作動しない問題の解決策
http://ameblo.jp/arimasou16/entry-11758551996.html

このブログの人気の投稿

電力会社と音質

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

増え続ける iTunes のコンピレーションを減らす(Windows)

Manjaro Linux KDE Plasma に Waydroid をインストール

foobar2000 を UPnP/DLNA Renderer として使う