NetBSDのLinuxエミュレーション

NetBSDにはLinuxエミュレーション機能があり、NetBSD上でFirefox/JDK等のLinuxバイナリを実行させることが可能となります。
ここではNetBSD/i386 3.1上で以下のLinuxバイナリを実行させる手順について簡単に紹介します。
・Linux版FirefoxとFlashプラグイン
・Linux版Firefox上のAdobe Readerプラグイン
・Linux版Firefox上のSun Javaプラグイン


(1)単体アプリケーションの導入



(2)Linux版FirefoxとFlashプラグインの導入

Linux版Firefox(firefox-binパッケージ)はFlashプラグインの導入で自動インストールされます。
ちなみにLinux版Firefoxのプログラムファイル名はfirefox-linuxです。
# vi /etc/mk.conf
以下の1行を追加します(Flashのライセンス同意指定です)。
ACCEPTABLE_LICENSES+=flash-license

# export ALLOW_VULNERABLE_PACKAGES=yes
# cd /usr/pkgsrc/www/firefox-bin-flash
# make MOZILLA_USE_LINUX=YES install

Linux版Firefox(firefox-linux)を起動してFlashサンプルサイトを表示してみました。





(3)Adobe Readerプラグインの導入

# export ALLOW_VULNERABLE_PACKAGES=yes
# cd /usr/pkgsrc/www/firefox-bin-acroread7
# make install

Linux版Firefox(firefox-linux)を起動してWebで公開されているpdfファイルを表示してみました。



(4)JDK/JREとJavaプラグインの導入

JDKとJREのファイルはmake installではダウンロードできません。
このためまずhttp://java.sun.com/products/archive/j2se/5.0_09/index.htmlから以下のファイルをダウンロードします。
Javaプラグインの導入ではJDKとJREの両方が揃っていなければならないようです。
・jdk-1_5_0_09-linux-i586.bin
・jre-1_5_0_09-linux-i586.bin
ダウンロードした上記ファイルは/usr/pkgsrc/distfilesに格納しておきます。

# vi /etc/mk.conf
以下の1行を追加します(Javaのライセンス同意指定です)。
ACCEPTABLE_LICENSES+=jdk13-license

# export ALLOW_VULNERABLE_PACKAGES=yes
# cd /usr/pkgsrc/lang/sun-jdk15
# make install
# cd /usr/pkgsrc/www/firefox-bin-java
# make install

# vi /etc/fstab
以下の1行を追加します。
procfs /emul/linux/proc procfs rw,linux

# vi ~/.profile
ulimit -d 262144
※「ulimit -d 262144」(単位:KB)はシェルが/bin/shの場合のデータサイズの指定方法です。
デフォルトのデータサイズ(131072)ではfirefox-linuxでのJavaVMの起動が失敗します(Could not reserve enough space for object heap)。

# reboot

Linux版Firefox(firefox-linux)を起動してWebで公開されているサンプルJavaアプレットを表示してみました。



Javaプラグインが導入されたfirefox-linuxが起動されていない状態でNetBSDネーティブ対応のfirefoxを起動してもJavaアプレットは表示されません


(5)firefox-linux起動エラー対策

NetBSD 3.1のfirefox-linux起動時、「Firefox is already running, but is not responding.」 エラーとなることがあります。
その場合は、/usr/pkg/emul/linux/root/.mozilla/firefox/xxxxx.default/lockを削除することで問題解消されます。
※/usr/pkg/emul/linux/root/.mozilla/firefox/xxxxx.default/.parentlockの方ではありません。