14.2 X設定の最適化

X.Orgは、X Window Systemのオープンソース実装です。X Window Systemの新規テクノロジおよび標準の開発にも責任を負っているX.Org Foundationにより、さらに開発が続けられています。

マウス、グラフィックカード、モニタ、キーボードなど、使用可能なハードウェアを最適の方法で使用するために、設定を手動で最適化することができます。ここでは、この最適化の一部の側面について説明します。X Window Systemの設定の詳細については、ディレクトリ/usr/share/doc/packages/Xorgにある各種ファイルとman xorg.confのマニュアルページを参照してください。

[Warning]警告

X Window Systemの設定は慎重に行う必要があります。設定が完了するまでは、X Window Systemを起動しないでください。システムが正しく設定されていないと、ハードウェアが復元不能な損傷を受ける可能性があります(特に固定周波数モニタの場合)。本書およびSUSE Linuxの作成者は、損傷に責任を負うことはできません。この情報は慎重に調査されたものですが、ここで説明する方法がすべて正しく、ハードウェアが損傷を受けないという保証はありません。

プログラムSaX2およびxorgconfigは、デフォルトで/etc/X11にファイルxorg.confを作成します。これはX Window Systemの基本設定ファイルです。このファイルには、グラフィックカード、マウス、およびモニタに関する設定がすべて含まれています。

ここでは、設定ファイル/etc/X11/xorg.confの構造について説明します。xorg.confは複数のセクションで構成され、各セクションは設定の特定の側面を取り扱います。各セクションは、キーワードSection <designation>で始まってキーワードEndSectionで終わります。セクションの形式は次のようなものです。

Section designation
  entry 1
  entry 2
  entry n
EndSection
 

使用可能なセクションのタイプのリストは表 14.1. 「/etc/X11/xorg.confのセクション」にあります。

表 14.1 /etc/X11/xorg.confのセクション

タイプ

意味

Files

ここではフォントおよびRGBカラーテーブルに使用されるパスを記述します。

ServerFlags

一般スイッチはここに設定します。

InputDevice

キーボードや特殊入力デバイス(タッチパッド、ジョイスティックなど)といった入力デバイスを設定します。このセクションで重要なパラメータはDriverと、ProtocolおよびDeviceを定義するオプションです。

モニタのモデル

使用するモニタを記述します。このセクションの要素は、後でScreenの定義で参照する名称、bandwidth、および同期周波数の制限(HorizSyncおよびVertRefresh)です。設定値はMHz、kHz、およびHz単位です。通常、サーバはモニタ仕様に対応しないmodelineを拒否します。このため、意図せずに高すぎる周波数がモニタに送信されるのを防止できます。

Modes

特定の画面解像度に関するmodelineパラメータが格納されます。これらのパラメータは、ユーザ指定の値に基づいてSaX2で計算でき、通常は変更不要です。固定周波数モニタに接続する場合などは、この時点で手動で介入します。個々の数値の意味の詳細については、HOWTOファイル/usr/share/doc/howto/en/html/XFree86-Video-Timings-HOWTOを参照してください。

Device

特定のグラフィックカードを定義します。グラフィックカードは記述名で参照されます。

Screen

このセクションは、MonitorおよびDeviceを使用して、X.Orgに必要なすべての設定を指定します。Displayサブセクションでは、仮想画面(Virtual)のサイズ、ViewPort、およびこの画面で使用するModesを指定します

ServerLayout

シングルヘッド設定またはマルチヘッド設定のレイアウトを定義します。このセクションにより、入力デバイスInputDeviceと表示デバイスScreenがバインドされます。

ここでは、MonitorDevice、およびScreenについて詳しく説明します。他のセクションの詳細については、X.Orgおよびxorg.confのマニュアルページを参照してください。

xorg.confには、複数の異なるMonitorおよびDeviceセクションを記述できます。複数のScreenセクションを記述することも可能です。次のServerLayoutセクションでは、どれを使用するかが決定されます。

14.2.1 Screenセクション

Screenセクションでは、MonitorセクションとDeviceセクションを組み合わせて、どの解像度とカラー設定を使用するかを決定します。Screenセクションは例 14.1. 「ファイル/etc/X11/xorg.confのScreenセクション」のようになります。

例 14.1 ファイル/etc/X11/xorg.confのScreenセクション


Section "Screen"
  DefaultDepth  16
  SubSection "Display"
    Depth       16
    Modes       "1152x864" "1024x768" "800x600"
    Virtual     1152x864
  EndSubSection
  SubSection "Display"
    Depth       24
    Modes       "1280x1024"
  EndSubSection
  SubSection "Display"
    Depth       32
    Modes "640x480"
  EndSubSection
  SubSection "Display"
    Depth        8
    Modes       "1280x1024"
  EndSubSection
  Device        "Device[0]"
  Identifier    "Screen[0]"
  Monitor       "Monitor[0]"
EndSection

Identifier行(ここではScreen[0])では、このセクションに以降のServerLayoutセクションで一意に参照できる定義済みの名前を割り当てています。Device行とMonitor行では、この定義に属しているグラフィックカードとモニタを指定しています。これらは、対応する名前または識別子を持つDeviceおよびMonitorセクションにリンクされます。これらのセクションの詳細については、以下を参照してください。

