X (Ver 4.x) の設定

XFree86 の設定ファイルは 4.x から /etc/X11/XF86Config になりました。 まずは付属のコマンドで雛型の XF86Config を作り、 それを変更することにします。


雛型 XF86Config の作り方 I (XFree86 を使う)

バージョン4系統から、新しく XFree86 というコマンドがついてきます。 root になって、-configure というオプションをつけて実行すると、 XF86Config.new という XF86Config ファイルの雛型を作ってくれます。
# XFree86 -configure

この雛型 XF86Config.new でうまく動くかどうかをテストします。
# XFree86 -xf86config XF86Config.new

うまくいかない場合は、XF86Config をいじることになります。

雛型 XF86Config の作り方 II (xf86config を使う)

root で /usr/X11R6/bin/xf86config を起ち上げます。
# /usr/X11R6/bin/xf86config

あとは、聞かれた質問に答えて行くだけです。 が、ちょっとこれはわかりにくいです。 とりあえず、適当に答えて雛型の /etc/X11/XF86Config を作ってしまいましょう。 細かい設定は、XF86Config を直接いじることでできます。

XF86Config の読み方

XFree86 もしくは xf86config で作られた XF86Config はごちゃごちゃといろいろ書いてありますが、 主に次の7つの Section に分かれています。
Section "ServerLayout" 各セクションの名前の定義など
Section "Files" フォントへのパスの指定
Section "Module" ロードするモジュールの指定
Section "InputDevice" Keyboard と Mouse をそれぞれ設定する
Section "Monitor" Monitor の設定
Section "Device" グラフィックカード(ビデオカード)に関する設定
Section "Screen" まとめ
これらについて、サンプルの XF86Config を見ながら説明します。 なお、# で始まる行はコメント行です。

Section "ServerLayOut"

Section "ServerLayout"
        Identifier     "XFree86 Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection
Screen0 や Mouse0, Keyboard0 は、 設定された Screen などに付けられた名前です。
ここは特に変更しなくても構いません。

Section "Files"

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
1行目は、RGB(Red,Green,Blue)、つまり色設定ファイルの指定です。
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"

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
Keyboard と Mouse のそれぞれで設定します。

Section "Monitor"

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
HorizSync と VertRefresh は、わからなければなくても構いません。
大事なのは、Moeline の1行で、これは EIZO 社の Flex Scan L360 の例です。
Modeline 1行を次のように書いてもよいようです。
    Mode  "1024x768"
            DotClock 65.0
            HTimings 1024 1048 1184 1344
            VTimings 768 771 777 806
    EndMode

X が動いているとき、分かってない 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" 
EndSection
ここは雛型そのままでよいです。

Section "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" は同じようなものを複数定義しておけます。

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 の部屋


Last modified: Wed Apr 20 15:29:33 JST 2011