6.4. X11 の設定

寄稿: Christopher Shumway.

6.4.1. はじめに

X11 は、ほとんどの機器を自動で設定します。 古かったり、一般的ではないような機器を使う場合には、設定を始める前に、 以下のハードウェア情報を集めておくと助けになるでしょう。

画面の解像度とリフレッシュレートは、 モニタの水平および垂直同期周波数により決定されます。 ほとんどすべてのモニタは、これらの値を自動検出します。 これらの値を自動検出しないモニタもありますが、 こういった仕様は、付属のマニュアルや、 製造元のウェブサイトから取得できます。

ビデオカードのチップセットも自動検出され、 ビデオドライバの選択に使われます。 正常に認識されない時のために、 どのチップセットが使われているかを知っておくとよいでしょう。

ビデオカードのメモリは、 グラフィックアダプタがどの解像度とどの色数で動くことができるかを決めます。

6.4.2. X11 の設定

Xorg は、 HAL を用いてキーボードやマウスを自動認識します。 x11/xorg の依存として、 sysutils/hal および devel/dbus port がインストールされますが、以下のようなエントリを /etc/rc.conf ファイルに追加し、 有効にする必要があります。

hald_enable="YES"
dbus_enable="YES"

これらのサービスは、 Xorg の設定や起動が行われる前に (手動や再起動によって) 起動している必要があります。

Xorg は、設定をすることなく

% startx

と入力するだけで起動します。

ある種のハードウェアは、自動設定で動作しなかったり、 期待したような設定が行われないかもしれません。 そのような場合には、手動で設定する必要があります。

注意: GNOME, KDE および Xfce などのデスクトップ環境では、 解像度などのスクリーンパラメータを簡単に設定できるツールがあります。 したがって、デフォルトの設定が満足するようなものではない場合でも、 これらのデスクトップ環境をインストールすることを考えているのであれば、 デスクトップ環境をインストールして、 スクリーン設定ツールを利用してください。

X11 の設定は複数の段階を経て行います。 まずは初期設定ファイルを作りましょう。 スーパーユーザになって次のようにしてください。

# Xorg -configure

これにより、/root ディレクトリに xorg.conf.new という X11 の設定ファイルの雛形が生成されます (su(1) か直接ログインのどちらを利用したかが、受け継がれる $HOME 環境変数に影響します)。 X11 プログラムはシステム上のグラフィックハードウェアを検出し、 そのハードウェア用の適切なドライバを読み込む設定ファイルを作ります。

次のステップは、作成した設定ファイルで Xorg がそのグラフィックハードウェアで動くことを確認することです。 以下を実行してください。

# Xorg -config xorg.conf.new -retro

黒とグレーのグリッドと X のマウスポインタが現われればその設定は成功です。 テストを終了するには、コマンドを実行した仮想コンソールに Ctrl+Alt+Fn (1 番目の仮想コンソールへは F1) と入力して切り替え、 Ctrl+C と入力してください。

注意: Ctrl+Alt+Backspace キーの組み合わせでも Xorg を終了できます。 このキー操作を利用する場合には、 X 端末エミュレータで以下のコマンドを入力してください。

% setxkbmap -option terminate:ctrl_alt_bksp

または、hald 用のキーボード設定ファイル x11-input.fdi を作成して、/usr/local/etc/hal/fdi/policy ディレクトリに保存してください。 このファイルには以下を含める必要があります。

<?xml version="1.0" encoding="iso-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.keyboard">
	  <merge key="input.x11_options.XkbOptions" type="string">terminate:ctrl_alt_bksp</merge>
    </match>
  </device>
</deviceinfo>

hald がこのファイルを読み込むように、 コンピュータを再起動してください。

xorg.conf.newServerLayout もしくは ServerFlags セクションに、以下の行を追加する必要もあるでしょう。

Option	"DontZap"	"off"

