CG-NSC2100GT iTunesサーバとHDD自動停止

CG-NSC2100GTには一定時間HDDへのアクセスがないとHDDを自動で停止する機能がありますが、iTunesサーバを起動していると一定時間ごとに音楽ファイルをスキャンするらしく、HDD自動停止が働きません。
スキャン間隔を設定できればいいんですが、WEBの設定画面にはその項目無し。Linuxのターミナルで設定ファイルを直接いじるしかないようです。

  1. まず、Telnetでログイン可能とするために、MediaTomb 0.11.0 UPnP Server プラグインを導入。導入方法の詳細は、リンク先を参照ください。やることの概略は下記。
    1. Coregaファームウェア 01.03.2140.01以降用 (CG-NSC2100GT用)をダウンロードして、NASのPUBLICフォルダに保存。
    2. NASのWEB設定画面で、「システム管理」→「ファームウェア更新」→「アプリケーションの追加」で、上記PUBLICに保存したファイル名を指定して実行。NASを再起動。
    3. NAS共有ディレクトリの、COREGA_APP\MTOMB\server\telnet ファイルにtelnetを使用するユーザ名を書き込む。NASのユーザ管理で設定したユーザ名のどれか1つだけを使用。
    4. NASのWEB設定画面で、「mediatomb 0.11.0 UPnP Server」を「有効」にする。
    5. ポート2380からtelnetで指定したユーザでログインできるようになっている。ログイン後、sudo sh でrootになる。
  2. /APP/ITUNES/server/mt-daapd.src ファイルをviで編集。rescan_interval がスキャンの間隔(秒)。デフォルトでは設定値が60秒になってました(これは短すぎる)。0 にすると、自動ではスキャンせず、サービス起動時のみスキャン。

サービス起動時に読み込まれる設定ファイルは、mt-daapd.src ではなく mt-daapd.conf なのですが、サービス起動時にスクリプトで mt-daapd.src を読み込んで、サーバ名等をサーバ全体の設定内容に書き換えて、mt-daapd.conf を上書きしているようです。なので、mt-daapd.src を編集する必要があります。

iTunesサーバを再起動すると、自動スキャンが無くなり、HDD自動停止が働くようになりました。


2009/01/31追記:
自動スキャンをOFFにしている場合、MUSICディレクトリに追加したファイルをiTunesサーバで見えるようにするには、iTunesサービスを一旦無効にしてから再度有効にする必要があります。

CG-NSC2100GT iTunesサーバの文字化け

CG-NSC2100GTへ音楽ファイルを転送して、iTunesサーバを起動してPCのiTunesから見ると、いくつかの曲で日本語が文字化けしてました。大部分の曲は正常に表示されていたので、ID3タグの文字コードが一部違うのかなと推測。iTunesで直接見たら全部正しく表示されるのは、きっとiTunesが賢くて自動判別しているのかな。CG-NSC2100GTのiTunesサーバが自動判別できてなさそうなので、ID3タグの文字コードを全部そろえてあげれば正しく表示されるはず。

http://desireforwealth.com/diary/diary200111_1.shtml#column3416
を見ると、ID3のバージョンがv2.3以上なら、文字コードUnicodeに統一されるとのこと。iTunesのID3タグ変換機能を使って、下記手順で文字化け解決しました。

  1. CG-NSC2100GTのMUSICディレクトリをネットワークドライブに割り当て(以降このドライブをH:とします)。
  2. メニュー「編集」→「設定...」→「詳細」タブの中の「一般」タブで、「[iTunes Music]フォルダの場所」を「変更...」ボタンでH:に変更。ファイルのスキャンに数分かかります。
  3. ライブラリ→ミュージックの表示状態で、メニュー「編集」→「すべてを選択」
  4. メニュー「詳細」→「ID3タグを変換...」で、「ID3タグバージョン」にチェックを入れ、「v2.4」を選択し、「OK」。変換に少し時間かかります。
  5. CG-NSC2100GTのWEB設定画面で、iTunesサービスを一旦「無効」にし、再度「有効」にすると、変換が反映されているはず。

NAS買い替え(MZK-NAS02 → CG-NSC2100GT)

約1年MZK-NAS02を使ってましたが、いくつか不満があり解消されなかったので、CG-NSC2100GTに買い換えました。今のところ、安定しているし静かでかなり満足。まとめるとこんな感じ。

製品名 MZK-NAS02 CG-NSC2100GT
RAID1 ○対応 ○対応
iTunesサーバ ○対応 ○対応
ファンコントロール ×なし(ただし自力で導入) ○あり
HDD自動停止 ×なし ○あり
samba安定性 ×MACが起動してるとたまにフリーズ ○今のところ安定してる

MZK-NAS02は、自力でいろいろカスタマイズしたけど、HDD自動停止とsambaの安定性がどうしても解決できずあきらめました。HDDが止まらないと、夏場は温度が上がってファンも常に回りつづけてうるさかったのです。高かったけど、Linuxの勉強できたからまあいいや。いくらで売れるかなあ。

