Engineering Note

プログラミングなどの技術的なメモ

Denon RCD-N9でDLNA環境を構築する

dlna server

本記事は、DenonのネットワークオーディオプレイヤーであるCeol N9で、DLNA環境を構築します。

数年間、ネットワークオーディオ環境を運用していたのですが、サーバを再構築した際の設定関連に少し手間取ってしまったので、その構築メモとなります。

なお、DLNAサーバとしては、安価でかつ低電力なRaspberry Piを利用します。

 

 

事前準備

ネットワークオーディオプレイヤー

まずはネットワークオーディオプレイヤーとして、DenonのCeolシリーズのRCD-N9を使用します。

DenonのCeolは価格の割には、ハイレゾ音源、AirPlay、BluetoothインターネットラジオWiFi対応など様々な機能が搭載されています。

現在ではRCD-N10が最新機種となっています。

 

 

DLNAサーバ

DLNAサーバとして、Raspberry Pi 2 Bを使用します。

現在では、Raspberry Pi 3 Model B+が最新機種となっています。

 

 

スイッチ

ネットワークオーディオプレイヤーとDLNAサーバは、スイッチを介して接続します。

スイッチとしてはTP-LINKのTL-SG105Eを使用します。

 

 

外付けHDD

音楽ファイルを保存先として、Raspberry PiのUSBポートに接続する外付けHDDを用意します。

今回は、ノートPCのHDD換装時に余った2.5インチのハードディスクを再利用します。

なお、以下オリコのハードディスクケースを使用します。

 

 

ネットワーク構成図

以下が今回のネットワーク構成図になります。

 

fig1. ネットワーク構成図

fig1. ネットワーク構成図

 

Raspberry Piの設定

外付けHDDの確認

まずは、外付けHDDのファイルシステムを扱えるようにするためのライブラリをインストールします。

今回はNTFS形式にしたため、ntfs-3gをインストールしていますが、exFAT形式の場合はexfat-fuseexfat-utilsをそれぞれインストールします。

 

 # NTFSの場合
 > sudo apt install ntfs-3g

 # exFATの場合
 > sudo apt install exfat-fuse exfat-utils

 

次にRaspberry PiのUSB端子に外付けHDDを接続し、以下のコマンドでデバイスとして認識されているか確認します。

 

 > sudo blkid
 /dev/sda1: LABEL="NAS" UUID="xxxxxxxx" TYPE="ntfs" PARTUUID="xxxxxxxx"

 

何も認識されていない場合は、Raspberry PiのUSBポートからの給電切り替えが出来ていないか、Raspberry Pi自体の電源アダプターが2A未満になっていないか確認します。

古いモデルのRaspberry PiRaspberry Pi Model B+, Raspberry Pi2 Model B)ではデフォルトで600mAになっているので、以下の/boot/config.txtに"max_usb_current=1"を追記して、1200mAに切り替えます。

 

 # /boot/config.txtに追記
 max_usb_current=1

 

設定が完了したら一度再起動します。

 

外付けHDDを自動マウントする

fstabを編集し、外付けHDDを作成したディレクトリに自動マウントさせます。

 

 > sudo vi /etc/fstab
 UUID="xxxxxxxx" <マウントするディレクトリのフルパス> ntfs-3g        async,auto,dev,exec,gid=65534,rw,uid=65534,umask=000       0       0

 

UUIDは、上記のblkidコマンドで事前に確認したデバイスのUUIDを使用します。

なお、exFATの場合はntfs3gの箇所をexfat-fuseに変更します。

再起動後、指定したディレクトリに対象のデバイスがマウントされます。

 

minidlnaの設定

以下コマンドでminidlnaをインストールします。

 

 > sudo apt install minidlna

 

インストールが完了したら、/etc/minidlna.confを開き、以下の項目を編集及び有効にします。

 

 # /etc/minidlna.conf
 media_dir=A,<音楽ファイルがあるディレクトリのフルパス>
 db_dir=<DBのパス>
 network_interface=<インタフェース名>
 port=8200
 friendly_name=<表示名>
 inotify=yes
 notify_interval=895

 

db_dirはデフォルトでは/var/cache/minidlnaとなりますが、/tmp/minidlnaなどに変更します。

friendly_nameは機器側に表示させたい名称を記載し、デフォルトでは"hostname: username"になります。

 

上記設定が完了したら、minidlnaのデータベースの更新が開始されます。

なお、minidlnaのステータス確認や手動でデータベースの再スキャンを行う場合は以下コマンドを実行します。

 

 # minidlnaの停止、起動、再起動および状態確認
 > sudo service minidlna stop
 > sudo service minidlna start
 > sudo service minidlna restart
 > sudo service minidlna status

 # データベースの再スキャン
 > sudo service minidlna stop
 > sudo -u minidlna minidlnad -R -d
 > sudo service minidlna start

 

inotifyの設定

inotifyによるファイルシステムイベントを監視する上限設定を変更するため、/etc/sysctl.confにfs.inotify.max_user_watchesの箇所を追記します。

 

 # /etc/sysctl.conf
 fs.inotify.max_user_watches=81920

 

デフォルトでは8192になっていますが、再起動後に"cat /proc/sys/fs/inotify/max_user_watches"で上限値が変更されていることを確認します。

 

 > cat /proc/sys/fs/inotify/max_user_watches
 81920

 

動作確認

上記の設定が完了したら一度再起動をし、DLNAサーバの状態を確認します。

状態を確認するには、"http://<サーバIP>:8200"にアクセスします。

 

fig2. DLNAサーバの状態

fig2. DLNAサーバの状態


最初は上記のAudio filesの項目は0ですが、時間とともにファイルを読みんでいき、インデックスを作成していきます。


最後にDenon Ceol N9側でMusic Serverボタンを押して、DLNAサーバにアクセスし、音楽ファイルを再生できることが確認できれば完了です。