XFree86 の設定ファイルは 4.x から /etc/X11/XF86Config になりました。 まずは付属のコマンドで雛型の XF86Config を作り、 それを変更することにします。
バージョン4系統から、新しく XFree86 というコマンドがついてきます。 root になって、-configure というオプションをつけて実行すると、 XF86Config.new という XF86Config ファイルの雛型を作ってくれます。
# XFree86 -configure
この雛型 XF86Config.new でうまく動くかどうかをテストします。
# XFree86 -xf86config XF86Config.new
うまくいかない場合は、XF86Config をいじることになります。
root で /usr/X11R6/bin/xf86config を起ち上げます。
# /usr/X11R6/bin/xf86config
あとは、聞かれた質問に答えて行くだけです。 が、ちょっとこれはわかりにくいです。 とりあえず、適当に答えて雛型の /etc/X11/XF86Config を作ってしまいましょう。 細かい設定は、XF86Config を直接いじることでできます。
XFree86 もしくは xf86config で作られた XF86Config はごちゃごちゃといろいろ書いてありますが、 主に次の7つの Section に分かれています。これらについて、サンプルの XF86Config を見ながら説明します。 なお、# で始まる行はコメント行です。
Section "ServerLayout" 各セクションの名前の定義など Section "Files" フォントへのパスの指定 Section "Module" ロードするモジュールの指定 Section "InputDevice" Keyboard と Mouse をそれぞれ設定する Section "Monitor" Monitor の設定 Section "Device" グラフィックカード(ビデオカード)に関する設定 Section "Screen" まとめ
Section "ServerLayOut"
Screen0 や Mouse0, Keyboard0 は、 設定された Screen などに付けられた名前です。
Section "ServerLayout" Identifier "XFree86 Configured" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" EndSection
ここは特に変更しなくても構いません。Section "Files"
1行目は、RGB(Red,Green,Blue)、つまり色設定ファイルの指定です。
Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" ModulePath "/usr/X11R6/lib/modules" FontPath "/usr/X11R6/lib/X11/fonts/misc/" FontPath "/usr/X11R6/lib/X11/fonts/Speedo/" FontPath "/usr/X11R6/lib/X11/fonts/Type1/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/" FontPath "/usr/X11R6/lib/X11/fonts/TTF/" EndSection
2行目はモジュールディレクトリの指定です。
3行目以降は、フォントへのパスです。
FontPath はもっといっぱいあるかも知れません。
例えば TrueType フォントをインストールしたら、 そのインストール先もこのリストに加えておきます。Section "Module"
モジュール類の定義です。
Section "Module" Load "dbe" Load "dri" Load "extmod" Load "glx" Load "record" Load "xtrap" Load "speedo" Load "type1" EndSection
TrueType フォントをインストールしたら Load "xtt" を追加しておきます。Section "InputDevice"
Keyboard と Mouse のそれぞれで設定します。
Section "InputDevice" Identifier "Keyboard0" Driver "keyboard" Option "XkbRules" "xfree86" Option "XkbModel" "jp106" # 日本語106キーボード Option "XkbLayout" "jp" # 日本語配列キーボード Option "XkbOptions" "ctrl:swapcaps" # Ctrl と Caps を交換 Option "XkbOptions" "ctrl:nocaps" # Caps を Ctrl にする EndSection Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "PS/2" # PS/2 マウスのとき Option "Device" "dev/psm0" # PS/2 マウスのとき Option "Emulate3Buttons" # 2ボタンのとき同時押しで真中ボタンの代わり Option "Buttons" "5" # ホイールマウスを使う Option "ZAxisMapping" "4 5" # ホイールマウスを使う EndSection
Section "Monitor"
HorizSync と VertRefresh は、わからなければなくても構いません。
Section "Monitor" Identifier "Monitor0" VendorName "Monitor Vendor" # どうでもいい ModelName "Monitor Model" # どうでもいい HorizSync xx.x-yy.y # モニター仕様書を見て設定 VertRefresh xx.x-yy.y # モニター仕様書を見て設定 Modeline "1024x768" 65.0 1024 1048 1184 1344 768 771 777 806 EndSection
大事なのは、Moeline の1行で、これは EIZO 社の Flex Scan L360 の例です。
Modeline 1行を次のように書いてもよいようです。
Mode "1024x768" DotClock 65.0 HTimings 1024 1048 1184 1344 VTimings 768 771 777 806 EndModeX が動いているとき、分かってない Modeline の値を知りたい場合や、 Modeline の微調整をするには、X を起ち上げてから xvidtune を使います。
出て来たパネルの、
# xvidtune
右側の上から5つ目、Pixel Clock の値と
左側上から (HDisplay, HSyncStart, HSyncEnd, HTotal) と
右側上から (VDisplay, VSyncStart, VSyncEnd, VTotal) と
をメモしておきます。これらの9つの数値が Modeline で使われている数値です。Monitor 設定の詳細は、 高解像度ディスプレイの設定 をご覧下さい。(高解像度でなくても応用できます)
Section "Device"
ここは雛型そのままでよいです。
Section "Device" Identifier "Card0" Driver "xxx" # ビデオカードに合ったドライバー名 VendorName "Videocard Vendor" BoardName "Videocard name" BusID "PCI:1:0:0" EndSectionSection "Screen"
最後に、まとめです。
Section "Screen" Identifier "Screen0" # このファイルにおけるスクリーンの名前 Device "Card0" # Section "Device" で定義した名前 Monitor "Monitor0" # Section "Monitor" で定義した名前 DefaultDepth 16 # デフォルトの色数。2 の 16 乗で65536色 Subsection "Display" Depth 16 # 色数の指定 Modes "1024x768" # Section "Monitor" の Modeline で定義した名前 EndSubsection EndSection
Subsection "Display" は同じようなものを複数定義しておけます。
XF86Config を作ったら、X の起ち上げテストをしてみます。 root で、つぎのようにします。これは、X を起ち上げようとしてみて、その結果を /root/X.out に 出力しています。(*)で始まる行は、うまく行っている事を示しています。 Warning なり Error なりが出ている場合は、 言われていることに沿って修正すればうまくいくでしょう。
# /usr/X11R6/bin/X -probeonly >& /root/X.out トラブルシューティング
例えばうちでは、次のようなエラーが出てました。これは、システムを高いセキュリティーレベルで運用しているせいで 起こるエラーです。対処法は、次の2通りです。
xf86OpenConsole: KDENABIO failed (Operation not permitted)
- /etc/rc.conf の kern_securelevel を 0 にする
- 起動時に xdm を起ち上げる
- http://www.xmission.com/~howardm/Xwoes.html
Linux と大きくでてますが、X 関係なので共通です。 probeonly した結果の読み方や、XF86Config の読み方が書いてあります。 (英語)