読者です 読者をやめる 読者になる 読者になる

OpenIndianaで楽しいDLNAサーバ

はじめに

せっかくopenindianaでちょっと素敵なNASを仕立てたので、NASに放り込んだコンテンツを有効活用すべくDLNAサーバを動かしたいと思うのは当然の流れですよね。だがしかし、そこはopenindiana(以後面倒なのでoiと略す)。oiは素人に大変厳しいOSなので、aptやらyumやらでヒャッハーすることなんてできやしない。pkgなるapt相当のものがあって、多少はものが入るんだけど、種類が少なかったり古かったりでいまいちだし*1、もちろんDLNAサーバなんていう気の利いたものがあるはずもない。 そこで、VM上でLinuxを動かして、LinuxDLNAサーバをやらせることにした。

環境
  • hpの初代microserver
  • openindiana 151a
Virtualboxの準備

oiにはSolarisコンテナなる仮想化環境があるらしい。しかし、Linuxが動くのかどうか全くわからなかった*2ので、多少は親しみのもてるVirtualboxを使うことにする。もともとSunがやってただけあって、oi用のバイナリもちゃんとあるのが素晴らしいですね。

# 本体のダウンロードとインストール
$ wget http://download.virtualbox.org/virtualbox/4.3.6/VirtualBox-4.3.6-91406-SunOS.tar.gz
$ tar xvf VirtualBox-4.3.6-91406-SunOS.tar.gz
$ sudo pkgadd -d VirtualBox-4.3.6-SunOS-amd64-r91406.pkg

# extpackのダウンロードとインストール
$ wget http://download.virtualbox.org/virtualbox/4.3.6/Oracle_VM_VirtualBox_Extension_Pack-4.3.6-91406.vbox-extpack
$ sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.3.6-91406.vbox-extpack
VirtualboxLinuxを動かす

普段はGUIでやってる仮想マシン作成をコマンドラインでやるのは結構大変。マニュアルを読みながら、時にGoogleに教えてもらいながらやるんだけど、マニュアルを読むのが一番正確だしわかりやすいと思う。普段はDebianな僕だけど、今回は何を思ったかUbuntuにした。

# VM作成
$ VBoxManage createvm -name "ubuntu" -register

# 基本設定。DVDのブート順位を上げる。DLNAサーバにするのでブリッジ接続にする。
$ VBoxManage modifyvm "ubuntu" --ostype Ubuntu_64 --memory 1536 -acpi on -boot1 dvd -nic1 bridged --bridgeadapter1 bge0

# 仮想HDD用のファイルを作る。特に何も調べずにVDIにしてしまったけど、よかったんだろうか。。。
# サイズはMB単位で指定
$ VBoxManage createhd -filename "ubuntu13.vdi" -size 20000

# 仮想SATAポートを用意する
$ VBoxManage storagectl "ubuntu" --name "SATA" --add sata

# SATAポートにHDD用ファイルとISOファイルをぶら下げる
$ VBoxManage storageattach "ubuntu" --storagectl "SATA" --port 0 --device 0 --type hdd --medium ubuntu13.vdi
$ VVBoxManage storageattach "ubuntu" --storagectl "SATA" --port 1 --device 0 --type dvddrive --medium ubuntu13.iso

# VM起動。画面を飛ばすのがちょっと面倒だったので、RDPでつなぐために以下コマンドで起動する。
$ VBoxHeadless --startvm "ubuntu"

# Linuxのインストールが終わったら、一旦シャットダウンしてISOファイルをアンマウントする。
$ VBoxManage controlvm "ubuntu" poweroff
$ VBoxManage storageattach "ubuntu" --storagectl "SATA" --port 1 --device 0 --type dvddrive --medium none

# 再度VMを起動
$ VBoxHeadless --startvm "ubuntu"
NFSマウントとDLNAサーバの準備

ubuntuを入れたので、あとはずいぶん楽。DLNAサーバはmediatombがあるし、ファイルはNFSでアクセスすればいい。

# まずは必要なものをインストール
$ sudo aptitude install nfs-common nfs-client mediatomb

# NFSでマウントする
$ sudo mount -t nfs <サーバ名>:/path/to/share/dir /path/to/mount/point
mediatombの設定

ここここを見ながらやる。 拡張子によってはmediatombにスキャンしてもらえない場合があった*3ので注意。これで完成。

iPadで試運転してみたけど、特にストレスなく動画が見られて大変ハッピー。

おわりに

OpenIndiana(でLinuxを動かした上)でDLNAサーバを動かすことができた。OpenIndianaはもうちょっといろんなパッケージを使えるようにしてくれないかなあと思う次第です。

*1:なぜかgccは普通にいれるとgcc-3が入ってしまうし、tmuxもない。

*2:何となくではあるが動く気はしなかった

*3:なぜか僕の環境では.tsは無視されたので、わざわざ.mpgをつけた。完全に無駄だし、美しくない。