« 一年前のドキュメント | Main | Bloglines β は既に実用域に達してます »
最近、手元の Mac の Parallels を 4.0 にアップデートしました。ついでに今まで使っていた FreeBSD 6.2 ではなく FreeBSD 7.0 をインストールしてみました。FreeBSD のセットアップは最近の Linux などと比べるとちょっと敷居が高いと思います。 OS 自体のインストールはディスクの分割とパーティションの指定がちょっと難しいと思いますが Linux だってそれをしますから、FreeBSD を入れてみようとする人にとってはまあ大丈夫かもしれません。しかし FreeBSD はインストールした後、実際に使い始めるまでの間にするセットアップに回されているものが多く、ここで挫折する人が多く出てきそうです。中でも GUI 環境(X Window System)のセッティングは Linux と違って専用のデバイスドライバがないので苦労するかもしれません。そこでインストール後に特に迷いそうな GUI 環境のセッティングをピックアップして具体的な方法をシェアします。
Paralells が乗っているマシンは MacBook Pro 15" で、機種 ID が MacBookPro1,1、プロセッサが Intel Core Duo の 2.16GHz だとします。古い MacBook Pro ですね。これのディスプレイとキーボードとタッチパッドで使えるようにします。キーボードは日本語キーボードとします。デスクトップシステムには gnome を使うことにします。そして gdm を使用してグラフィカルログインをするようにします。やることは大別すると次の二つです。
これらを順次解説していきます。
コンソールからログインして startx コマンド等で X を起動すると画面の解像度が大き過ぎてはみ出してしまいます。これを小さくします。そのためには X の設定ファイル xorg.conf を作成するのですが、一から自分で書くのは大変なので xorgconfig コマンドを使って作成します。
xorgconfig コマンドは自動で設定してくれるわけではなく質問をしてきます。それに答えなければなりません。そして答え難いのがグラフィックカードとモニターのスペックです。そして落とし穴にはまるのがマウスです。グラフィックカードとモニターのスペックは適当に答えればそれなりに設定されるのですが、マウスでそうすると X が起動されてもマウスポインタが動かなくなってしまうからです。
以下では xorgconfig コマンドの質問にどのように答えるかを
に分けて述べていきます。そして最後に xorg.conf の補正をしてできあがりです。
最初に質問されるのはマウスプロトコルです。次の質問がされます。
First specify a mouse protocol type. Choose one from the following list:
ここでは 1 の Auto か 4 の PS/2 を選択します。Paralells のマウスは PS/2 マウスで、これは自動認識できるからです。Auto が使えるので Auto にしておいた方がよいかと思います。
/var/log/messages の起動時のログをよく見ると model IntelliMouse Explorer と出ていますが、その前に <PS/2 Mouse> とも出ています。9 の IntelliMouse を選択するとマウスポインターを意図どおりに動かせなくなります。
次に質問されるのは3 ボタンのエミュレートをするかどうかです。次の質問がされます。
Do you want enable Emulate3Buttons?
昔は 3 ボタンのマウスが UNIX ワークステーションなどでは使われていました。僕もマウスを本格的に使い始めたのは 3 ボタンマウスです。2 ボタンのマウスでこれをエミュレートするには、左右の両方のボタン同時押しが真ん中のボタンになっていたと思うのですが、ちょっとうろ覚えです。まあそうだとして、ボタンが一つしか無い MacBook Pro のタッチパッドでできることではありません。
だからここは n を入れてエミュレートをしないことにしたくなります。そうしても構いません。y でも悪さはしません。できないだけです。2 ボタンの USB マウスも使う場合に備えて y の方がいいと思います。
次に質問されるのはマウスのデバイスファイルです。次の質問がされます。
Mouse device:
さて、ここが問題です。
コンソールマウスサービスを有効にしているとき(moused を使用しているとき)は /dev/sysmouse を指定します。無効にしているときは /dev/psm0 を指定します。指定を逆にするとマウスポインタが動かなくなります。
/dev/psm0 がオリジナルのマウスのデバイスファイルです。これは /var/log/messages に書いてある起動時のログを漁るとわかります。/etc/defaults/rc.conf の中の moused_port の値にも書いてあります。moused を起動するとこのデバイスを moused が握り、その代わり /dev/sysmouse を使えるようにします。だからコンソールマウスサービスが有効なときは /dev/sysmouse、無効なときは /dev/psm0 を指定するのです。
コンソールマウスサービスが有効か無効かよくわからないですか? 今はまだ X が起動されていないのでコンソール上で操作していますよね。その状態でマウスを動かしてみてください。あ、マウスではなくタッチパッドでしたね。どうですか? カーソル(のようなもの)がタッチパッドの動きに合わせて動きませんか? 動かないなら無効で、動くのなら有効です。
キーボードの設定で最初に質問されるのはキーボードのタイプです。次の質問がされます。
Please select one on the following keyboard types that is the better description of your keyboard. If nothing realy matches, choose "Generic 104-key PC"
同じ MacBook Pro でも注文時に英語キーボードと日本語キーボードが選べましたよね。日本語キーボードでしたら 12 の Japanese 106-key を指定します。英語キーボードでしたら 1 の Generic 101-key かな?
次に質問されるのはキーボードのレイアウトです。次の質問がされます。
Enter a number to choose country.
これは OS セットアップでよくやるタイムゾーンや日時の表記のためではありません。キーボードのレイアウトを決定するためです。さっきのはキーボードのモデルの指定でした。日本語キーボードで日本語を使うのなら 38 の Japan を指定します。英語キーボードで日本語を使うときは… 1 の U.S. English かな? どっちかな?
そして更に次の質問がされます。
Please enter a variant name for 'jp' layout. Or just press enter for default variant.
同じ 106 日本語キーボードでもメーカーによる細かな差異があることがあります。それを指定するところです。ここは何も指定せずそのまま enter を押します。Mac 用キーボードのレイアウトなど知らないと思うからです。
更に更に
Do you want to select additional XKB optioins (group switcher, group indicator, etc.)?
caps lock と control をひっくり返したりするキーボードのカスタマイズの指定をするかどうかということです。面倒だし、キーボードは飽きてきたので n を入れてそのままいきましょう。
モニターの設定で最初に質問されるのは水平同期周波数です。次の質問がされます。
You must indicate the horizontal sync range of your monitor. You can either select one of the predefined ranges below that correspond to industry-standard monitor types, or give a specific range.
こういうのは普通はモニターのマニュアルに書いてあります。メーカー製のパソコンの場合はパソコンのマニュアルに書いてあるかもしれないし書いていないかもしれません。書いていないときでも使用しているモニターはこれだと書いてあります。そしてそのモニターのメーカのサイトで調べれば載っていたりします。しかし Paralells がゲスト OS に提供するモニターの細かい仕様はどこにも記載されていません。そもそも本当のモニターの仲介をする仮想的なモニターなので Parallels のサイトに書いていなければどこにも情報はありません。だから正確な情報はありません。
とりあえずゲスト OS として Windows や Linux をインストールするとわかるのですが、水平同期周波数は 60 Hz です。この周波数で画面のサイズが全画面時の大きさ 1440x900 に近いけれどはみ出さないものを選べばよいでしょう。それは 6 の 31.5 - 48.5; Non-Interlaced SVGA, 1024x768 @ 60 Hz, 800x600 @ 72 Hz です。
もうおわかりかと思いますが、この大きさでは画面をいっぱいいっぱい使うことはできません。これは後から xorg.conf を書き換えて対応します。
次に質問されるのは垂直同期周波数です。次の質問がされます。
You must indicate the vertical sync range of your monitor. You can either select one of the predefined ranges below that correspond to industry-standard monitor types, or give a specific range. For interlaced modes, the number that counts is the high one (e.g. 87 Hz rather than 43 Hz).
これも正確な情報はありません。とりあえず適当に 4 の 40-150 にしておきましょう。
グラフィックカードの設定で最初に質問されるのはグラフィックカードの一覧を見るかどうかです。次の質問がされます。
Do you want to look at the card database?
ここは
次に質問されるのはビデオメモリの大きさです。次の質問がされます。
How much video memory do you have on your video card:
仮想マシンの設定で可変なので仮想マシンの設定に合わせてください。仮想マシンのビデオメモリの設定では 16MB 以上が推奨なようなことが書かれているので私は 16MB に設定しました。その場合は 7 の 16384K です。
モニターとグラフィックカードを設定しましたが、それを使って色数や画面の大きさを設定します。
スクリーンモードの設定で最初に質問されるのは自動生成されたスクリーンモードを編集するかどうかです。次の質問がされます。
Modes that cannot be supported due to monitor or clock constraints will be automatically skipped by the server.
ここで編集するのもよいですが、どうせあとで手動で書き換えるのでそのときに一緒に書き換えた方が楽です。だからここは 4 の The modes are OK, continue. を選びます。
次に質問されるのはデフォルトの色数です。次の質問がされます。
Please specify which color depth you want to use by default:
わざわざ少なくする理由もありませんから 5 の 24 bits (16 million colors) を選びます。
このあと、xorg.conf を保存するかどうか尋ねられます。y で保存します。xorgconfig コマンドを root で実行したのなら /etc/X11/、そうでないのならカレントディレクトリに保存されます。
xorgconfig コマンドで生成された xorg.conf を /etc/X11/ に置けばそのままでも X が使用できます。ですが、画面の大きさが MacBook Pro と合いません。これをぴったり合わせて全画面モードでも問題が無いようにします。vi などのエディタで xorg.conf を開いて次の要領で書き換えて保存します。
水平同期周波数が指定されていますが、これは自動認識させます。
HorizSync 31.5 - 48.5
# HorizSync 31.5 - 48.5
これも同様に自動認識させます。
VertRefresh 40-150
# VertRefresh 40-150
先ほど自動生成のままにしておいたスクリーンモードを編集して Mac OS X でリストアップされているものにします。色数毎になっているので三カ所あります。
Modes "1280x1024" "1024x768" "800x600" "640x480"
Modes "1440x900" "1280x800" "1152x720" "1024x640" "1024x768" "800x600" "800x500" "720x480" "640x480"
この編集を施した xorg.conf を /etc/X11/ に置けば OK です。
FreeBSD では OS 起動時に実行する内容を一つのスクリプトにして /etc/rc.d/ に置きます。そのスクリプトはある作法に従ったもので、起動時の設定ファイル /etc/rc.conf に書いた設定に従って何もしなかったり、目的のものを起動したりします。gnome というデスクトップシステムのグラフィカルログインプロンプトである gdm もこの方法で自動起動させます。
FreeBSD インストール直後は OS が起動するとコンソールにログインプロンプトが現れ、そこでログインしてから startx コマンドや xinit コマンド等を使って X Window System による GUI 環境に移行します。最初はこうしてください。もし前のセクションで何か間違っていて X がちゃんと動作しなくても再起動すればコンソールから修正できるからです。いきなり gdm を使うようにしていたら、外から SSH などでログインしてやるほかは方法がなくなります。コンソールも残しておいて、大丈夫そうになってから gdm を使うようにしましょう。(本当は SSH などでログインできなくても方法はあります。)
まずは gdm を起動するスクリプトを /etc/rc.d/ に置きます。このスクリプトを自分で作る必要はありません。/usr/X11R6/etc/rc.d/gdm をコピーして /etc/rc.d/ に置きます。
これだけでもよいのですが、そのままだと gdm のログイン画面の設定をするときに gdm が稼働していないからできないと言われてしまいます。これを回避するために次のように 何か勘違いしていました。この編集は不要です。
/etc/rc.d/gdm を編集します。
procname="/usr/local/sbin/gdm-binary"
procname="/usr/local/sbin/gdm"
/etc/rc.d/gdm を置いただけでは gdm は自動起動されません。自動起動可能になっただけです。自動起動するのだと設定しなければなりません。そのためには /etc/rc.conf に次の一行を書き加えます。
gnome_enable="YES"
以上で完了です。FreeBSD を再起動すればグラフィカルなログイン画面になります。再起動しなくても root で /etc/rc.d/gdm start をすればそうなります。