CGI::Sessionで不要な cgisess_* ファイルを削除

CGI::Sessionを使ってセッション管理を行っていると、ユーザにブラウザを閉じられるとセッションをdeleteできないので、cgisess_* ファイルがゴミとして残るという問題があります。
期限切れのセッションを探して削除する機能を自分で作らなきゃいけないかなーと思ってたら、ちょうどいいモジュールがありました。
CGI::Session::ExpireSessions
下記の方法で、ゴミとなった cgisess_* ファイルを削除できます。

  CGI::Session::ExpireSessions -> new(temp_dir => './tmp', delta => 3600 ) -> expire_file_sessions();

・60分(3600秒)更新されていない ./tmp ディレクトリ配下の cgisess_* を削除。

SoundBridgeのCGIインタフェース




http://inutch.xrea.jp/soft/rokuctrlperl/

FlashベースのリモコンソフトではPCの前に居ないと操作できなくて不便なので、Nintendo DS ブラウザをRokuのリモコンにしたくて作りました。Nintendo DS ブラウザに限らず、どんなブラウザでも使用できます。

SoundBridge のリモコンソフト


Roku SoundBridge のリモコンソフトをflex3で作りました。
http://inutch.xrea.jp/soft/rokuctrlswf/
大変そうなTelnet通信部分は、Flexターミナルエミュレータに含まれるライブラリを使わせてもらいました。ライブラリがとても使いやすくて助かりました。
今後、SongListを直接扱うバージョンも作りたいんだけど、仕事が忙しくなりそうなのでいつになるやら。


2008/11/19追記:

バージョンアップしました。
http://inutch.xrea.jp/soft/rokuctrlswf/
SoundBridgeからArtistList、AlbumList、SongListを取得してリスト表示し、リストから選曲できるようになりました。
SoundBridgeだいぶ使いやすくなったー!


2008/11/24追記:

バージョンアップしました。

  • NowPlayingリストの表示を追加
  • Artistリスト、Albumリストをキャッシュし表示の高速化
  • リモコンのボタンをアイコン化


2009/2/8追記:

ネットラジオの選局に対応しました。

Roku SoundBridge

テレビとかディスプレイを別途用意しなくても、単体でNASに保存した音楽ファイルの選曲/再生ができるネットワークプレーヤーをずっと探していました。スピーカーはショボイのが付いててもしょうがないので、オーディオ出力端子があってコンポから音を出せればOK。
そういう僕のニーズに合うのは、いろいろ探したけど、どうやら Roku SoundBridge しかないみたい。でも、日本語の曲名を表示できるのかが不安。
結果としては日本語表示できたんだけど、買うまでの経緯や、買った後の感想など書きます。

バージョンの違い

まず、WEBで見つけたのはこの記事。
http://ascii.jp/elem/000/000/084/84015/
製品名は、Pinnacle SoundBridge M1001 となっています。Roku SoundBridgeを日本向けにローカライズした製品らしい。気になっていた日本語も問題なく表示できてる。じゃあ、これを買えばいいのか!と思ってPinnacleのサイトを見に行くと、製品の紹介はあるけどストアには商品なし。検索しても Pinnacle SoundBridge を売ってる所が全然みつからない。もう製造してないのかな。
仕方ないので、Roku本家のサイトに行くと、日本語表示については "FAQ" -> "Where to buy & international orders" -> "Do you support languages other than English?" に情報あり。

In addition, the Roku SoundBridge Radio, Pinnacle SoundBridge Radio and Pinnacle SoundBridge M1001 models all ship a 32 pixel high display that can support the languages listed above as well as Chinese (Traditional and Simplified) and Japanese. SoundBridge model M500, M1000, M1001 and M2000 do not support the full UI in the Asian languages listed above.

縦32ピクセルのディスプレイを備える、Roku SoundBridge Radio, Pinnacle SoundBridge Radio, Pinnacle SoundBridge M1001 は他の言語と同じように中国語と日本語をサポートします。SoundBridge M500, M1000, M1001, M2000 はフルUIで上記のアジア言語をサポートしません。

"フルUIで"ってどういう意味?ということで、FAQでリンクされていたフォーラムの投稿を読むと、日本語フォントは16ピクセル以上の物しかないので、ディスプレイが16ピクセルのモデルでは、1行表示では日本語を表示できるけど、2行表示にするとフォントは8ピクセルになるので日本語表示できないらしい。
現在PinnacleとRokuのサイトに載ってる型を表にすると下記の通り。

モデル ディスプレイ縦サイズ 1行表示モードでの日本語表示 2行表示モードでの日本語表示
Roku SoundBridge M1001 16 ok NG
Roku SoundBridge Radio 32 ok ok
Pinnacle SoundBridge M1001 32 ok ok
Pinnacle SoundBridge Radio 32 ok ok

