2010年12月06日

HX800とminidlna: サーバ立ち上げるぞ編

1つ前のエントリの続きです。

構成は次のようになっています。

TV: BRAVIA HX800
PC: ThinkPad T400, Windows XP
映像ストレージ: USB2.0 外付けHDD, NTFSフォーマット
VMPlayer: 3.1.1
ゲストOS: debian5 (lenny)


ウイルス対策ソフト

VMware Playerを使うときに面倒になるのがウィルス対策ソフトです。
対策ソフトのパーソナルファイアウォールがVMware Player上のゲストOSのネットワークアクセスを拒否することがあります。とはいっても個々のウィルス対策ソフトに依存するのでどうやれば良いかというのは一概に言えません。

手っ取り早いのはウィルス対策ソフトを無効にしてインストールや動作確認を行った後に、ウィルス対策ソフトの調整をすることでしょうね。ただし無効にすることによるリスクは十分承知の上で行ってください。

ちなみに技術屋はウィルスバスター2009を使っていますが、有効にしても動いています。とはいっても、過去にいろいろいじったかもしれませんが、もう覚えていません。


VMware Playerの入手とdebianのインストール

VMwareのこのページから無償でダウンロードできます。ただし、ユーザー登録が必要です。

適当にインストールして、早速仮想マシンを新規作成します。

ストレージサイズは4GBとしましたが、minidlnaだけ動かすならもっと小さくてもよいかもしれません。なお、minidlnaのインストールが完了した時点でのストレージ使用量は750MB程度でした。

ネットワークはブリッジ接続(オプションの”複製”をつける)です。ここ、重要です。ブリッジ接続にしないとHX800からVMware Player上のOSを見つけることができません。ただ、debianをインストールするだけならNATでもできました。(訂正)どうもdebianをインストールしたりaptでパッケージをインストールするときにはNATでないといけないようです。ただ、ウィルス対策ソフトで異なるかもしれません。

debainのインストールメディアはwww.debian.orgから「小さなCD」のisoファイルをダウンロードしますが、CD-Rに焼く必要はないです。ISOファイルのままVMware Playerに指定すればよいです。

debianのインストール方法はこちらを参考にしてください。

minidlnaだけを使うのならデスクトップ環境などは不要で、「標準システム」のみで問題ないです。


minidlnaのインストール

minidlnaはソースコードを入手可能ですが、コンパイルに必要なライブラリが多数あります。
以下がそのリストですので、apt-getで事前にインストールしておきましょう。

cvs
make
libavcodec-dev
libavformat-dev
libavutil-dev
libflac-dev
libvorbis-dev
libogg-dev
libid3tag0-dev
libexif-dev
libjpeg-dev
libsqlite3-dev


ここでminidlnaのソースコードをgetします。
この操作はrootである必要はなく、ユーザでもできます。というか、ユーザでコンパイル作業を行い、インストールや設定ファイルの編集などをrootで行うほうが安全です。

まず、適当なディレクトリを作ります。そして以下のコマンドを入力します($はプロンプトですので入力しません、念のため)。

$ cvs -d:pserver:anonymous@minidlna.cvs.sourceforge.net:/cvsroot/minidlna login

パスワードを聞かれますが単にENTER。そして以下のコマンドを入力します。

$ cvs -z3 -d:pserver:anonymous@minidlna.cvs.sourceforge.net:/cvsroot/minidlna co minidlna

minidlnaというディレクトリができているのでそこに移動しコンパイルします。

$ cd minidlna
$ make

無事コンパイルが完了したらrootになってインストール作業を続行します。

$ su (続けてrootのパスワードを入力)
# make install
# cd linux
# cp minidlna.init.d.script /etc/init.d/minidlna
# update-rc.d minidlna defaults
# cd /etc/init.d/
# chmod 755 minidlna
# /etc/init.d/minidlna start

これでminidlnaのインストールが完了しました。


NTFSフォーマットをサポートする

USB-HDDはNTFSフォーマットなので、これをサポートする必要があります。ここではntfs-3gパッケージを利用しました。apt-getでインストールしましょう。

# apt-get install ntfs-3g

USB-HDDを接続すると、VMware Playerが反応して仮想マシンに接続できるようになります。こちらの環境では/dev/sdbとして認識されましたので、次のようなコマンドでマウントポイントを設定し、マウントします。

# mkdir /video (これをマウントポイントとします)
# ntfs-3g /dev/sdb1 /video


minidlnaの設定ファイル編集

続いてminidlnaの設定ファイル(/etc/minidlna.conf)を編集します。ほとんど初期設定のまま使えると思いますので、以下の部分だけ変更しました。

minidlnaで扱いたいファイルのあるディレクトリを指定します。ここではUSB-HDDをマウントしたディレクトリを設定します。

media_dir=/video

DLNAクライアントに表示されるサーバ名を指定します。お好きな名前をどうぞ。

friendly_name=VM lenny DLNA Server

そしてデーモンを再起動します。

# /etc/init.d/minidlna restart

以上でDLNAサーバが立ち上がっているはずです。HX800がサーバを探せるかどうか確認します。


問題点

これでHX800のDLNAでHD画質を楽しむことができたのですが、問題点もあります。

まず、映像用ストレージをUSBにしたため、起動時に自動的にマウントされません。その状態でminidlnaサービスが起動するのですが、minidlna.confで指定したディレクトリが無いのでエラーが発生します。

なんの工夫も無い対処方法は、手動でマウント後、minidlnaサービスを再起動すればよいです。USB-HDDがあったら自動的にマウントするようにできそうですが、VMware PlayerがUSB-HDDを仮想マシンに接続していなければマウントどころの話ではないので、あまり真剣に対策する気がないです、ハイ。

ntfs-3gの動作が遅いです。特にゲストOS起動後に初めてUSB-HDDをマウントしたり、ファイルをアクセスするときなどはかなり時間を要します。でも、HD映像の送出には問題なさそうです。

そしてこれが一番の問題ですが、データベースのアップデートが行われません。

minidlnaはinotifyというツールというかOSの機構を利用して、media_dirで指定されたディレクトリにファイルが追加されたりすると自動的にデータベースを更新するようですが、USB-HDDが悪いのかNTFSが悪いのかわかりませんが、データベースが更新されません。

また、mindlnaが立ち上がっていないときにファイルがファイルが変更された場合のために、設定ファイルで指定された時間ごとにディレクトリをチェックして必要があればデータベースを更新する機能もあるようですが、これも機能しませんでした。

何が悪いのかはよくわかりません。ただ、少々乱暴な回避策はあります。minidlnaはデータベースファイルが無ければ作り直しますので、このデータベースファイルを消せばいいんです。以下のコマンドのようになります。

# /etc/init.d/minidlna stop
# rm /var/cache/minidlna/files.db
# /etc/init.d/minidlna start


終わりに

そんなこんなで、PCをDLNAサーバ、BRAVIA HX800をDLNAクライアントとしてHD画質でmpegファイルを表示させることができました。いやぁ、最近のTVって凄い進化してますね。技術屋にとってはいいおもちゃです。

そして、minidlnaというすばらしいソフトを開発してくれた開発者に感謝!!

HX800とminidlna: サーバ立ち上げるぞ編





同じカテゴリー(ソフトウェア)の記事
emacs23.2のdot.emacs
emacs23.2のdot.emacs(2010-09-25 01:50)


上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。