気の向くままに辿るIT/ICT/IoT
システム開発

QEMUにNetBSDをインストール

ホーム前へ次へ
ゲストOSとしてBSD/PC-UNIXをインストール【QEMU】

仮想マシンで動くOS

QEMUにNetBSDをインストール

 なぜか、当サイト検証ホスト環境では、仮想化ソフトウェアの1つVirtualBoxで作成した仮想マシンゲストOSとしてインストールできなかったNetBSDを、やはり、仮想化ソフトウェアの1つであるQEMUの仮想マシンのゲストOSとしてインストール及び起動する方法について記します。

 => VirtualBoxでも代替策としてVirtualBoxマネージャからではなく、端末からVBoxSDLコマンドを使用してNetBSDをインストール及び起動する方法がありました。

 後述しますが、NetBSDは、VMware Player 3.1.6でもスムースにインストールできますし、QEMU上で作成したNetBSD環境をVMware Player用(.vmdk)に変換して利用することもでき、代替策を使えば、VirtualBoxでもインストール可能です。

[仮想化ソフトウェア]

QEMU / QtEmu

[ホストOS]

Windows Vista Home Premium
SP2/Service Pack 2
x86/32ビット

[ホスト環境]

CPU:Intel Core2 4300@1.80GHz
CPU Architecture : x86/32bit
仮想化支援機能(Intel VT-x)なし
RAM:1GB

Screenshot/スクリーンショット

NetBSD 6.1.2
NetBSD 6.1.2

NetBSD 6.1.2

 今回は、NetBSD 6.1.2(下記ISOディスクイメージ)を使用させて頂きました。

 と言いつつ、ファイル整理の都合上、名称を変更してしまっていたようで元のファイル名は、おそらくboot.iso、更に本家かSourceForgeだと思うものの、どこで取得したか記憶が曖昧ですが、これがダメでもnetbsd612_spair_boot-com.iso(元の名称は、たぶんboot-com.iso)が使える可能性があるという情報から2つともダウンロード、今回、QEMUでは、boot.isoを使い、FTP経由で無事インストールできました。

 NetBSDは、386BSDからセキュリティ強化と高速性、移植性を高めるべく派生し、後に4.4BSD-Liteの差分も取り込んだBSDです。

 NetBSDから更なるセキュリティ強化を目指して派生したものにOpenBSDがあります。

 同じく386BSD、特許絡みで4.3BSD Net/2、最終的に4.4BSD-LiteをベースとしたものにFreeBSDが、FreeBSD 5の開発に当たり、マルチコア対応の技術的相違からFreeBSD 4をベースとして派生したものにDragonFly BSDがあります。

NetBSDで必要なメモリ量

 NetBSD(CUIベース)については、QEMUで試したところメモリ24MB以上で起動しました。

 ftp://ftp.jp.netbsd.org/pub/NetBSD/NetBSD-6.1.2/i386/INSTALL.txtによるとNetBSD 6.1.2は、x86系については、i486やCPU1~32個を持つ最新PC互換システム上で実行でき、完全な最小構成の標準インストールならRAM:32MB以上、HDD:250MB以上あればよいとあります。

 特に指定がない限り、このページで示すRAM値は、各仮想化ソフトウェアでの仮想マシン作成時に指定した値であり、少なくとも一定以上のRAM値を指定した場合においては、そこから仮想化ソフトウェアが消費するメモリを差し引いた値が、ゲストOSで利用可能なRAM総容量として割り当てられているようです。

 尚、各種アプリケーションが必要とするメモリ量は考慮していません。

 ちなみにウィンドウマネージャ上でシステム情報を表示してくれるConkyの情報によれば、QEMUでRAMに48MB割り当てた時、デスクトップ上では、RAM最大34MB、スワップ領域に64.5MB確保されているようで、しばらく放置した後の実際のRAM使用量は、14MB前後、スワップ領域使用量は、16MB前後となっています。

