2010年8月18日水曜日

Chromium + Moonlight on Ubuntu 10.04

このエントリーをはてなブックマークに追加
プラグインとして認識される、が。

ちょっと前のブログ記事になりますが、Linux 版の Chrome/Chromium で Moonlight が有効になることを知りました。


拡張機能として登録するということで、ちょっと試してみようと思ったのですが、いかんせん Moonlight のビルドが必要ということで、二の足を踏んでおりました。

そんな中、Mono 公式サイトにある Moonlight のページをだらだらと見ていたのですが、どうやら Ubuntu 用のパッケージがあるみたい。

今まで、Firefox のアドオンとして、こちらのページから Moonlight を導入したことはあったのですが、同等のものなのでしょうか?

結論から言えば、Firefox 用の Moonlight プラグインを提供するパッケージなのですが、Chromium のプラグインとしても認識されることが分かりました。すばらしい。

moonlight-plugin-mozilla パッケージのインストール

パッケージを導入するだけ、と聞くと、まったく抵抗感はなくなります。

$ sudo apt-get install moonlight-plugin-mozilla

たったこれだけです。

Chromium は、Daily Builds 版を使っております。



インストールされる Moonlight のバージョンは 2.2 なのですが、悲しいかな、Chromium 上での動作は完全とは言えないようです。

こちらで、サンプルサイトとして挙げられている SmoothHD は、見れませんし(Firefox(3.6.8)上では見ることができた)、コンソールから Chromium を実行してみたら、「libmoonplugin-webkitbridge.so」が見つからない、と出力されております。なんぞそれ、パッケージ内にそんなモジュールは存在しませんし。

ということで、パッケージ導入で楽できた、と喜んだのも束の間、まだ安定版には遠いという感じでしょうか。間もなくリリースされる予定(Q3 2010)の Moonlight 3 に期待したいところですが、Ubuntu 用のパッケージが提供されるのはいつ頃になるのか、また改善は見られるのか、気になってきました。そこで、

Moonlight(svn trunk)のビルドをしてみた

なんらかの改善はあるだろうと、結局やってみることにしました。Moonlight のビルドには、適時対応するビルド用 Mono 環境が必要になります。

ビルドに必要なパッケージのインストール

既にインストールしていたり、個々の環境で違いはあるかもしれませんが、以下のパッケージをインストールしました。
$ sudo apt-get install autoconf bison gettext g++ libdbus-1-dev libdbus-glib-1-dev libexpat1-dev libgtk2.0-dev libnss3-dev libpoppler-glib-dev libpulse-dev librsvg2-dev libtool libwnck1.0-cil-dev libxmu-dev libxtst-dev xulrunner-1.9.2-dev

必要なソース資源のダウンロード

任意のディレクトリで、以下を実行します。
$ svn co http://anonsvn.mono-project.com/source/trunk/moon
$ svn co -r 160675 http://anonsvn.mono-project.com/source/trunk/mono
$ svn co -r 160675 http://anonsvn.mono-project.com/source/trunk/mcs
$ svn co -r 160675 http://anonsvn.mono-project.com/source/trunk/mono-basic

svn checkout 時の mono、mcs、mono-basic のリビジョン番号については、moon 配下の README に記述がありますので、それに従って下さい。

pixel shader support を有効にする場合は、次の資源も必要に。
$ git clone git://anongit.freedesktop.org/mesa/mesa
$ cd mesa
$ git checkout 3ed0a099c70e9d771e60e0ddf70bc0b5ba83a483 -b moonlight
$ ./autogen.sh --with-driver=xlib
$ cd src/gallium
$ make

ffmpeg support を有効にする場合は、ffmpeg の資源が必要になるのですが、事前に、Pigumer Group:Ubuntu 10.04にffmpegをインストールしてiPod touch用のmp4を作成を参考にして、ffmpeg のインストールを行っていたので、資源的には、これで大丈夫でした。

実行後のディレクトリ構成は、次のようになります。
$ ls
mcs  mesa  mono  mono-basic  moon

Moonlight のビルド

moon 配下の README に、三つの方法が記述されていますが、その内の Manual Mode、Mono を手動でビルドしてから、Moonlight のビルドを行う方法をとりました(一番楽そうな Automatic Mode でのビルドは、途中でエラーが発生してうまくいかなかった)。

Mono のビルドでは、次のようなビルド用環境変数設定ファイル「mono_build_env」を用意して、
#!/bin/bash
export MONO_HOME="/opt/mono/trunk"
export PATH="$MONO_HOME/bin:$PATH"
export LD_LIBRARY_PATH="$MONO_HOME/lib:$LD_LIBRARY_PATH"
export PKG_CONFIG_PATH="$MONO_HOME/lib/pkgconfig:$PKG_CONFIG_PATH"
export MANPATH="$MONO_HOME/share/man:$MANPATH"
export XDG_DATA_DIRS="$MONO_HOME/share:$XDG_DATA_DIRS"
以下を実行します。
$ . mono_build_env
$ cd mono
$ ./autogen.sh --prefix=$MONO_HOME --with-moonlight=yes
$ make
$ sudo paco -D make install

Moonlight のビルド時に、gtk-sharp 2.0(2.12)のいくつかのアセンブリが必要になったので、インストールを行いました。
$ wget http://ftp.novell.com/pub/mono/sources/gtk-sharp212/gtk-sharp-2.12.10.tar.bz2
$ tar -xvf gtk-sharp-2.12.10.tar.bz2
$ cd gtk-sharp-2.12.10
$ ./configure --prefix=$MONO_HOME
$ make
$ sudo paco -D make install

そして、Moonlight のビルドになります。
$ cd moon
$ ./autogen.sh --with-manual-mono=yes
$ make
$ sudo paco -D make install

試してみる

上記でインストールした「moonlight-plugin-mozilla」パッケージ(とその依存パッケージ「libmoon」「moonlight-plugin-core」)をアンインストールして、以下を実行後(~/.mozilla/plugins/ 配下に libmoonloader.so がコピーされる)、Chromium を起動します。
$ cd moon
$ make test-plugin




インストールした Moonlight のバージョンは、2.99.0.8.99 で、サンプルサイトのうち、2.2 ではうまく動作しなかった Experience Smooth Streaming が見れるようになり、SmoothHD では、UI が少しずつ表示された末にクラッシュと、おしい?ところまできています(しかし、この占有メモリは占有しすぎだろ)。がんばって、Moonlight の中の人、であります。

0 件のコメント:

コメントを投稿