ReadyNAS ファームウェア更新

最新のベータ版の調子がよいということですので,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 は,二枚目の NICIPアドレスです.

詳細はこのへんを参照してください.
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.

  1. Install SSH daemon to your ReadyNAS.
  2. 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.