NetBSDのLiveCDとインストール

 NetBSDは、当該検証で取得したディスクイメージは、起動ディスクとしてのブータブルCD(イメージ)であり、この場合、システム自体は、インストール中に別途CD/DVD、そのほかHTTPやFTP、内部ネットワークブートによるインストールなどを選択することになります。

 インストール中、NetBSDのインストーラがネットワークインタフェースを自動的に見つけ出してくれるものの、pingテストでエラーとなり、心外でしょうが、ネットワークが正常につながっている(FTPやHTTPなら仮想マシンからインターネットに接続できる状態にある)という確信がある場合は、ここは、無視してOKです。

 QEMUのドキュメント(*)によるとpingコマンドは、root権限を要することからインターネットへの接続が必ずしも保証されるわけではない為、たとえQEMUの仮想ネットーワークからインターネットにつながっていたとしても、pingが接続エラーを返すようなことが起こり得るとのことです。

 しかし、その後、上手く圧縮ファイルにアクセスし、展開しているのに最終的に画面が猛スピードでスクロールした揚句、インストールに失敗する場合があります。

 そうした場合、ついつい、ネットワークに問題があるのではないかと思ってしまいがちですが、インストール用のディスクスペースの割り当て量が不足することに起因する場合もあり、その場合、十分に割り振り直すか、よくわからなければ、ディスク全体をNetBSD形式でフォーマットすれば、エラーを回避し、残りわずかな次のステップに進み、インストールを完了することができます。

 ただ、インストール中、そこまで進んだ後、ディスクスペースの割り当てまでは戻れないので一度終了してから起動して再割り当て、または、仮想マシンを削除して改めて作成するところからやり直すことになるでしょう。

 NetBSDのパーティショニングについては、スライス(BIOSパーティション)BSDパーティションを参照下さい。

NetBSD 6.1.2インストールタイプ選択画面
NetBSD 6.1.2インストールタイプ選択
NetBSD 6.1.2インストール情報画面
NetBSD 6.1.2インストール情報
インストール中の画面

 それらの点をクリアすれば、後は問題なくインストールできるでしょう。

 インストール時、スクリーンショット(上)にあるようにインストールタイプの選択で[a:Full Installation]を選択していれば、その後もすんなり利用できるでしょう。

 ただ、[b:Installation without X11]を選んでやっぱりX Window Systemが必要となった(startxしたい)場合や[c:Minimal installation]などを選んで後でいろいろと不足するものが出てきた場合、[d:Custom installation]を選んで後で追加したいものが出てきた場合などは、初めてNetBSDを使う場合、他ではないような意外な手順が必要となります。

 最初にNetBSDをインストールした際、たぶん[Minimal installation]を選んだのだと思いますが、後にも先にもこれまで試したLinuxやPC-UNIX、BSDの中でも意外な手順が必要だったので当初、かなり戸惑いました。

 インストールできたことに満足し、その後は、NetBSDは、ずっと放置状態となっていたのですが、RAM128MBの古いマシンのセキュリティサポートの切れたOSを入れ替えたいとの思いからPuppy系、Damn Small Linux(DSL)、Tiny Core Linuxでは飽き足らず、CUIのLinuxにウィンドウマネージャ+日本語環境でいけるかもとArch Linux、これが時と共にスペックにマッチしなくなり、より少ないRAMで動いたNetBSDやOpenBSDならかなり見込みありと思い立ち、NetBSDでstartxを試してみたら。。。なんとstartxコマンドがない。。。ああでもないこうでもないやった挙句、/usr/INSTALLに気づき。。。

 なんとかできたと思った矢先、仮想ハードディスクが壊れ、起動しなくなったことから、やり直すことになりましたが、やり直したからこそ、それ以前にハマったからこそ、再インストール時に初めて気づくこと、ようやく理解できることが多々ありました。

 まず、NetBSDでは、ソースからコンパイルすることもできますが、セキュリティリスクを考慮する前提でバイナリをダウンロードして展開する方法も用意されています。

 バイナリを利用するにしても、もし、インストール時に[c:Minimal installation]を選んだ場合には、なにはともあれ、インストール時に表示されるインストール情報(スクリーンショット(下)参照)の通り、(/usr/INSTALL)ディレクトリに置かれている、または、[.../target_architecture/binary/sets/]からダウンロードすることになる圧縮されたtarball(.tgz)を展開することから始まります。