もしマウスが動作しなければ、 先へ進む前にマウスの設定を行う必要があります。 FreeBSD インストールの章の 項3.10.10 を参照してください。 さらに、 最近の Xorg では、デバイスの自動認識のため、 xorg.confInputDevice セクションは無視されます。 古い設定の記述を利用するには、 以下の行をファイルの ServerLayout もしくは、 ServerFlags セクションに追加してください。

Option "AutoAddDevices" "false"

これで、以前のバージョンのように、入力デバイスを (キーボードレイアウトの変更のように) 必要なオプションを用いて設定できるようになります。

注意: すでに説明したように、デフォルトで hald デーモンがキーボードを自動的に認識します。 キーボードレイアウトやモデルを正しく認識しない場合でも、 GNOME, KDE もしくは Xfce のようなデスクトップ環境が、 キーボードの設定ツールを提供している可能性があります。 しかしながら、 setxkbmap(1) ユーティリティや hald の設定を利用することで、 キーボードのプロパティを直接設定できます。

たとえば、フランス語のレイアウトの PC 102 キーボードを使いたい場合には、 hald のキーボード設定ファイル x11-input.fdi を作成し、/usr/local/etc/hal/fdi/policy ディレクトリに保存してください。 このファイルは以下を含んでいる必要があります。

<?xml version="1.0" encoding="iso-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.keyboard">
	  <merge key="input.x11_options.XkbModel" type="string">pc102</merge>
	  <merge key="input.x11_options.XkbLayout" type="string">fr</merge>
    </match>
  </device>
</deviceinfo>

このファイルがすでに存在する場合には、 キーボードの設定に関する部分をただ単にコピーし、 ファイルに追加してください。

hald がこのファイルを読み込むように、 コンピュータを再起動してください。

X 端末やスクリプトから以下のコマンドラインを実行することでも、 同様に設定できます。

% setxkbmap -model pc102 -layout fr

/usr/local/share/X11/xkb/rules/base.lst ファイルは、利用可能なキーボード、レイアウトおよびオプションの一覧です。

次に xorg.conf.new を好みに合うように調整します。 emacs(1)ee(1) のようなテキストエディタでファイルを開いてください。 モニタが古い場合や、通常とは異なるモデルでは、 同期周波数の自動認識に対応していないので、 これらの値を xorg.conf.new"Monitor" セクションに次のように書き加えます。


	Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
        HorizSync    30-107
        VertRefresh  48-120
	EndSection
     

ほとんどのモニタは同期周波数の自動認識に対応しているので、 これらの値を手動で入力する必要はありません。 自動認識に対応していないモニタでは、 ダメージの可能性を避けるため、 メーカーが提供している値のみを入力してください。

X はモニタが対応していれば DPMS (Energy Star) 機能を使うことができます。 xset(1) プログラムでタイムアウトをコントロールしたり、 強制的にスタンバイ、サスペンドや電源オフにすることができます。 モニタの DPMS 機能を有効にしたい場合は、 "Monitor" セクションに次の行を加えてください。

Option       "DPMS"

xorg.conf.new はエディタで開いたままにしておき、 デフォルトの解像度と色数を好みで選びましょう。 "Screen" セクションに以下のように書きます。

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth 24
        SubSection "Display"
                Viewport  0 0
                Depth     24
                Modes     "1024x768"
        EndSubSection
EndSection

DefaultDepth というキーワードは 実行時のデフォルトの色数について記述するためのものです。 Xorg(1) のコマンドラインスイッチ -depth が使用された場合はそちらが優先されます。 Modes というキーワードは、 与えられた色数におけるデフォルトの解像度を記述しておくためのものです。 ターゲットのシステムのグラフィックハードウェアによって定義されている、 VESA スタンダードモードのみがサポートされていることに注意してください。 上の例ではデフォルトの色数はピクセルあたり 24 ビットであり、 この色数での解像度は 1024 ピクセル× 768 ピクセルです。

最後に、設定ファイルを保存し、 上の例にあるようにテストしてみてください。

注意: トラブルシューティングの過程で手助けするツールのひとつに X11 のログファイルがあります。これには、 X11 サーバが検知したデバイスそれぞれについての情報があります。 Xorg のログファイル名は /var/log/Xorg.0.log という形式です。実際のログファイル名は Xorg.0.log から Xorg.8.log のように変わります。

