んたのブログ

週末になると出没します。

DebianにReadyMedia(minidlna)導入

iTunesで管理してる音楽データのバックアップを自宅サーバ(Debian)にバックアップしてるんですが、普段からこのデータ生かせないかな、とは考えてたんです。ファイルサーバとしてだけ使うのもったいないしですし。そんなわけで今回DLNAサーバを導入してみました。  

$ sudo apt install minidlna

インストール自体はもちろん簡単に終わったんですが、この後が苦労しました…  


自ユーザの「趣味」というディレクトリ配下にデータを格納してるんですが、ここに対してアクセスができないと言われます。

 8月 03 14:10:28 $USER minidlnad[2787]: [2024/08/03 14:10:28] minidlna.c:670: error: Media directory "/home/$USER/趣味" not accessible [Permi>

このとき、プロセスは「minidlna」ユーザで起動していたので/etc/minidlna.conf でユーザ名を自ユーザに設定して起動しようとすると

 8月 03 14:19:31 $USER systemd[1]: minidlna.service: Main process exited, code=exited, status=255/EXCEPTION
 8月 03 14:19:31 $USER systemd[1]: minidlna.service: Failed with result 'exit-code'.

今度は起動すらしやしない。

検索したところ、db_dir と log_dir のパーミッションも変更しましょう、と見つけたのでディレクトリとファイルのパーミッションを変更してみたりしたんですが、それでもうまく行かず。

時間ばかりかかるので諦めようかと思ったんですが、Arch Wikiにこんな記載が。

wiki.archlinux.jp

ユーザーで minidlna を実行

システムサービスとしてではなく、自分のユーザーを使って minidlna を実行することもできます。マシンの管理者権限がないときにメディアを共有したい場合に便利です。

ローカルで必要なファイルとディレクトリを作成して設定を編集してください:

これで行けるか?ということで早速チャレンジ。

コンフィグファイルを自分のディレクトリにコピーして

$ install -Dm644 /etc/minidlna.conf ~/.config/minidlna/minidlna.conf
$ $EDITOR ~/.config/minidlna/minidlna.conf

ユーザを自ユーザに設定して

user=$USER

media_dir と db_dir と log_dir を設定して

media_dir=/home/$USER/dir
db_dir=/home/$USER/.config/minidlna/cache
log_dir=/home/$USER/.config/minidlna

$ /usr/sbin/minidlnad -f /home/$USER/.config/minidlna/minidlna.conf -P /home/$USER/.config/minidlna/minidlna.pid
$ ps -ef|grep dlna
$USER    2883       1  0 20:35 ?        00:00:00 /usr/sbin/minidlnad -f /home/valkylie/.config/minidlna/minidlna.conf -P /home/valkylie/.config/minidlna/minidlna.pid
$USER    2886    2883 99 20:35 ?        00:00:05 /usr/sbin/minidlnad -f /home/valkylie/.config/minidlna/minidlna.conf -P /home/valkylie/.config/minidlna/minidlna.pid

よし、起動した!

ちゃんとライブラリも読み込めてる!やった!


さあ、じゃあ次はこれをどうやって起動させるかと、どう読み出すかだな。