最新のベータ版の調子がよいということですので,ReadyNAS 1000Sのファームウェアをアップデートすることにしました.
利用したファームウェアはここにあるRAIDiator 4.1.5-T74です.
ファームウェア更新失敗
FrontView(Webインタフェイス)のシステム > OS アップデート を選択し,アップデートを開始しました.
ところが,「アップロードに失敗しました」と情けない返事が返ってきます.
失敗したといっても,Webブラウザからイメージを転送中にタイムアウトしてしまったのだと思います.アップデータは60MB超ですが,転送しつつ検証しているのかなんなのかはしりませんが,なかなか転送が完了しないのです.
しょうがないので,一度ReadyNASを再起動させ,リソースを空けてから再度アップデートしました.今度は成功.
UPnP-A/V関連
2011/12/13 追記:
この情報はもう古いです. RAIDiator-4.1.8 で採用されている ReadyDLNA 1.0.22 (MiniDLNA 1.0.22) では,listening_ip オプションが正常に動作しません.これがあると,minidlna 自体が起動しません.なお,minidlna をダウングレードした場合は音楽や動画ファイルを検出できない問題があり,お手上げです. 1.0.22 の source には listening_ip や network_interface なんてものも新たに出てきているのですが,上手く読み込めません.なお,デバッグモードではちゃんと動きます(^^;
暫定的な対処法は下記くらい.
- /usr/sbin/minidlna -d としてデバッグモードで動かす. daemon 化できないので注意.
- /usr/sbin/minidlna -a IPaddr として,引数として IPアドレスを渡す.
- /usr/sbin/minidlna -i ethX として,引数として NICを指定する.
最後の二つは,start-stop-daemon に登録すれば,まあいいかも.でも,その場しのぎすぎ.
UPnP-A/V が fuppes でなくなった
id:Hie:20090326 の日記で fuppes の二枚目 NIC での利用法を書いたばかりなのに, fuppes でなくなってしまいました.どうやら MiniDLNAとかいうちょうマイナーなものに変わっていました.…どうしろっての.
というわけで,いまのところ二枚目NIC側にUPnP-A/Vを提供できていません.
しょうがないので,MiniDLNA を CVS リポジトリから引っ張ってきてソース読みました.すると,次のようにすればよいことがわかりました.
/etc/minidlna.conf
listening_ip=192.168.0.254
192.168.0.254 は,二枚目の NIC のIPアドレスです.
詳細はこのへんを参照してください.
MiniDLNA options.c,v 1.8 2009/03/13 08:39:37
static const struct { enum upnpconfigoptions id; const char * name; } optionids[] = { { UPNPEXT_IFNAME, "ext_ifname" }, { UPNPEXT_IP, "ext_ip" }, { UPNPLISTENING_IP, "listening_ip" }, { UPNPPORT, "port" }, { UPNPPRESENTATIONURL, "presentation_url" }, { UPNPNOTIFY_INTERVAL, "notify_interval" }, { UPNPSYSTEM_UPTIME, "system_uptime" }, { UPNPUUID, "uuid"}, { UPNPSERIAL, "serial"}, { UPNPMODEL_NUMBER, "model_number"}, { UPNPFRIENDLYNAME, "friendly_name"}, { UPNPMEDIADIR, "media_dir"}, { UPNPALBUMART_NAMES, "album_art_names"}, { UPNPINOTIFY, "inotify" }, { ENABLE_TIVO, "enable_tivo" } };
ちなみに,ext_ifname や ext_ip は ReadyNAS 4.1.5 T74 にプリインストールされている MiniDLNA では利用できないようです.バージョンが古いのかな?
ふしぎだ
listening_ip で 二枚目NICを指定したのだから,1枚目NICでは Listen できないものだと思っていましたが….なぜか1枚目でもListenできる(^^; うれしい誤算だが,これはバグではないのか?
それと,MiniDLNA は daemon 再起動のたびに DLNA フォルダが見えなくなりますが, /var/cache/minidlna にある DLNA の DB を毎回リセットしているんでしょうか? だとしたらアホすぎる.
What do I have to do to solve a problem that I cannot use the MiniDLNA UPnP-AV server with 2nd interface at ReadyNAS normally?
ちなみに,MiniDLNA @ ReadyNAS において,二枚目NICにポートを開く方法は私の調べた限りどこにも載っていませんでした.外国で困ってる人が現れるかもしれませんのでキーワードくらい残しておきましょうか.なに,へたくそな英語ですと? まぁ,ポエムみたいなものだと思ってください.なにしろ,英語の正規教育を受けたことが(本当に)ないのです.しょうがない.
I wanted to use UPnP-AV(MiniDLNA) with 2nd interface (in short eth1) at "Infrant/Netgear ReadyNAS 1000S/1100" with firmware-4.1.5-beta-T74, however, I couldn't solve it easily because nobody showed how to open the listening port on 2nd interface and how to use the configuration file of MiniDLNA.
I could just solve it finally, so I can show it.
- Install SSH daemon to your ReadyNAS.
- login with SSH, and edit*1 /etc/minidlna.conf and add settings to following:
( abbr. ) : : listening_ip=192.168.0.254 : : ( abbr. )
In this case, "192.168.0.254" is of 2nd interface.
btw, I am wondering why 1st and 2nd interfaces can be simultaneously used with above setting with firmware-4.1.5-beta-T74. Why? I feel lucky but it is a bug, isn't it?
いろいろわかってくるな MiniDLNA
- 対応している拡張子が少なすぎる.最新版の MiniDLNA ですらこの惨状.fuppes なら FLV も一応識別してたのに….最新版ベータファームウェアがいいとか適当なこといったやつデテコイ.
int is_video(const char * file) { return (ends_with(file, ".mpg") || ends_with(file, ".mpeg") || ends_with(file, ".asf") || ends_with(file, ".wmv") || ends_with(file, ".mp4") || ends_with(file, ".m4v") || ends_with(file, ".mts") || ends_with(file, ".m2ts") || ends_with(file, ".m2t") || ends_with(file, ".mkv") || ends_with(file, ".vob") || ends_with(file, ".ts") || ends_with(file, ".avi") || ends_with(file, ".xvid")); } int is_audio(const char * file) { return (ends_with(file, ".mp3") || ends_with(file, ".flac") || ends_with(file, ".wma") || ends_with(file, ".asf") || ends_with(file, ".fla") || ends_with(file, ".flc") || ends_with(file, ".m4a") || ends_with(file, ".aac") || ends_with(file, ".mp4") || ends_with(file, ".m4p")); } int is_image(const char * file) { return (ends_with(file, ".jpg") || ends_with(file, ".jpeg")); }
- 再起動毎に楽曲等のデータベースが壊れる./var/cache/minidlna/files.db が毎回消されている.シェル上から kill して /usr/sbin/minidnla を実行するなら消えないようだ.
- Xbox360 から 楽曲データのリストを作成しようとしたら,minidlna がハングアップした.エラーなどはでていない.
その他
- また Firefox で FrontView がまともに動かなくなりました.なんだかなぁ.
- BitTorrent のデータベースが粉砕☆されてました.自動で修復をはじめましたが,ため込んでるデータサイズにもよりますが結構かかるかもしれません.
*1:You can use "vi" editor.