FreeBSD と X がインストールできたら、X の設定をします。 X は、バージョン3系統と4系統で設定の仕方に違いがあります。
3系統では、XF86Setup(GUIな設定ツール)が 使えるときはそれを、 使えないときは xf86config (文字ベースな設定ツール)を使います。
4系統では、XFree86というコマンドを 使って設定するのが楽ですが、ダメなら3系統と同じく xf86configで設定します。
root で、/usr/X11R6/bin/XF86Setup を起ち上げます。最初はマウスが使えない状態にありますから、 [TAB] キーを使って移動します。 マウスの設定を [Apply] した後は、 マウスを使って設定することができます。
# /usr/X11R6/bin/XF86Setup
主に設定する所は、
です。
- マウスのタイプとデバイス名
- キーボードのタイプとカスタマイゼーション
- ビデオカードの設定
- モニターの設定
例えば、次のようなあんばいです。
これらは、FreeBSD 3.4-RELEASE + PAO3 + XFree86 3.3.5 でうまく動いています。
root で /usr/X11R6/bin/xf86config を起ち上げます。
# /usr/X11R6/bin/xf86config
あとは、聞かれた質問に答えて行くだけです。 が、ちょっとこれはわかりにくいです。 とりあえず、適当に答えて、
をしちゃいましょう。 細かい設定は、/etc/ XF86Configを直接いじることでできます。
- /etc/XF86Config を作って
- /usr/X11R6/bin/X を適当な X サーバ (/usr/X11R6/bin/XF86_SVGA とか) にシンボリックリンク
バージョン4系統から、新しく XFree86 というコマンドがついてきます。 root になって、-configure というオプションをつけて実行すると、 XF86Config.new という XF86Config ファイルの雛型を作ってくれます。
# XFree86 -configure
この雛型 XF86Config.new でうまく動くかどうかをテストします。
# XFree86 -xf86config XF86Config.new
うまく動いたら、XF86Config.new に必要な変更を加えます。 例えば、次のような項目が上げられます。
変更前
変更後
Section "InputDevice" Option "Protocol" "MouseSystems" Option "Device" "/dev/sysmouse" EndSection
Section "InputDevice" Option "Protocol" "PS/2" (PS/2 マウスを使うとき) Option "Device" "/dev/psm0" (PS/2 マウスを使うとき) EndSection Section "Screen" DefaultDepth 16 (デフォルト色数の指定:適当に決める) EndSectionこの他にも、Section "InputDevice" 内に
を指定すると、2つボタンマウスを使っているとき、 2つを同時に押すと3つボタンの真中ボタンを押したことになります。
Option "Emulate3Buttons"
また、 Section "Monitor" の中で ModeLine を指定しなければ ならないときは書き加えておきます。
X は動いているけど ModeLine のパラメータ値がわからない場合
なんらかの理由で、X は動いてはいるけど ModeLine を明示的に書きたい場合、 xvidtune を立ち上げて必要なパラメータ値を得ます。 でてきたパネルの、左側上から (HDisplay, HSyncStart, HSyncEnd, HTotal) と右側上から (VDisplay, VSyncStart, VSyncEnd, VTotal)と、 計8つの値をメモしておきます。 また、右側の上から5つ目、Pixel Clock の値もメモしておきます。 これだけあると、ModeLine が書けます。 以下では、NANAO の FlexScan L771 の場合の数値です。左から順に、
ModeLine "1600x1200" 162.0 1600 1684 1876 2160 1200 1201 1204 1250
ModeLine の宣言、この ModeLine 設定の名前、Pixel Clock、 HDisplay, HSyncStart, HSyncEnd, HTotal, VDisplay, VSyncStart, VSyncEnd, VTotal
の値となっています。