VMWareでのFreeBSD 8.3のXの設定

たまにVMWare上で使っていたFreeBSD 7.3がFTPサイトでもサポートされなくなり、パッケージの追加が困難になったので、久々にFreeBSDをバージョンアップすることにした。

とりあえずFreeBSD-8.3-RELEASE-i386-bootonly.isoをダウンロードして、CD-ROMとしてマウントして起動してインストーラーからUpgradeを選んだら、あっという間に8.3にバージョンアップができたのだが、X Windowを起動すると、以前と同じように使えたが、CPU使用率が常に100%になるようになってしまった。
topで見ると、haldというのが常に走り続けていた。ここへの書き込みによると、haldがlibusbに依存するように作られていると、8.xのカーネルのUSBドライバーと不整合が起こって、このようになるらしい。haldをlibusb無しでmakeすれば直るらしいのだが、どうせこの状態だとsysinstall→Configuration→Packagesからのパッケージの追加が困難(関連パッケージのバージョン違いが多発する)なので、やっぱり仮想マシンをもう1つ作って1からインストールすることにした。

何も考えずにインストーラーからStandardを選んで、インストールが完了したらxorg-serverとxf86-video-vmwareととxf86-input-vmmouseと適当なXアプリやら何やらを追加して、いざ再起動してXorg -configureしてXorg -config xorg.conf.newしたら、 画面が真っ暗になってしまった。
最近のFreeBSDは、バージョンアップする度に、Xの設定方法が変わっていてトラブルが起こる。XサーバーがX.OrgじゃなくてXFree86だった頃は、長年使ってたこともあって、なんとなく勘があったのだが、Xorgになってから、さっぱりわからなくなってしまった。FreeBSDを7.2から7.3に移行した時も、haldやらdbusやらxfbdevやらの設定が必要になったりして、相当手間取った。
今回も、またか、と、げんなりしながらWebで色々調べて、

Xorg -config xorg.conf.new -retro
とすると、Xが起動成功した時に真っ黒にならず、マウスカーソルも表示されて、やれやれ、と思いながら、xorg.confを/etc/X11に置いてstartxとすると、Command not found.になってしまい、さらにげんなりした。何でこんなにちょくちょく色々あれこれそこもかしこも何やらかんやら変わるんだろうな、全く。

最終的には何とかその日の内にXが使えるようになったのだが、これも要るのか?これもか?とパッケージを追加しまくって、明らかに無駄だったので、もう一度整理してインストールし直した。結局、以下のようにして、VMWare 5.5及びVMWare Player 5でFreeBSD 8.3のXを動かすことができた。

■インストールしたパッケージ
xorg-minimal-7.5.1
xf86-video-vmware-*
xf86-input-vmmouse-*
xkbcomp-1.2.3
xorg-fonts-7.5.1

■xorg.confの作成と動作確認
X -configure
X -config xorg.conf.new -retro

■入力デバイスの設定
・/etc/rc.confに次の1行を追加

hald_enable="YES"
・再起動後、コンソールにメッセージが出続けるので、次のコマンドを実行
hal-disable-polling --device /dev/acd0
・日本語キーボードの設定
以下を/usr/local/etc/hal/fdi/policy/policy10-keyboard-jp106.fdiとして作成
<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
<device>
<match key="info.capabilities" contains="input.keyboard">
<merge key="input.x11_options.XkbRules" type="string">xorg</merge>
<merge key="input.x11_options.XkbModel" type="string">jp106</merge>
<merge key="input.x11_options.XkbLayout" type="string">jp</merge>
</match>
</device>
</deviceinfo>
参考:http://freebsd.xo-ox.net/x11/xorgconfnv160


■(参考)enlightenmentを使ってstartxの動作確認
インストーラー(インストール後はsysinstallで起動)のConfiguration→Packagesからe16-1.0.*を追加し、
echo starte16 > .xinitrc
startx

■(参考)PackagesからのwxMaximaのインストール
インストーラーのPackagesからwxMaximaを追加しようとすると、依存関係にあるgnuplot-4.4.4の追加でエラーになる。これは、依存関係のさらにその先のpdflibが、ライセンスの問題でpackagesに含められていないのが原因で、pdflibだけはportsからインストールする必要がある。pdflibのmakeにはgmakeが必要なので、次のようにすると良い。
  1. Packagesからgmakeを追加
  2. portsがインストールされてなければ、sysinstall→Configure→Distribution→portsを追加
  3. portsでpdflibをインストール
    cd /usr/ports/print/pdflib
    make install
    make clean (またはports不要ならrm -rf /usr/ports)
  4. PackagesからwxMaximaを追加