XF86Config の設定

X の設定は、/etc/XF86Config という設定ファイルで行っています。 実は、これの書き方さえ知っていれば XF86Setup や xf86config は 使わなくても大丈夫です。 XF86Config の見方と、X のテストの仕方を述べます。 なお、ここの記述は XFree86 3.3.6 を前提に書かれています。


XF86Config の読み方

XF86Setup もしくは xf86config で作られた XF86Config はごちゃごちゃといろいろ書いてありますが、 主に次の7つの Section に分かれています。
Section "Files" フォントへのパスの指定
Section "ServerFlags" X サーバの特殊な動作を設定
Section "Keyboard" キーボードに関する設定
Section "Pointer" マウスに関する設定
Section "Monitor" モニターに関する設定
Section "Device" グラフィックカード(ビデオカード)に関する設定
Section "Screen" まとめ
これらについて、サンプルの XF86Config を見ながら説明します。 なお、# で始まる行はコメント行です。

Section "Files"

Section "Files"
    RgbPath	"/usr/X11R6/lib/X11/rgb"
    FontPath   "/usr/X11R6/lib/X11/fonts/misc/"
    FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
    FontPath   "/usr/X11R6/lib/X11/fonts/75dpi/"
EndSection
最初の行は、RGB(Red,Green,Blue)、つまり色設定ファイルの指定です。 2行目以降は、フォントへのパスです。 FontPath はもっといっぱいあるかも知れません。

Section "ServerFlags"

Section "ServerFlags"
EndSection
ここは空でもよいでしょう。

Section "Keyboard"

Section "Keyboard"
    Protocol	"Standard"
    AutoRepeat	500 30
    XkbKeymap   "xfree86(us)"
EndSection
上2行はこんなもんです。最後の行は、キーマップの決定で、 この例では us 101 キーボードを使うことを想定しています。 日本語キーボードでは、最後の行を削除して、代わりに
    XkbModel   "jp106"
    XdbLayout   "jp"
を足しておくとよいでしょう。 Ctl キーが左下にあって使いにくく、 Ctl キーと CapLock キーを交換したい場合は、 Section "Keyboard" と EndSection の間に さらに次の1行を足しておきます。
    XkbOptions   "ctrl:swapcaps"

Section "Pointer"

Section "Pointer"
    Protocol    "PS/2"
    Device      "/dev/psm0"
EndSection
PS/2 マウスの例です。デバイスは、/dev/psm0 を使います。

Section "Monitor"

Section "Monitor"
    Identifier  "flexscan"
    VendorName  "EIZO"
    ModelName   "Flex Scan L360"
    HorizSync   24-61
    VertRefresh 50-85
    Modeline 	"1024x768" 65.0 1024 1048 1184 1344 768 771 777 806
EndSection
最後のModeline の1行を分割して、 次のように書いてもOKです。
Section "Monitor"
    Identifier  "flexscan"
    VendorName  "EIZO"
    ModelName   "Flex Scan L360"
    HorizSync   24-61
    VertRefresh 50-85
    Mode "1024x768"
       DotClock 65.0
       HTimings 1024 1048 1184 1344
       VTimings 768 771 777 806
    EndMode
EndSection

これは、EIZO 社の Flex Scan L360 の例です。 最初の Identifier, VendorName, ModelName はいいかげんでいいです。 大事なのは、 HorizSync, VertRefresh, Modeline の3行で、 お使いのモニターに合わせて設定します。 これらのうち、HorizSync と VertRefresh はモニターの 取扱説明書の仕様欄に書いてあると思います (それぞれ、水平走査周波数、垂直走査周波数となってるでしょう)。 Modeline は直接には書いてないと思いますが、 「プリセットタイミング」という表があればそれを使って 計算することができます。 詳しくは、高解像度ディスプレイの 設定をご覧下さい。(高解像度でなくても応用できます)

Section "Device"

Section "Device"
    Identifier  "nVIDIA"
    VendorName  "nVIDIA"
    BoardName   "RIVA TNT2"
    #VideoRam    32768
EndSection
これは、nVIDIA 社の RIVA TNT2 の例です。 Identifier,VendorName,BoardName すべていいかげんでOKです。 VideoRam も X が勝手に取得してくれますので、 書かなくても大丈夫です。

Section "Screen"

Section "Screen"
    Driver      "svga"
    Device      "nVIDIA"
    Monitor     "flexscan"
    DefaultColorDepth 16
    Subsection "Display"
        Depth       16
        Modes       "1024x768"
        ViewPort    0 0
    EndSubsection
EndSection
最後に、まとめです。
これらをまとめたものが、 XF86Config-sample になります。

X のテストの仕方

XF86Config を作ったら、X の起ち上げテストをしてみます。 root で、つぎのようにします。
# /usr/X11R6/bin/X -probeonly >& /root/X.out
これは、X を起ち上げようとしてみて、その結果を /root/X.out に 出力しています。(*)で始まる行は、うまく行っている事を示しています。 Warning なり Error なりが出ている場合は、 言われていることに沿って修正すればうまくいくでしょう。

トラブルシューティング

例えばうちでは、次のようなエラーが出てました。
xf86OpenConsole: KDENABIO failed (Operation not permitted)
これは、システムを高いセキュリティーレベルで運用しているせいで 起こるエラーです。対処法は、次の2通りです。

参考ページ


FreeBSD の部屋


May 30, 2002