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というすばらしいソフトを開発してくれた開発者に感謝!!
構成は次のようになっています。
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を見つけることができません。
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というすばらしいソフトを開発してくれた開発者に感謝!!
Posted by mgw at 20:35│Comments(0)
│ソフトウェア