11.2の新UIで MiniDLNA をインストールする手順。
9.3のインストール手順を紹介している記事に加筆されているので試してみた。
How to Install MiniDLNA on FreeNAS 9.3 (Prior to Plugin)
基本的な流れは変わっていない模様。
(旧UIでの手順は、FreeNAS 9.3 に MiniDLNA をインストール参照)
画像はそのウチ気が向いたら追加します。
こちらの手順でJailを作成すれば、旧UIに戻っていちいちコントロールしなくて済みます。
(あと、FreeNASを11.3以降にアップデートするときは、Warden Jail は非対応なので結局作り直しになるし。FreeNAS 11.3 Release が利用可能になりました)
いくつかの前提条件があります:
1) 対象の FreeNAS のネットワーク構成ができていて、インターネットにアクセスできること。
2) 対象の FreeNAS の共有フォルダにいくつかの動画や音楽が用意されていること。
(この辺は他のエントリとか参照して、通常のNASとしてFreeNASを構成しておいてください、というところですね)
Jailの作成 (新GUI)
1) MiniDLNA に設定して使うためのIPアドレスを特定するか、DHCPを使うか決めてください。例として 192.168.1.54 を使います。
2) FreeNAS の GUI の Jails アイコンをクリック。
3) Add をクリック
4) ADVANCED JAIL CREATION をクリック
5) Jail の名前を Name に指定します。 MiniDLNA とか(FreeBSDとして、MiniDLNA だけでなく他の用途にこのJailを使うことも可能ですが、ここではシンプルにMiniDLNA とします)
a) Release から希望するバージョンを選択。(11.2-U7では、11.2-RELEASEと11.3-RELEASEが選べるけど、 11.2-RELEASE がいいんじゃないかな)
6) DHCPを使うなら a) 、静的IPを割り当てるなら b)
a) DHCP: 「DHCP Auto configure IPv4」にチェックして 7)へ (VNETとBerkeley Packet Filter のチェックが同時に入るがそのままにする)
b) 静的IPアドレス: 「VNET」をチェックして、Select "vnet0" for the 「IPv4 Interface」で「vnet0」を選択して「IPv4 address」を入力、「IPv4 Netmask」は24(=255.255.255.0)とか選択。「IPv4 Default Router」にデフォルトゲートウェイを入力。 (他のオプションは希望に応じて変えてもいいけど、動作したりしなかったりするらしい) 元記事のケースでは、address: 192.168.1.54, netmask: /24 (255.255.255.0), default gateway: 192.168.1.1
7) 「Auto-start」にチェック。
a) 一番下までスクロールして「SAVE」。
8) これが初めての FreeBSD Jail の作成なら、大きなダウンロードが始まります。ネットワーク環境により数分~もうちょっとかかるかも。
9) 完了すると、 MiniDLNA という名前の標準的な Jail が指定のIPアドレスで構成されます。
a) Jail が完成すると実行状態になるので、対象の Jail の右側の縦三点をクリックして、「Stop」をクリックして停止しておきます。Confirmで「STOP」
(Status が「Down」なのが止まってる。「Up」が実行中)
メディアフォルダの追加(新GUI)
10) 対象のJailの右側の縦三点をクリックして「Mount points」をクリック。
11) 「Actions」→「Add Mount Point」
12) 「Source」に動画や音楽を保存するフォルダを指定します。(親のFreeNASで共有フォルダを設定している /mnt/tank/media とか)
13) 「Destination」に Jail 側の「/media」に相当するフォルダを指定します。(フルパス表示なので /mnt/tank/iocage/jails/minidlna1/root/media とかになります)
14) 「Read-Only」にはチェックを入れると不具合があることがあるためチェックを入れないことが推奨されます。チェックを入れてプレイヤーで不具合が発生したら、ここに戻ってチェックを外してください。
15) 「SAVE」をクリック。
a) jail を再度実行します。左のGUIで Jails をクリックします。
b) 右側の MiniDLNA 用の Jail の右側の縦三点をクリックして「Start」
(ここから Jail に SSH で入るくだりがありますが、GUIからシェルに入ればいいと思うので省略)
対象の Jail の右側の縦三点から「Shell」で入ります。
20a) 「pkg install minidlna」と入力
21) この時点で、MiniDLNA とサポートファイルがインストールされます。
21a) インストールの際に何度か質問がされますので、全て「y」で答えてください。これにより、いくつかの FreeBSD Jail のプログラムが MiniDLNA をサポートするよう更新されます。省略して[Enter]を入力すると N がデフォルトの質問もあるのでインストールが完了しません。ネットワークが正しく設定されてないとうまくできません。
MiniDLNAの構成 (新GUI、旧GUI共通)
(ShellでMiniDLNAを構成する部分は変わらないみたいです)
22) 「cd /usr/local/etc/」と入力してディレクトリを移動します。
23) 「ee minidlna.conf」と入力して、minidlna.confファイルの編集画面に入ります。
24) 下にスクロールして、下記を編集します。
media_dir=/optを
media_dir=/media
(Jailから見たときの先に割り当てたフォルダを指定する)
25) 下にスクロールして、下記を編集します。
#friendly_name=My DLNA Server
を
friendly_name=MiniDLNA Server#を取り除いて好きな名称に。
26) 下にスクロールして、下記を編集します。
#db_dir=/var/db/minidlna
#を取ります。
db_dir=/var/db/minidlna
27) 下にスクロールして、下記を編集します。
#log_dir=/var/log
#を取ります。
log_dir=/var/log
28) [Esc]をおして、ゆっくり[Enter]を2回押して保存して編集画面を抜けます。
29) 「cd rc.d」と入力して
30) 「ee minidlna」と入力します。
31) 下にスクロールして、下記を編集します。
command_args="-P $pidfile -u $minidlna_uid -f /usr/local/etc/minidlna.conf"を
command_args="-R -P $pidfile -u $minidlna_uid -f /usr/local/etc/minidlna.conf"
に。(先頭に「-R」を追加します)
32) [Esc]をおして、ゆっくり[Enter]を2回押して保存して編集画面を抜けます。
MiniDLNAのテスト(新GUI、旧GUI共通)
33) 「service minidlna onestart」と入力すると、「Starting minidlna」とメッセージが表示されます。DLNA互換プレイヤーでコンテンツが見られるか確認してください。元記事書いてる人は設定に使っているコンピューターから離れなくていいので Windows Media Player (WMP) を、テストするのに使っているそうです。
MiniDLNA を自動起動するように設定します(新GUI、旧GUI共通)
無事設定できたら、Jail の起動時に MiniDLNA も自動起動するように設定します。
34) 「echo minidlna_enable="YES" >> /etc/rc.conf」と入力します。
36) 「exit」と入力してシェルを抜けます。
MiniDLNA が正常に Jail と一緒に起動するかテストします(新GUI)
37) Jails 画面で、 MiniDLNA のjailの右側の縦三点をクリックして「Stop」。Jailが停止するまで待ちます。システム構成により多少時間がかかります。
38) DLNAデバイスで、 MiniDLNA が動作しなくなったのを確認してください。
39) Jails 画面で、MiniDLNA のjailの右側の縦三点をクリックして「Start」。起動するまで30秒程度待ってください。
40) MiniDLNA が動作していることを確認してください。以上で完了です。
--
で、共有フォルダにしているDatasetのアクセス権を初期状態のまま(root/wheel)やるとうまくいくんだけど、
FreeNAS側で共有フォルダとして利用する為に、ユーザーとグループを設定して、Otherのチェック外したりすると
メディアファイルのスキャンがうまくできないみたい。
一応、Jail側のShellで、 ls /media とやるとファイル見えてるんだけどなあ。
上記の記事書いている人のアドバイスとしては基本的には、
Otherまで全チェック、みたい。
だけと、親のFreeNASの共有フォルダは他の人からフリーにアクセスできるようにしておきたくない場合、
自分ユーザーとwheelにして、
owner/groupのみ全チェック、Otherはチェックしない
としておくととりあえず動くみたい。
なぜか、DatasetでUnix形式でPermission指定してるのに、
SMB共有を設定しているとWindows形式に変わってる。
設定後、もう一度PoolのDatasetのところでUnix形式のPermissionに、Recursiveで上書き設定し直さないとならないのかな。
とりあえず検証は十分にしてないけど、
ee minidlna.conf のくだりで、
#user=jmaggard
とあるんでそれを指定してみたい気もするんだけど、親のFreeNASのUserに見当たらない。
user=root
にして、親のFreeNASのPermissionでGroupで指定してるユーザーにrootのアクセス権与えれば、メディアファイルのスキャンは、PermissionのOtherのチェックとか入ってなくてもよさそうかと思ったけど、これも違うみたい。
(もともとJailのShellはrootで入っている気がする)
結局、確認できた範囲ではrootしかメンバーのいないwheelを設定するのがいいらしいので、
暫定的にwheelで共有ユーザーの管理するしかないか。
Jailからのアクセスに使われるユーザーとかどっかに資料ないかな。
メディアフォルダに放り込んだファイルを即反映させたいときは
JailのShellで
service minidlna restart
あと Release は 11.3-RELEASE でも動くっぽい。
FreeNASのバージョン変えて試してみた。
11.2-RELEASE~U5だとDatasetのパーミッションの設定に関係なく動く。
U6、U7はDatasetのGroupのパーミッションがwheelじゃないと動かない。
(ユーザーのGroupとかにroot入れてもダメ)
ACL Type はUnixでもWindowsでも大丈夫。
共有フォルダへのアクセス権はUserとGroupに設定したwheelで管理、っていうのが今までのところ。
U5~U6間に何か変わったんだろうなと。
FreeNAS 11.2-U6
Windows データセットに対するACLの設定のeveryone部分が変わったんだっけ。
(Groupをユーザーと同時に作成されたのにして、コマンド打ってみたけどダメだった。新しい情報があるまでwheelで)