2行表示モードで日本語が表示できないのは残念だけど、SoundBridgeRadio の方はいらないし、Pinnacle の方は入手困難だし、Roku SoundBridge M1001 を買うことにしました。

購入

買うモデルが決まったので早速 Roku のオンラインショップで注文。海外の通販は初めてだったけど、意外とスムーズにいきました。国内のサイトで買うのとそんなに違いは無し。
1点問題があったとすれば、申し込んでから2日間ぐらい Status が Pending になっていたのでメールで問い合わせたところ、ZipCodeに日本の郵便番号を入力したので US Postal Service に Accept されなかったとのことでしたが、次の日には Accept されてました。
US Postal Servide のトラッキングを見ると下記のような感じ。1週間強で到着しました。受け取り時に関税700円の支払いが必要。

Label/Receipt Number: XXXX XXXX XXXX X
Detailed Results:

・ Delivered Abroad, October 25, 2008, 6:58 pm, JAPAN
・ At Foreign Delivery Unit, October 25, 2008, 7:00 am, JAPAN
・ Out of Foreign Customs, October 24, 2008, 4:50 pm, JAPAN
・ Into Foreign Customs, October 23, 2008, 10:23 am, JAPAN
・ Into Foreign Customs, October 22, 2008, 11:16 pm, JAPAN
・ Arrived Abroad, October 22, 2008, 11:15 pm, JAPAN
・ International Dispatch, October 21, 2008, 2:06 am, ISC SAN FRANCISCO (USPS)
・ Acceptance, October 20, 2008, 6:18 pm, SAN JOSE, CA 95101
・ Processed, October 20, 2008, 5:59 pm, SAN JOSE, CA 95101
・ Electronic Shipping Info Received, October 17, 2008

早速開梱してみると、意外と小さい。CDジャケットと比較。

初期設定

ネットワークは無線LANなので、接続は電源ケーブルとオーディオケーブルのみ。

起動したら、表示言語の設定(Englishを選択)やTimeZoneの設定に続いて無線LANの設定。WEPのSSIDと暗号化キーを入力。カーソルキーで1文字ずつ選んで入力するのは時間がかかるけど、最初だけなのでまあいいか。
ファームウェアのバージョン3.0からはWPAにも対応してるみたいなので、脆弱性のあるWEPはやめてWPAに変更すべきとは思いつつ面倒なのでそのままにしてます。

NASの曲を聴く

LAN内のNASで起動しているmt-daapdがすぐリストに出て、選曲や再生も拍子抜けするほど問題なく動作。
前述の通り、1行表示にしたら日本語は問題なく表示できます。

2行表示では日本語はすべて□になってしまいます。

ネットラジオを聴く

以前のバージョンでは、ネットラジオ局のリストは本体内のプリセットだけだったらしいですが、ファームウェアバージョン3.0からは、ラジオ局のリストをRadioRokuというサイトから取得するようになっていて、日々更新されるリストから選局できるようになっています。
PCからRadioRokuにアクセスすると、LAN内のSoundBridgeを見つけた後ユーザ登録を行います。なぜか自動では見つからなかったので、SoundBridgeのIPアドレスを直接入力して登録しました。
RadioRokuはかなり良くできていて、ネットラジオ局を検索した後、

  1. PCで再生する
  2. SoundBridgeで再生する
  3. RadioRokuのFavoritesに登録する
  4. SoundBridgeのPresetに登録する

という操作がPCからできます。Favoritesは、RadioRokuのWEBアカウント側に登録するリストで、数は無制限。Presetは、SoundBridge本体側に登録するリストで、最大18個まで。

ラジオ局は膨大な数あるので、気に入ったのを見つけるのはなかなか大変でした。僕のお気に入りのラジオ局リストは、また別の機会に紹介します。

WEBインタフェース

SoundBridgeのIPアドレスにhttpで接続すると、WEBインタフェースが開けます。いくつかの設定が行えるんですが、よく使っているのがPresetの編集。RadioRokuではサイトに登録されているラジオ局しかPresetに登録できませんでしたが、WEBインタフェースからはラジオ局のURLを直接入力してPresetに設定可能です。

RCP(Roku Control Protocol)

SoundBridgeはTelnetのインタフェースも持っていて、TelnetでSoundBridgeの5555ポートに接続すると、Roku専用のコマンドモードで動作します。
コマンドの詳細はこちらに掲載のPDFのドキュメント参照。
http://www.roku.com/community/developers_sb.php#RCP

ユーザーにより、PCからSoundBridgeを操作するリモコンソフトも作られています。
http://www.roku.com/community_3rd_sb.php

感想

買ってみて大満足です。買う前はNAS上の音楽さえ再生できればいいかなと思ってたんですが、RadioRokuのインタフェースも使いやすくてネットラジオ局探しに夢中になりました。WEBインタフェースも良くできてて便利だし、RCPで使い方が広がるのもいい。
これからRCP使ってコントローラーのプログラム作ってみようかな。