(最初これが全くわからず、これを知るまで相当時間がかかったことがハマった唯一にして最大の要因。)

 インストール後、追加する場合には、[/usr/INSTALL/]に移動(cd)して利用する本家もしくは、ミラーサイトなどの当該パス(今回は、ftp://ftp.jp.netbsd.org/pub/NetBSD/NetBSD-6.1.2/i386/binary/sets/)から必要なtarballをダウンロードの上、tarで/(ルート)に展開するだけでインストールしたのと同様になります。

# cd /usr/INSTALL/ 
# ftp ftp://ftp.jp.netbsd.org/pub/NetBSD/NetBSD-6.1.2/i386/binary/sets/TARGET.tgz 
# tar xvzf TARGET.tgz -C / 

 つまり、インストール時に先のスクリーンショットの画面上で選んだメニューに応じて、このようなダウンロードも(tarコマンドによるバイナリの)展開も([a:Full Installation]の場合には、全て)自動で行ってくれているということになります。

 このことは、ftp://ftp.jp.netbsd.org/pub/NetBSD/NetBSD-6.1.2/i386/INSTALL.txtを見るまで理解できませんでした。

 そもそもftpサイトにあるテキストドキュメントに目を通す習慣は全くなかったことからしてそこに行き着いたのは、半ば奇跡に近いと言えます。(いや、ちゃんと読めよって話ですけど。)

 インストール後、ソフトウェアパッケージをインストールする際には、pkg_addを使いますが、インストール時の設定によっては、NetBSDインストール直後は、その[pkg_add]もインストールされていない場合もあるので[ftp://ftp.netbsd.org/pub/pkgsrc/]などから[current](最新)ディレクトリにあるpkgsrc.tar.gzや[pkgsrc-]に続けて西暦4桁+四半期(Q1/Q2/Q3/Q4)から成るディレクトリ内の同様に名前付けされたpkgsrc-20xxQ1.tar.gzなどのtarballの圧縮ファイルをダウンロード、展開する必要があります。

 尚、使用したNetBSDのCD/DVDやISOディスクイメージとpkgsrcのtarballはマッチさせる必要があるようです。(NetBSDが最新ならpkgsrcのtarballもcurrentのpkgsrc.tar.gzなど)。

 ウィンドウマネージャ含むデスクトップ環境を導入したい場合も[b:Installation without X11]や[c:Minimal installation]だとNetBSDインストール直後は、特定のウィンドウマネージャやデスクトップ環境はもとより、Xorg(やFree86)もインストールされていないので[pkgsrc]がインストール・展開済みであれば、次のページのようにX用の環境変数の設定及び各種関連パッケージのインストールを行うことで[startx]コマンドの実行が可能となります。

 英文ですが、そのほとんどがコマンド行なので問題ないでしょう。

 更に必要なウィンドウマネージャやデスクトップ環境をインストールして[~/.xinitrc]ファイルなどを適宜追記編集することで[startx]とした時、そこで設定したものを利用できるようになります。

 これはこれで良いのですが、その後、他に何かやらかしたようで一度、haltし、終了させ、後に起動しようと思ったら、前述の通り、起動できなくてやり直す羽目になり、むしろそれが、NetBSDを理解する第一歩となったという次第です。

NetBSDのCUI/CLIに日本語キーボードを設定

 インストール時に設定しなかった場合などインストール後にログインシェルにおいて日本語キーボードに変更したい場合には、/etc/rc.confで[wscons=YES]という行があることを確認(、NOならYESに変更、なければ行追加)の上、/etc/wscons.conf内の[encoding en]を#(シャープ・ポンド)を付けてコメントアウトするなりして代わりに[encoding jp]という行を追加し、再起動します。

 再起動後は、何らかの事情で一時的に変更したい場合には、[wsconsctl]コマンドを使用することができます。

 尚、後述のように、ここで設定済みでもX Window Systemについては、キーボードに関して追加で設定が必要となります。

NetBSDのパッケージ管理

 NetBSDのパッケージの管理には、pkg_add/pkg_info/pkg_deleteといった[pkg]と[アンダースコア]に続く[pkg_]といったコマンドで行い、パッケージの取得元とするHTTPやFTPサイトは、環境変数[PKG_PATH]に設定します。

 pkg_addしたプログラムは、デフォルトでは、/usr/pkg/以下にインストールされます。

 また、pkgsrc(例:ftp://ftp.jp.netbsd.org/pub/pkgsrc/current/)内の当該tarball(例:pkgsrc.tar.gz)をダウンロード、tarのCオプションで/usrディレクトリを指定して展開した際にできる/usr/pkgsrcディレクトリ内にある当該ソースディレクトリに[cd]した後、[make install]することもできます。

# ftp ftp://ftp.jp.netbsd.org/pub/pkgsrc/current/pkgsrc.tar.gz 
# tar -xvzf pkgsrc.tar.gz -C /usr 
# ls /usr/pkgsrc 

 尚、最新の[current]の他、安定版の[stable]などもあり、[stable]を使う場合には、パスの[current]部分を[stable]に置き換えてください。

 何かの折にやってみた際、なぜか、QEMU上では、make installできず、VMware Player上では、できました。

[追記]
 VirtualBox上でもmake installできました。

 ちなみにインストール自体が終了した直後、継続するメニューから設定ファイルの編集やpkgsrc(/usr/pkgsrc/)をセットアップ、インストールするか否かの設定もできるようになっています。

 ただ、その都度、tarballをダウンロードしてインストールする方法は、時と共に削除されるかもしれないソースをも含み、不整合を起こす可能性もある為、より推奨されるのが、常に最新の状態を保持できるよう管理するCVS/Concurrent Versions Systemからソースを取得してインストールする方法、アップデートにしてもCVSを利用してローカルのpkgsrcを一括で最新にアップデートした上、コンパイル/インストールしたり、その最新のpkgsrcを基にインストール済みパッケージのアップデートを行ったりする方法のようです。

NetBSDのデフォルトlogin shell

 NetBSDのデフォルトのログインシェル(shell)は、NetBSD 4.0まではcsh、起動時に読み込む初期ファイルは、ホームディレクトリの[ .profile ]や[.cshrc]なので起動時に環境変数を有効にしたい場合は、ここで設定し、その変数を[ setenv PKG_PATH "(HTTP/FTPサイトURI...etc.)" ]などとしておきます。

 NetBSD 4.0より以降は、sh(Bourne Shell)が標準となっており、起動時に読み込む初期ファイルは、ホームディレクトリの[ .profile ]や[.shrc]なので起動時に環境変数を有効にしたい場合は、ここで設定し、その変数を[ export PKG_PATH=(HTTP/FTPサイトURI...etc.) ]などとしておきます。

# setenv  PKG_PATH  "ftp://ftp.jp.netbsd.org/pub/pkgsrc/packages/NetBSD/i386/6.1.2/All/" 
# chsh -s /bin/sh user_name

 NetBSDでは、rootまたはログインユーザー(user_name指定必須)が、すぐにログインシェルを変更したい場合、/etc/shellsを参照して利用可能なshellを確認の上、chshコマンドを利用することができます。

 この時、一般ユーザーは、自身のuser_name指定が必須、rootは、省略すると自身の、他のユーザー名を指定すると当該ユーザーのshellを変更できます。

# pkg_add bash 

 また、/etc/shellsに使いたいshellがない場合でも[ftp://ftp.jp.netbsd.org/pub/pkgsrc/packages/NetBSD/i386/6.1.2/All/]など[.../target_architecture/NetBSD_Version/All/]ディレクトリ(や[.../target_architecture/NetBSD_Version/]ディレクトリ以下の個別ディレクトリ)内にあれば、pkgsrc(pkg_add)を使ってshellをインストールすることもできます。

NetBSDのデスクトップ環境・ウィンドウマネージャ

 NetBSDでは、少なくともインストール時に[Full Installation]を選択していれば、startxコマンドやxinitコマンドも既にインストールされているのでX上でターミナルが立ち上がるところまでは難なくできます。

 また、GNOME、KDE、xfce4といったデスクトップ環境や9wm(分散OS Plan 9用ウィンドウマネージャ8-1/2のエミュレート版Window Manager)、dwm/dynamic window manager、JWM/Joe's Window Manager、IceWM、Enlightenment(E17)、Blackbox/Fluxbox、Openbox...etc.と豊富なウィンドウマネージャもバイナリとして用意されており、[~/.profile]などで本家もしくはミラーサイトの当該パスを環境変数PKG_PATHに設定すれば、Chapter 9. Xにあるように利用したいものをpkg_addで取得し、すぐに利用することができます。

 ちなみにPKG_PATHに設定済みか否かに関わらず、パス付でダウンロードするファイルを指定することもできます。

# pkg_add ftp://ftp.jp.netbsd.org/pub/pkgsrc/packages/NetBSD/i386/6.1.2/All/file_name 

 さらっとですが、いくつか試してみたところJWM、OpenboxやFluxboxは、すんなり導入できました。

 当然、追加するソフトウェアに大きく左右されますが、この時点でOpenboxは、QEMUの指定値としてRAM:24MBでも起動はするものの、実用に堪えず、それでも32MB以上あれば軽快、fluxboxでは32MBだと微妙、48MB以上あれば軽快です。

NetBSD 6.1.2デスクトップ画面例
NetBSD 6.1.2デスクトップ画面(クリックで拡大)

 後述しますが、Openboxに加え、Gedit、Idesk、Conky、scim-anthyを入れてみると見た目はこんな感じです。

 ただ、geditは、RAM128MBでも重い(し、scim-anthyが対応せず、日本語入力できなかった)ので実際には、48MBでもそれなりに動く(scim-anthy対応の)Leafpadに変更、Openboxのメニュー操作やLeafpad、vi、ROXファイルマネージャは軽快です。

NetBSDの日本語環境

# pkg_add -v scim-anthy 
# pkg_add -v ibus-anthy 

 NetBSDでは、日本語環境もscim-anthyやibus-anthyなどInput Method/IM(scim、ibus...etc.)と日本語入力システム(anthy、mozc...etc.)のセットのバイナリが用意されているのでpkg_addで簡単に追加できるようになっています。

# pkg_add -v scim-anthy 

 今回は、scim-anthyとウィンドウマネージャにOpenboxを使うことにしました。

 pkg_addは、必要ファイルの依存関係も面倒を見てくれるのでこれだけでOKです。

$ sudo cp /etc/X11/xinit/xinitrc ~/.xinitrc
$ sudo vi ~/.xinitrc
 #!/bin/sh
 ...
 LANG=ja_JP.UTF-8
 XMODIFIERS="@im=scim"
 GTK_IM_MODULE="scim"
 QT_IM_MODULE="scim"
 export LANG
 export XMODIFIERS GTK_IM_MODULE QT_IM_MODULE 
 openbox-session 
 ...
$

 そこでX用の言語設定、scim-anthy設定のための環境変数設定を行い、~/.config/openbox/autostartファイルを利用することにした為、(サンプルがあるはずなので探してコピーした)~/.xinitrcに[openbox]コマンドではなく、[openbox-session]コマンドを追記しました。

 このように記述することで~/.config/openbox/autostartを読みに行くようになるとのことです。

# mkdir -p ~/.config/openbox/
# cp /usr/pkg/etc/xdg/openbox/* ~/.config/openbox/

 Openbox用のユーザーごとの設定ファイルは、[~/.config/openbox/]ディレクトリを新規作成してそこに置くようになっており、Openboxインストール時にできているはずの/usr/pkg/etc/xdg/openbox/から全てのファイル[autostart]、[environment]、[menu.xml]、[rc.xml]をコピーします。

 ... 
 scim -d &
#  ibus-daemon -drx
 idesk -d &
 conky &
~/.config/openbox/autostart

 [~/.xinitrc]で[openbox-session]を追記してOpenboxの[~/.config/openbox/autostart]を使う場合には、基本的に裏方で走らせるデーモンは、全てそこに追記するとよいでしょう。

 今回は、インプットメソッドscimの他、システム情報など各種情報をデスクトップ上に表示してくれるConkyとデスクトップアイコンを作成・設置できるideskもインストールしたので併せて追記しています。

[追記]

 この時、日本語表示用フォントがないと、いわゆる豆腐化した文字化け状態になります。

 そうした場合、例えば、フリーで入手可能な日本語フォントであるIPAfontやIPAexfontのzipファイルをダウンロードさせて頂き、この手順で展開及びフォントキャッシュの更新を行うと良いでしょう。

[随分たってから更に追記]

 あ。。。リポジトリにバイナリパッケージもありました。。。[ipafont]、[ipaexfont]をpkg_addやpkgin installしてもよいでしょう。

 尚、同ファイルの以降にウィンドウマネージャを設定することになりますが、JWM/Joe's Window Managerを使う場合には、バックグラウンドで実行するつもりでアンパサンド(&)を付けないようにしましょう。(JWMの場合、付けてしまうとウィンドウが強制終了される場合があります。)

Section "InputDevice"
  Identifier     "Generic Keyboard"
  Driver         "kbd"
  Option        "XkbRules" "xorg"
  Option        "XkbModel" "jp106"
  Option        "XkbLayout" "jp"
  Option        "XkbVariant" ",qwerty"
EndSection
/etc/X11/xorg.conf.d/keyboard.conf

 X上で日本語キーボードを使いたい場合、前述のCUI上での日本語キーボード対応とは別に設定する必要があり、xfree86ではなく、xorgを使っている為、www.x.orgのkbd.4を参考にkeyboard.confにxorg用の[Section InputDevice]を設定したところ、日本語キーボードになりました。

 xorgは開発が継続されているのでkeyboard.conf内で利用できる設定値も時の経過と共に増えることも珍しくないようです。

[追記]
 後に[keyboard.conf]などでなくても直接xorg.confを編集することも別段タブーでもなくなったようです。

[追記]
 Xorgがモジュール化されたのに伴い?以下の手順において更に少し方法が変わったようで[Xorg -configure]が不要となり、[X -configure]で[xorg.conf.new]が生成され、[X -configure xorg.conf.new]などとすればテストができるようになったようです。

 Xorg コマンド(確認にはXコマンド)を使うのが正攻法のよう?です。

# Xorg -configure 

とするとカレントディレクトリにxorg.conf.newというひな型となるファイルができるので確認したい場合には、Xコマンドで、確認不要なら次の手順に進みます。

# X -configure 

 良ければ、/etc/X11ディレクトリにコピーします。

# cp xorg.conf.new /etc/X11/xorg.conf 

 この時、xorg.conf.new、または、/etc/X11ディレクトリにコピーしたxorg.confのSection "InputDevice"、Identifierの値"keyboard0"、Driverの値"kbd")に先にもあった以下の4行を追加します。

 尚、IdentifierやDriverの値を変更する必要はありません。(もしかすると"jp106"と"jp"の2行追加でもいけるかもしれません。)

  Option        "XkbRules" "xorg"
  Option        "XkbModel" "jp106"
  Option        "XkbLayout" "jp"
  Option        "XkbVariant" ",qwerty"

[追記] 2015年03月

 先の/etc/X11/xorg.conf.d/keyboard.confによる方法は、利用できなくなったようです。

 いつからかは不明ですが、この[xorg.conf]の冒頭[Section "ServerLayout"]にある設定値が、各[Section]の["Screen"]や["InputDevice"]の["Idetifier"]の設定値にあたるようで、それと同じ値の[Section]に記述する必要があり、[Section]自体を追記して["Idetifier"]の設定値を編集したい場合には、同時に[Section "ServerLayout"]にある設定値も同じものに変えないと、おそらく機能しないので注意が必要です。

 少なくとも、こうした挙動になってから、["Idetifier"]の設定値が一致しない状態で編集してあると当ページの当初の方法はもちろんのこと、[setxkbmap]や[localectl]で設定してみたところで[Cannot open display "default display"]などのエラーが出て反映されず、途方に暮れることになります。

NetBSD 6.1.2 scim-anthy設定画面
NetBSD 6.1.2 scim-anthy設定画面

 というわけで日本語入力ですが、Openboxのmenu.xmlに追加・編集すれば、メニューから呼び出すこともできるものの、とりあえず、xtermからscim-setupコマンドで『SCIM入力メソッドの設定』画面を表示してみました。

 設定は、『▽フロントエンド』下の『全体設定』メニューを選択すると右ペインに[開始/終了]や[開始]、[終了]とある部分が、SCIM/Anthyの利用開始や終了を表し、その横にキーボードのキーに相当するアルファベットで書かれた文字が並んでおり、追加や削除など編集が必要なら右側の[...]をクリック、出てきた画面で設定したいキーについては、右側の[...]をクリックしてポップアップ画面が表示されたら、希望するキーボード上のキーを押し、認識されれば、自動的に該当するアルファベット文字列が設定され、更に組み合わせる機能キーがある場合には、チェックボックスを適宜チェック、[追加]ボタンなどをクリック、[適用]ボタンがある画面では、それが押せる状態で且つ設定を保存したい場合にはクリック、『Anthy』メニューでも詳細な設定が可能となっています。

 と、ここまでは、他のOSでいくつかやってみたこともあり、比較的すんなりできたものの、何かファイルが不足しているのか、はたまた何らかの必要なファイルは存在するが、NetBSD特有の/usr/pkg/下にないからなのか、原因は不明ですが、SCIM-AnthyのIMEバーも出てきませんし、日本語入力・変換もできず、ん?と思いながら、更にあれこれやってみました。

 すると原因は、確認に使ったソフトとIMEの相性ととある環境変数の設定値が違っていることでした。

 まず、確認用にテキストエディタを、と任意にneditをインストールしたらUTF未対応ということで適当にgeditをインストール、ところがgeditとscim-anthyの相性がよくないのか、メニューなどは日本語表示されても結果的に日本語入力できないのに、しばらく、geditで試していました。

 次に当初、環境変数GTK_IM_MODULE、QT_IM_MODULEの設定値を"scim"にしていたものの、途中あれやこれややっている内に"scim-bridge"にしてしまっていました。

 結果、確認用テキストエディタをgeditから、よく耳や目にするLeafpadに、更に環境変数GTK_IM_MODULE、QT_IM_MODULEの設定値を"scim"に戻したところ、scim-anthyで日本語入力・変換ができるようになりました(、念のため、geditを確認してみましたが、geditの方は、対応できないようで、やはり、日本語入力できませんでした)。

 ちなみに(敢えてコメントアウトすることで)改めて再確認できたのは、~/.xinitrcなどでX用の環境変数LANGに日本語用ロケール(ja_JP.UTF-8など)を設定、有効に(bshell系なら[export]、cshell系なら[setenv])しておかないとstartx後にソフトウェアを起動してもX上では日本語表示されないこと(、もちろんインストール過程で必要なフォントも入っているからこその話ですが、逆に言えば、LANG設定するだけでX上で日本語表示されること)です。

NetBSDデスクトップとアプリケーションソフトウェア

NetBSD 6.1.2/Openbox上の各種アプリ
NetBSD 6.1.2/Openbox上の各種アプリ
(クリックで拡大)

 基本的なところは整ったので更に少し追加でアプリケーションソフトウェアを入れてみました。

 このスクリーンショットで見える部分は、ideskによる背景画像と各種デスクトップアイコン、画面中央やや下のOpenbox日本語メニュー、画面右下のConkyによるシステム情報、画面中央の起動中のテキストエディタLeafpadとXterm、これら使用中ソフト(タスク実行中)のアイコン表示、インプットメソッド用アイコン、日付時刻を表示しているtint2によるタスクマネージャです。

 デスクトップアイコンは上から超軽量ブラウザDillo、軽量ブラウザMidori、テキストエディタLeafpad、画像ビューワ兼画像エディタGLiv、ドローイングソフトGIMP、画像ビューワ兼画像エディタGraphicsMagick、ターミナル・端末Xterm、ファイルマネージャRox Filer、上に戻ってDilloの横にある黄緑の右三角形のアイコンは、インターネットラジオ登録再生streamtuner(録音streamripper)、その右のアルファベット小文字のaをあしらったアイコンがデジタルオーディオaudaciousでstreamtunerの音声出力機能も兼ねています。

 他の方法を検討する余地もありますが、とりあえず、tint2ドキュメントのサンプルスクリプトをそのまま作成することでタスクマネージャ上の時計部分を右クリックすることにより『デスクトップの表示』と『タスクバー上のアプリ表示』とを切り替えることができるようになっています。

 ちなみにtint2は、apache subversion(SVN)をインストール、最新のtint2をチェックアウトしてとあるパッチを当てれば、ideskがなくてもランチャを利用できるとのことでNetBSDの場合、他と若干バイナリファイル名が異なるものの一通りあり、libXrandrについてはバージョンが古いのとエラー表示された個所のif文を見る限り、pangoとcairoとは別にpangocairoの存在チェックもしている模様、pangocairo.tar.xzをダウンロード。。。そこまでする必要もないかと作業終了。

 cairo, pango, glib2, imlib2-1.4.3(imlib2-1.4.5),xinerama(libXinerama-1.1.3.tgz|xineramaproto-1.2.1.tgz),libXrender,libXcomposite,libXdamage,libX11,libXrandr-1.3(Xrandr-1.0.2nb3.tgz) 

 この他、FTPソフトFileZilla、画像ビューワ兼画像エディタQIviewer、Geeqieも入れてみました。

 ちなみにQIviewerは、そのものではなく、QIviewerの後、他の画像エディタをインストールする際にディレクトリパスのimageのg/Gがq/Q、つまり、"imaqe"となっていてエラー表示されるという愛嬌があります(が、当該ファイル内の記述を修正すれば何の問題もありません)。

 Geeqieは、libGL.so.1がないとかで使っていません。

 RAM128MB(QEMUで143MB程度で指定したらConky表示上、RAM129MBくらいになった)でももっさり感のあるMidoriは微妙ですが、他はサクサク使えます。

 強いて言えば、DilloとMidoriの中間的なブラウザ、Midoriの機能性をもって128MBで軽快に動けば。。。とも思わなくもないですが、現役OSであるNetBSDに既存のソフトウェアを組み合わせるだけであることを考えると比較的安心してインターネットにもつなぐことができ、各種アプリも128MBもあれば動作も申し分なく、FreeBSDやOpenBSDの恩恵にあずかることも、Linuxソフトウェアのエミュレーションもでき、NetBSDのpkgsrcの内pkg_addで入れられるバイナリもその存在を知るだけでも並大抵ではないほど、まだまだ追加可能アプリが豊富な上、実機ならmake installもできるはずなので尚更コマンドやアプリに困ることもなさそうです。

(スクリーンショットでは64MB辺りになるようにQEMUで設定したつもりが65.5MBになってしまいましたが、起動やOpenboxメニュー操作は問題なし、アプリの動作は未確認です。)

NetBSD 6.1.2を6.1.3にアップグレード

 唐突に思い立って、まだ試していなかったVMware Player 3.1.6へNetBSDをインストールしてみたら、なんと、あっさりインストールでき、更にメニューからUpgrade...というメニューを選んでやってみたら、NetBSD 6.1.2から6.1.3へのアップグレードもできました。

 そこでQEMUで作ったNetBSD環境(QtEMUでは、".img")もVMwareでも使えるように.vmdkに変換してみました。

 QEMU_PATH  > qemu-img convert TARGET_PATH\xxx.img  -O vmdk RESULT_PATH\xxx.vmdk 
Windowsコマンドプロンプト

備考

 今回、インストールしたNetBSDの6.1.2では、PKG_PATHを.../i386/6.1.2/Allに設定、そこから取得していてもpkg_addする度に「xxxアプリは6.0、このシステムは6.1.2だよ」とWarningが表示されますが、2.0 や 3.0 のようなメジャーリリース、 2.1 のような保守 (stable) リリース、 2.0.2 のような security/criticalリリースとなっているようなのでメジャーリリースでない限りは、今回のWarning表示は、正常な挙動と考えてよいのでしょう。

 ちなみにNetBSD 6.1.2には、デフォルトでは、bashは入っておらず、/bin/shを選んだ場合、ログアウトするには、logoutではなく、exitを使用します。

 RAM使用量については、前述の通り、QEMUの場合、QEMUの使用量が差し引かれるのか、この値がどこまで正確なのか、仮想マシン上では、指定したRAMサイズよりも少ないメモリで動作しているようです。

 QEMU上のRAMとSwapの関係(QEMUの使用量分を全てSwapとして確保しているということなのか否か等)、QEMUについてもQtEmu固有の事なのか、VirtualBox 4.2.12では指定したRAM容量の内、10MB程度をVirtualBoxで消費、VMware Player 3.1.6では指定したRAM容量の内、19MB程度をVMware Playerで消費の模様、その他の仮想化ソフトウェアではどうなのかは調べてません。

 そもそも今回の検証結果のCUIベースでRAM最小24MBでの起動やstartxによるOpenboxの起動が最小32MBというのも先のConkyの情報からしてもっと少ないRAMで動作している可能性もあり、反対にシステム要件らしき内容上は、CUIベースで最小32MBとなっています。

 これは、きっと、それなりにアプリを入れることを想定した要件であると考えてよいのでしょう。

 ただ、RAM128MB以内で動作するウィンドウマネージャ込みのOSはあるのかといった検証をする際には、使用ソフトウェアの絞り込み含め、実際のところどのくらいのスペックならいけるのか微妙に悩ましいケースもあるかもしれません。

リンク

追記1

 後日、下記のマシンの各OSをNetBSDに入れ替えました。

 dynabookで試したところ、NetBSDなら、なんとxfceでも快適でした。(もちろん、同じスペックのFMVでも大丈夫でしょう。)

 ちなみにKDE(3.5)を試してみたら、インストールしてしばらくは快適もタスクバーにウィジェットっぽいものを追加したあたりからdynabookがスペック不足のようでクラッシュしたのでアンインストール、GNOMEを試してみたら、意外にも相当シンプルな状態だけに軽快でしたが、やはり、アンインストールし、Xfceに戻しました。

 周辺機器を使うに当たっては、特にプリンタについては、ウィンドウマネージャ単体よりも統合デスクトップ環境の方が手間がかからないのでこれを利用できるならそれに越したことはありません。

追記2

 改めてNetBSDのインストールとその後の設定等々についてまとめてみました。

ホーム前へ次へ