DefaultDepth設定を使用して、特定のカラー設定で起動されない場合にサーバで使用するカラー設定を選択します。各カラー設定ごとにDisplayサブセクションがあります。キーワードDepthで、このサブセクションに有効なカラー設定を割り当てます。Depthに有効な値は8、15、16、および24です。必ずしもすべてのXサーバモジュールがこれらの値をすべてサポートしているわけではありません。

Modesセクションでは、カラー設定に続いて解像度のリストを設定します。Xサーバは、このリストを左から右に検査します。解像度ごとに、XサーバはModesセクション内で適切なModelineを検索します。Modelineは、モニタとグラフィックカード両方の機能に応じて異なります。Monitor設定により、Modelineが決まります。

最初に検出される解像度はDefault modeです。Ctrl-Alt- + (数字パッド上)を使用すると、リスト内で右隣の解像度に切り替えることができます。左隣に切り替えるには、Ctrl-Alt-(数字パッド上)を使用します。これにより、Xの実行中に解像度を変更できます。

Depth 16が指定されているDisplayサブセクションの最終行は、仮想画面のサイズを指します。仮想画面の最大許容サイズは、モニタの最大解像度ではなく、グラフィックカードにインストールされているメモリの容量と必要なカラー設定に応じて異なります。最近のグラフィックカードはビデオメモリ容量が大きくなってきているため、きわめて大型の仮想デスクトップを作成できます。ただし、ビデオメモリのほとんどが仮想デスクトップを占めると、3D機能を使用できなくなる場合があります。たとえば、カードのビデオRAMが16 MBであれば、仮想画面には8ビットカラーで最大4096x4096ピクセルのサイズを設定できます。ただし、特にアクセラレータカードの場合は、仮想画面にメモリすべてを使用しないことをお勧めします。この種のカードのメモリは、複数のフォントやグラフィックキャッシュにも使用されるからです。

14.2.2 Deviceセクション

Deviceセクションでは、特定のグラフィックカードを記述します。名前が異なっていれば、キーワードIdentifierを使用してxorg.conf内で必要な数だけデバイスエントリを指定できます。原則として、複数のグラフィックカードがインストールされている場合は、各セクションは順に番号を付けられるだけです。最初のセクションはDevice[0]、2 番目のセクションはDevice[1]となります。次のファイルは、Matrox Millennium PCIグラフィックカードが搭載されているコンピュータのDeviceセクションから抜粋したものです。

Section "Device"
  BoardName     "MGA2064W"
  BusID         "0:19:0"
  Driver        "mga"
  Identifier    "Device[0]"
  VendorName    "Matrox"
  Option        "sw_cursor"
EndSection

設定にSaX2を使用すると、Deviceセクションは上記の例のようになります。DriverおよびBusIDは、どちらもコンピュータにインストールされているハードウェアに応じて異なり、SaX2により自動的に検出されます。BusIDは、グラフィックカードがインストールされているPCIスロットまたはAGPスロットの定義です。これは、lspciコマンドで表示されるIDと一致します。Xサーバは10進形式による詳細を必要としますが、lspciではこれらが16進形式で表示されます。

ドライバパラメータにより、このグラフィックカードに使用するドライバを指定します。カードがMatrox Millenniumである場合は、ドライバモジュールはmgaと呼ばれます。Xサーバは、driversサブディレクトリのFilesセクションで定義されているModulePathを検索します。標準インストールの場合、これはディレクトリ/usr/X11R6/lib/modules/driversです。名前には_drv.oが追加されるので、mgaドライバの場合は、ドライバファイルmga_drv.oがロードされます。

Xサーバやドライバの動作は、その他のオプションを使用して変更することもできます。その一例がDeviceセクションで設定するオプションsw_cursorです。このオプションは、ハードウェアのマウスカーソルを無効にし、ソフトウェアを使用してマウスカーソルを示します。ドライバモジュールによっては、さまざまなオプションを使用できます。各オプションは、ディレクトリ/usr/X11R6/lib/X11/doc内のドライバモジュール記述ファイル内にあります。通常、有効なオプションについてはマニュアルページ(man xorg.confおよびman X.Org)でも確認できます。

14.2.3 MonitorセクションとModesセクション

Deviceセクションと同様に、MonitorセクションとModesセクションでもモニタを1つずつ記述します。設定ファイル/etc/X11/xorg.confでは、Monitorセクションを必要な数だけ指定できます。サーバレイアウトセクションでは、どのMonitorセクションが関係するかを指定します。

熟練者以外は、モニタ定義を設定しないでください。modelineは、Monitorセクションで重要な役割を果たします。modelineでは、関連解像度の水平と垂直のタイミングを設定します。モニタ特性、特に許容周波数は、Monitorセクションに格納されます。

[Warning]警告

モニタとグラフィックカードの機能を熟知していない場合は、モニタが深刻な損傷を受ける恐れがあるので、modelineを変更しないでください。

独自のモニタ記述を作成する場合は、/usr/X11/lib/X11/doc内のドキュメントを熟読する必要があります。ビデオモード関連のセクションには、特に注意する必要があります。ハードウェアの動作とmodelineの作成方法が詳しく記述されています。

modelineの手動指定が必要になることはほとんどありません。最新のマルチシンクモニタを使用している場合、許容周波数と最適解像度は、SaX2設定のセクションで説明したように、原則としてXサーバがDDCを介してモニタから直接読み込みます。何らかの原因で直接読み込めない場合は、Xサーバに付属するVESAモードの1つを使用してください。このモードは、実際にはグラフィックカードとモニタのすべての組み合わせに機能します。