システム構成図
※Raspberry Pi4 ModelB 4GBで動作確認。ソフトはNAS には samba 、DLNA には minidlna を利用。
NAS参照イメージ
minidlnaで参照可能なメディア
各種参考サイト
https://www.raspberrypi.org/software/
https://pcmanabu.com/create-media-raspberry-pi-4/
https://shikasen-engineer.com/raspberry-pi-dlna/#DLNA
https://www.lanhome.co.jp/device/raspberry-pi.html
https://www.indoorcorgielec.com/resources/raspberry-pi/raspberry-pi-setup/
ファンの配線
https://www.raspberrypi.org/documentation/computers/os.html
ファイルサーバ
https://shikasen-engineer.com/raspberry-pi4-samba-fileserver/
Rapberry PiへNTFSの外付けHDDのマウント方法
http://yurugadge-channel.com/article/185114382.html
Raspberry PiにSambaをセットアップ!NASは実用レベルで使えるか?
http://yurugadge-channel.com/article/179603903.html
Raspberry Piを用いたDLNAホームサーバー
https://www.lanhome.co.jp/device/raspberry-pi.html
RaspberryPiをDLNAサーバにする
https://pcvogel.sarakura.net/2019/01/17/31905
SSH接続有効化
https://kimamani89.com/2020/01/29/%E3%80%902020%E5%B9%B4%E6%9C%80%E6%96%B0-raspberrypi%E3%80%91ssh%E3%81%A7%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E6%8E%A5%E7%B6%9A%E3%83%BC%E6%96%B0%E3%81%97%E3%81%84%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88/
※手間を少なく簡易にファイル共有環境を構築したいだけなら、ラズパイとNASだけ構築して、スマホはファイルマネージャアプリで参照する方が簡単です。
ラズパイ構築
ラズパイセットアップ
以下ラズパイOSの初期設定のユーザ名は必ず「pi」で設定すること。
本記事の動作については推奨の32bitOSで確認済み。
64bitOSも公式に存在するが、互換性問題等の理由で推奨にはなっていない。
しかし、2023年現在各サードパーティソフトでラズパイ 32bit(armhf)向けの提供が既にされてないものもあり、本記事以外の仕様を作りこむなら64bitでの構築がおすすめ。64bitでも動作確認済み。
SSH接続有効化
TeratermをPCに導入
NAS構築
Teraterm でラズパイに接続し、以下コマンドを実行
sudo apt-get -y install ntfs-3g
sudo blkid
外付けHDD未接続の場合
外付けHDD接続の場合(次手順の/etc/fstabに追記するUUIDは本画像の/dev/sda2のUUIDを利用する)
ls -l /mnt/
sudo mkdir -p /mnt/hdd/usbhdd/
ls -l /mnt/hdd/usbhdd/
ls -l /etc/fstab
cat /etc/fstab
/etc/fstabをバックアップ取得してから、/etc/fstabを修正。
詳細なマウント方法は以下参照
Rapberry PiへNTFSの外付けHDDのマウント方法
https://yurugadge-channel.com/article/185114382.html
sudo cp -p /etc/fstab /etc/fstab_yyyymmdd
ls -l /etc/fstab*
sudo nano /etc/fstab
#エディタ画面で以下diffの証跡で差異となっている行を追加
diff /etc/fstab /etc/fstab_yyyymmdd
おっと失礼
以下「/mnt/hdd/usbhdd/」指定は誤り。「/mnt/hdd/usbhdd/NAS/」です。
日本語入力用
sudo apt install ibus-mozc
NAS用にsamba導入
sudo apt-get install samba
ls -l /etc/samba/smb.conf
sudo cp -p /etc/samba/smb.conf /etc/samba/smb.conf_yyyymmdd
ls -l /etc/samba/smb.conf*
sudo mkdir -p /mnt/hdd/usbhdd/NAS
sudo nano /etc/samba/smb.conf
#エディタ画面で以下diffの証跡で差異となっている行群を追加
diff /etc/samba/smb.conf /etc/samba/smb.conf_yyyymmdd
sudo smbpasswd -a pi
DLNA構築
inotify及びnotify_intervalは任意で設定ください。
基本サブディレクトリ配下にファイルを整理するからあまり意味がないと思ってますが、お好みでどうぞ。
https://knowledge.rinpress.com/index.php/MiniDLNA%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB#inotify.E3.81.AE.E8.A8.AD.E5.AE.9A.E3.81.AB.E3.81.A4.E3.81.84.E3.81.A6.E2.91.A0
choown漏れには気を付ける。(minidlnaのサービスが/var/lib/minidlna/配下にインデックスファイルを作成する権限がないためサービス起動時にfailedになる)
もしくは「chmod 777 /var/lib/minidlna/」でもよいがお好みで。
sudo apt-get install minidlna
ls -l /etc/minidlna.conf
sudo cp -p /etc/minidlna.conf /etc/minidlna.conf_yyyymmdd
ls -l /etc/minidlna.conf*
sudo nano /etc/minidlna.conf
#エディタ画面で以下diffの証跡で差異となっている各行を追加及び修正
diff /etc/minidlna.conf /etc/minidlna.conf_yyyymmdd
sudo chown minidlna /var/lib/minidlna/
以下3つのイメージとしてはNASまでが外付けHDDへのマウントなので、
「〇ドライブ(/mnt/hdd/usbhdd/NAS/):\動画」というドライブ直下の動画/画像/CanonフォルダをDLNAで公開対象にしています。
・media_dir=V,/mnt/hdd/usbhdd/NAS/動画
・media_dir=P,/mnt/hdd/usbhdd/NAS/画像
・media_dir=PV,/mnt/hdd/usbhdd/NAS/Canon
sudo systemctl status minidlna.service
sudo systemctl enable minidlna.service
ls -l /etc/init.d/minidlna
sudo cp -p /etc/init.d/minidlna /etc/init.d/minidlna_yyyymmdd
ls -l /etc/init.d/minidlna*
sudo nano /etc/init.d/minidlna
#エディタ画面で以下diffの証跡で差異となっている行(sleep 60)を追加
diff /etc/init.d/minidlna /etc/init.d/minidlna_yyyymmdd
以下はただの省エネ化なので、お好みで。(LED OFF)
ls -l /boot/config.txt
cat /boot/config.txt
sudo cp -p /boot/config.txt /boot/config.txt_yyyymmdd
ls -l /boot/config.txt*
sudo nano /boot/config.txt
diff /boot/config.txt /boot/config.txt_yyyymmdd
DLNAのインデックスが最新の状態に反映されない場合(files.db再構築)
※以下実施後、外付けHDD内のファイル数によってインデックス構築に時間がかかる。
進捗が知りたければ、スマホなどでDLNA接続すれば、現状作成されたインデックスに応じてファイルが表示される。
ls -l /var/lib/minidlna/files.db*
mv /var/lib/minidlna/files.db /var/lib/minidlna/files.db_$(date "+%Y%m%d")
ls -l /var/lib/minidlna/
sudo systemctl status minidlna.service
sudo systemctl restart minidlna.service
スマホやタブレットについて
「DLNA」で調べれば出てきますので、お好みのアプリを導入すればよいかと。
補足1:vi入力の正常化
sudo cp -p /etc/vim/vimrc.tiny /etc/vim/vimrc.tiny_bk
sudo nano /etc/vim/vimrc.tiny
##「set compatible」⇒「set nocompatible」に修正。
diff /etc/vim/vimrc.tiny /etc/vim/vimrc.tiny_bk
cat /etc/vim/vimrc.tiny
touch /home/pi/.vimrc
sudo vi /home/pi/.vimrc
##「set backspace=indent,eol,start」追加
cat /home/pi/.vimrc
補足2:minidlnaのフォルダ/ファイルソート
sudo vi /etc/minidlna.conf
cat /etc/minidlna.conf
補足3:NAS への接続時にネットワーク資格情報入力画面が出た場合
ここまで指示通り作成しているなら以下で通るはずです。
もしNAS構築時にsamba用のユーザ設定を変更している場合はpi⇒<指定したユーザ名>になります。
ユーザID ⇒ pi@raspberrypi
Password ⇒ sambaに設定したパスワード