すべてうまくいったなら、設定ファイルを Xorg(1) が見つけることができる共通の場所に置きます。 これは、通常は /etc/X11/xorg.conf/usr/local/etc/X11/xorg.conf です。

# cp xorg.conf.new /etc/X11/xorg.conf

これで X11 の設定は完了です。 startx(1) ユーティリティで Xorg を起動できます。また、 xdm(1) を使って X11 サーバを起動することもできます。

6.4.3. 高度な設定

6.4.3.1. Intel® i810 グラフィックチップセットの設定

Intel® i810 統合チップセットを設定するには、 X11 にカードを制御させるために AGP プログラミングインタフェースである agpgart が必要になります。 詳しくは、agp(4) ドライバのマニュアルページをご覧ください。

このドライバを用いることで、 他のグラフィックカードと同様に設定を行うことができるようになります。 カーネルに agp(4) ドライバが組み込まれていないシステムでは、 このモジュールを kldload(8) を使って読み込もうとしても動作しないことに注意してください。 このドライバは、 起動時にカーネル内に存在するようにカーネル内部に組み込むか、 /boot/loader.conf を使わなければなりません。

6.4.3.2. ワイドスクリーンフラットパネルの追加

この章では、設定に関する幾分高度な知識を必要とします。 これまでに述べた標準ツールを使って設定に失敗する場合は、 ログファイルを参照してください。 ログファイルには、 設定のために有用な情報が十分含まれています。 テキストエディタを使用する必要があるでしょう。

現在のワイドスクリーン (WSXGA, WSXGA+, WUXGA, WXGA, WXGA+ など) は、 16:10 や 10:9 形式、または (問題を含む可能性のある) 他のアスペクト比に対応しています。 以下は、16:10 アスペクト比のスクリーン解像度の例です。

  • 2560x1600

  • 1920x1200

  • 1680x1050

  • 1440x900

  • 1280x800

これらの解像度のひとつを以下のように "Screen" セクションMode に追加してください。

Section "Screen"
Identifier "Screen0"
Device     "Card0"
Monitor    "Monitor0"
DefaultDepth 24
SubSection "Display"
	Viewport  0 0
	Depth     24
	Modes     "1680x1050"
EndSubSection
EndSection

Xorg は、I2C/DDC を通してワイドスクリーンの解像度に関する情報を取得できるので、 モニタの周波数や解像度の範囲を把握しています。

もし、これらの ModeLines についての情報がドライバに存在しないのであれば、 Xorg にヒントを与えなけれならないでしょう。 ModeLine を手動で設定するのに十分な情報を /var/log/Xorg.0.log から得ることができます。 以下のような情報を探してください。

(II) MGA(0): Supported additional Video Mode:
(II) MGA(0): clock: 146.2 MHz   Image Size:  433 x 271 mm
(II) MGA(0): h_active: 1680  h_sync: 1784  h_sync_end 1960 h_blank_end 2240 h_border: 0
(II) MGA(0): v_active: 1050  v_sync: 1053  v_sync_end 1059 v_blanking: 1089 v_border: 0
(II) MGA(0): Ranges: V min: 48  V max: 85 Hz, H min: 30  H max: 94 kHz, PixClock max 170 MHz

これは EDID と呼ばれる情報です。 この情報を用いて ModeLine を作成するには、 正しい順番に数字を入力するだけです。

 ModeLine <name> <clock> <4 horiz. timings> <4 vert. timings>

この例では "Monitor" セクションの ModeLine は以下のようになります。

Section "Monitor"
Identifier      "Monitor1"
VendorName      "Bigname"
ModelName       "BestModel"
ModeLine        "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089
Option          "DPMS"
EndSection

以上の簡単な編集作業が終わったら、 新しいワイドスクリーンモニタ上で X が動作するでしょう。

本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。

FreeBSD に関する質問がある場合には、ドキュメント を読んだ上で <questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。