RaspberryPi2でDLNAを使う。
RasberryPi2にDLNAサーバーを作成する。
参考にしたのは以下のサイト
---------- DLNAサーバの設定
1.DLNAサーバーソフトの「minidlna」をインストールする。
$ sudo apt-get install minidlna
2.動画、画像、音楽を保存するためのDLNA対応のディレクトリーを作成する。
$ cd /var/lib/minidlna (minidlnaディレクトリーに移動する)
$ sudo mkdir movies (moviesディレクトリーを作成する)
$ sudo mkdir photos (同上)
$ sudo mkdir musics (同上)
3.各ディレクトリーがDLNAに対応するように設定ファイルを編集する。
$ sudo nano /etc/minidlna.conf (minidlna.confを編集する)
minidlna.confファイルの中に、次の行を追記する。
medir_dir = /var/lib/minidlna (minidlna.conf内にこの行を追記する)
4.各ディレクトリーにアクセスできるように所有者をユーザーのpiに変える。
$ sudo chown pi:pi movies photos musics
5.minidlnaを再起動
$ sudo service minidlna restart
ここまでの設定で、/var/lib/minidlnaにあるファイルを視聴することが可能になる。
しかし、rasberrypiのmicrosdの容量は少ないためたくさんのファイルを置くことはできない。そこで、外付けHDDを接続し、HDDに置いたファイルをDLNAで視聴できるようにする。
---------- 外付けHDDの設定
1.USB-HDDを初期化するために情報を表示する。
$ dmesg (USB-HDDのデバイスファイル名等が分かる。通常は、sda)
2.HDDのパーティションを再設定する。
$ sudo umount /dev/sda1
$ sudo fdisk /dev/sda (パーティションsdaの設定を開始)
3.設定を開始する。
pを入力 (パーティションが一覧表示される)
dを入力 (パーティションを削除)
nを入力 (新しいパーティションを作成)
pを入力、1を入力 (Partition typeを決める)
Enterキーを2回押す (パーティションの先頭とサイズを決める)
tを入力、83を入力 (パーティションタイプを指定)
wを入力 (パーティションを書き換える)
4.上記のパーティションにファイルシステムを構築するために、下記を実行する。
$ sudo mkfs.ext4 /dev/sda1
次に、このストレージを特定のフォルダ(ディレクトリー)にマウントする操作を行う。
ここでは、/var/shareの中に新しいディレクトリーhddを作っておいて、/var/share/hdd にマウントすることにします。
$ cd /var/share
$ sudo mkdir hdd
そのために、まずUSB-HDDの識別値UUIDを調べてコピーしておきます。
$ sudo blkid /dev/sda1 (識別値UUIDが表示される)
続いて、マウントの設定fstabを編集するためにエディタで開いて、その末尾にUUIDを追記する。
$ sudo vi /etc/fstab
追記内容は、「UUID=調べたUUID /var/share/hdd ext4 defaults 0 0」
最後に、上記の設定をマウントする。
$sudo mount -a
以上の設定で/var/share/hddにファイルを置くと、外付けHDDにファイルを置かれるようになる。
ビデオ、写真、音楽のフォルダを分ける。
$cd /var/share/hdd
$mkdir Videos
$mkdir Audios
$mkdir Pictures
最後に/etc/minidlna.confを以下のように修正してDLNAサーバの参照先を外付けHDDにする。
$sudo vi /etc/minidlna.conf
medir_dir = V,/var/share/hdd/Videos
medir_dir = P,/var/share/hdd/Pictures
medir_dir = A,/var/share/hdd/Audios
/etc/minidlna.confに設定値はとりあえず下のようにして置く
medir_dir = V,/var/share/hdd/Videos
medir_dir = P,/var/share/hdd/Pictures
medir_dir = A,/var/share/hdd/Audios
port=8200 // ポート番号
inotyfy=yes // yesにしないとforce-reloadした時に反映されない。
notify_interval=1200 // 設定秒毎に情報を更新
これで外付けHDDに保存されているファイルを読みに行く。
追記
サブフォルダを作成した際に、そのサブフォルダ名が全て大文字だとなぜかファイルが存在してもリストに出てこない。原因はわからないけど、サブフォルダ名を小文字にしたら解決した。