5.4. Xorg の設定

Block Warren [FAMILY Given]

5.4.1. クィックスタート

Xorg は、 標準的なほとんどのビデオカード、 キーボード、ポインティングデバイスに対応しています。 これらのデバイスは、自動的に検出されるため、 手動の設定は必要ありません。

  1. もし、使用しているコンピュータですでに Xorg が使われているのであれば、 コンフィグレーションファイルを移動するか、削除してください。

    # mv /etc/X11/xorg.conf ~/xorg.conf.etc
    # mv /usr/local/etc/X11/xorg.conf ~/xorg.conf.localetc
  2. 3D アクセラレータを利用できるシステムでは、 Xorg を実行するユーザを video または wheel グループに追加して、 使用できるようにしてください。 ユーザ jru をどちらのグループでも利用できるようにするには以下のように実行してください。

    # pw groupmod video -m jru || pw groupmod wheel -m jru
  3. デフォルトでは TWM ウィンドウマネージャがインストールされています。 Xorg が起動すると、 このウィンドウマネージャが立ち上がります。

    % startx
  4. 古いバージョンの FreeBSD では、 テキストコンソールに戻れるようにするために、 システムコンソールは vt(4) に設定する必要があります。 「Kernel Mode Setting (KMS)」 を参照してください。

5.4.2. Accelerated Video のためのユーザグループ

ビデオカードの 3D アクセラレータを有効にするには、 /dev/dri へのアクセスが必要となります。 通常は、X を実行するユーザを video または wheel グループに追加するするだけです。 ここでは、pw(8) を使ってユーザ slurmsvideo グループ、または video グループが存在しない時に、 wheel グループに追加しています。

# pw groupmod video -m slurms || pw groupmod wheel -m slurms

5.4.3. Kernel Mode Setting (KMS)

コンピュータが、コンソールの表示から、 X 用の高解像度の表示へと切り替える時には、 ビデオの出力 mode が設定されている必要があります。 最近の Xorg では、 カーネル内部のシステムを使って効率的にこれらのモードの変換をしています。 古いバージョンの FreeBSD では、 KMS システムを用いない sc(4) が使用されています。 X を閉じた後、システムコンソールは動作をしていても、 表示に黒になります。 新しい vt(4) コンソールではこの問題は起こりません。

以下の行を /boot/loader.conf に追加して vt(4) を有効にしてください。

kern.vty=vt

5.4.4. コンフィグレーションファイル

5.4.4.1. ディレクトリ

Xorg は、 複数のディレクトリから設定ファイルを探します。 FreeBSD において、設定ファイルのディレクトリは、 /usr/local/etc/X11/ が推奨されます。 このディレクトリを使うことで、 アプリケーションのファイルをオペレーティングシステムとは区別する事になります。

昔のコンフィグレーションファイルの置き場である /etc/X11/ も機能します。 しかしながら、この場所に置くと、アプリケーションファイルと FreeBSD システムのファイルが混ざってしまうため、推奨されません。

5.4.4.2. 単一または複数ファイル

複数のファイルを用いて、 各ファイルが特定の部分を設定するようにすると、 古い単一の xorg.conf を用いるよりも設定が簡単になります。 これらのファイルは、 メインのコンフィグレーションファイルのディレクトリの xorg.conf.d/ サブディレクトリに置かれます。 フルパスは、一般的に /usr/local/etc/X11/xorg.conf.d/ となります。

これらのファイルの例は、この節の後半で説明します。

古い単一の xorg.conf も機能しますが、 xorg.conf.d/ サブディレクトリに複数のファイルで設定する形式に比べると、 柔軟ではなく、わかりにくいものとなります。

5.4.5. ビデオカード

Intel®

Iron Lake (HD Graphics) および Sandy Bridge (HD Graphics 2000) を含む Ivy Bridge (HD Graphics 2500, 4000, および P4000) までのほとんどの Intel® グラフィックスは、3D acceleration に対応しています。

ドライバ名: intel

参考情報については https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units をご覧ください。

AMD® Radeon

ATI/Radeon: 2D および 3D acceleration は、 HD6000 シリーズまでのほとんどの Radeon カードで対応しています。

ドライバ名: radeon

参考情報については https://en.wikipedia.org/wiki/List_of_AMD_graphics_processing_units をご覧ください。

NVIDIA

NVIDIA: いくつかの NVIDIA ドライバが Ports Collection の x11 カテゴリから利用できます。 ビデオカードのモデルに対応するドライバをインストールしてください。

参考情報については https://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units をご覧ください。

ハイブリッドグラフィックス

ノートブックコンピュータによっては、 チップセットまたはプロセッサに組み込まれているグラフィックプロセッサユニットの他に、 追加でそれらを持つものがあります。 Optimus は、 Intel® と NVIDIA ハードウェアを組み合わせています。 Switchable Graphics または、 Hybrid Graphics は、 Intel® または AMD® プロセッサと AMD® Radeon GPU を組み合わせています。

これらのハイブリッドなグラフィックシステムの実装は、 システムごとに異なるので、 FreeBSD の Xorg は、 これらのすべてのバージョンについて対応しているわけではありません。

コンピュータによっては、 片方のグラフィックアダプタを無効にしたり、 標準のビデオカードドライバの一つとともに使われる discrete モードを選択できるような BIOS オプションを提供しています。 たとえば、Optimus システムでは、NVIDIA GPU を無効にできるものがあります。 その後、Intel® ビデオカードは、 Intel® ドライバで利用できます。

BIOS の設定は、 コンピュータのモデルに依存します。 システムによっては、両方の GPU を有効にできますが、 そのようなシステムの機能を利用するには、 Device セッションにおいて、 メインの GPU のみを使用するようなコンフィグレーションファイルを作成ことで十分です。

他のビデオカード

Ports Collection の x11-drivers ディレクトリには、 あまり使用されないようなドライバも用意されています。

特定のドライバによりサポートされていないようなカードでも、 x11-drivers/xf86-video-vesa で使用できるかもしれません。 このドライバは、x11/xorg によりインストールされます。 手動でインストールするには、 x11-drivers/xf86-video-vesa としてインストールしてください。 ビデオカードに対して、特定のドライバが見つからない場合には、 Xorg はこのドライバを使うことを試みます。

x11-drivers/xf86-video-scfb も同様に、多くの UEFI および ARM® コンピュータで動くような、 使用するカードを特定していないビデオドライバです。

ファイルでビデオドライバを設定する。

コンフィグレーションファイルにおいて Intel® ドライバを設定するには、以下のようにしてください。

例5.1 ファイルにおいて Intel® ビデオドライバを選択する。

/usr/local/etc/X11/xorg.conf.d/driver-intel.conf

Section "Device"
	Identifier "Card0"
	Driver     "intel"
	# BusID    "PCI:1:0:0"
EndSection

1つ以上のビデオカードが存在する場合には、 BusID 行のコメントを外し、 希望するカードを選択するように設定できます。 ビデオカードバス ID は、 pciconf -lv | grep -B3 display で表示できます。


コンフィグレーションファイルで、Radeon ドライバを設定するには以下のようにしてください。

例5.2 ファイルにおいて Radeon ビデオドライバを設定する。

/usr/local/etc/X11/xorg.conf.d/driver-radeon.conf

Section "Device"
	Identifier "Card0"
	Driver     "radeon"
EndSection

コンフィグレーションファイルで VESA ドライバを設定するには、以下のようにしてください。

例5.3 ファイルで VESA ビデオドライバを設定する。

/usr/local/etc/X11/xorg.conf.d/driver-vesa.conf

Section "Device"
	Identifier "Card0"
	Driver     "vesa"
EndSection

UEFI または ARM® コンピュータを使うために scfb ドライバを設定するには、以下のように設定してください。

例5.4 ファイルの中で scfb ビデオドライバを選択する。

/usr/local/etc/X11/xorg.conf.d/driver-scfb.conf

Section "Device"
	Identifier "Card0"
	Driver     "scfb"
EndSection

5.4.6. モニタ

ほとんどすべてのモニタは、Extended Display Identification Data standard (EDID) に対応しています。 XorgEDID を使ってモニタと通信し、 対応している解像度とリフレッシュレートを検出します。 そのため、モニタを使用するのに最も適切な設定が選択されます。

モニタにより対応している他の解像度は、 コンフィグレーションファイルに希望する解像度を設定する、 または X サーバを起動後、xrandr(1) により選択が可能となります。

xrandr(1) の使用

パラメータを与えずに xrandr(1) を実行すると、 ビデオ出力と検出されているモニタのモードを確認できます。

% xrandr
Screen 0: minimum 320 x 200, current 3000 x 1920, maximum 8192 x 8192
DVI-0 connected primary 1920x1200+1080+0 (normal left inverted right x axis y axis) 495mm x 310mm
   1920x1200     59.95*+
   1600x1200     60.00
   1280x1024     85.02    75.02    60.02
   1280x960      60.00
   1152x864      75.00
   1024x768      85.00    75.08    70.07    60.00
   832x624       74.55
   800x600       75.00    60.32
   640x480       75.00    60.00
   720x400       70.08
DisplayPort-0 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)

この出力からは、リフレッシュレート約 60 Hz で、 スクリーン解像度 1920x1200 ピクセルの表示に DVI-0 出力が使用されていることが分かります。 また、DisplayPort-0 および HDMI-0 インタフェースには、 モニタは接続されていません。

xrandr(1) を使用して、 他のディスプレイモードを選択できます。 たとえば、60 Hz で、1280x1024 の表示に変更するには、 以下のように実行してください。

% xrandr --mode 1280x1024 --rate 60

ノートブックコンピュータの外部出力を使用して、 ビデオプロジェクタに接続することがよく行われます。

出力端子のタイプおよび番号は、デバイスごとに異なります。 また、各端子の名前もドライバごとに異なります。 あるドライバが HDMI-1 と呼ぶ出力が、 別のドライバでは HDMI1 と呼ばれることもあります。 そのため、最初に xrandr(1) を実行して、 利用可能な出力のすべての一覧を表示してください。

% xrandr
Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192
LVDS1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 193mm
   1366x768      60.04*+
   1024x768      60.00
   800x600       60.32    56.25
   640x480       59.94
VGA1 connected (normal left inverted right x axis y axis)
   1280x1024     60.02 +  75.02
   1280x960      60.00
   1152x864      75.00
   1024x768      75.08    70.07    60.00
   832x624       74.55
   800x600       72.19    75.00    60.32    56.25
   640x480       75.00    72.81    66.67    60.00
   720x400       70.08
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)

この出力からは、組み込みパネルの LVDS1, 外部出力の VGA1, HDMI1, そして DP1 端子の 4 つの出力を確認できます。

プロジェクタは VGA1 出力に接続されています。 情報を得られたので、xrandr(1) を使ってプロジェクタの標準の解像度に設定し、 デスクトップの右側にスペースを追加できます。

% xrandr --output VGA1 --auto --right-of LVDS1

この設定において、--auto は、 EDID により検出された解像度とリフレッシュレートを選択します。 解像度を正しく検出できていない場合には、 --auto のかわりに、 --mode を使うことで、 解像度を固定値を与えることにより設定できます。 たとえば、ほとんどのプロジェクタでは 1024x768 の解像度で使用できるので、 この場合には、--mode 1024x768 のように設定できます。

xrandr(1) は、X を起動する際に、 適切なモードを設定するように、しばしば .xinitrc から実行されます。

モニタ解像度をファイルで設定する。

コンフィグレーションファイルでスクリーンの解像度を 1024x768 と設定するには以下のようにしてください。

例5.5 スクリーンの解像度をファイルで設定する。

/usr/local/etc/X11/xorg.conf.d/screen-resolution.conf

Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	SubSection "Display"
	Modes      "1024x768"
	EndSubSection
EndSection

EDID を持っていないモニタもあります。その場合には、 モニタが対応している周波数の範囲を、 HorizSync および VertRefresh で、指定することで設定できます。

例5.6 手動でモニタの周波数を設定する。

/usr/local/etc/X11/xorg.conf.d/monitor0-freq.conf

Section "Monitor"
	Identifier   "Monitor0"
	HorizSync    30-83   # kHz
	VertRefresh  50-76   # Hz
EndSection

5.4.7. 入力デバイス

5.4.7.1. キーボード

キーボードレイアウト

キーボード上の標準化されたキーの位置を レイアウト と呼びます。 レイアウトと他の調整可能なパラメータについては、 xkeyboard-config(7) にまとめられています。

アメリカ合衆国のレイアウトがデフォルトです。 他のレイアウトを選択するには、 InputClass で、 XkbLayout および XkbVariant オプションを設定してください。 クラスに対応するすべての入力デバイスに適用できます。

以下の例では、 oss キー配置のフランス語のキーボードレイアウトを選択します。

例5.7 キーボードレイアウトを選択する。

/usr/local/etc/X11/xorg.conf.d/keyboard-fr-oss.conf

Section	"InputClass"
	Identifier	"KeyboardDefaults"
	Driver		"keyboard"
	MatchIsKeyboard	"on"
	Option		"XkbLayout" "fr"
	Option		"XkbVariant" "oss"
EndSection

例5.8 複数のキーボードレイアウトを選択する。

アメリカ合衆国、スペイン、 ウクライナのキーボードレイアウトを、 Alt+Shift によって切り替えるようにするには以下のように設定します。 レイアウトスイッチングコントロールや現在のレイアウトインディケータを改良するには、 x11/xxkb または、 x11/sbxkb を使ってください。

/usr/local/etc/X11/xorg.conf.d/kbd-layout-multi.conf

Section	"InputClass"
	Identifier	"All Keyboards"
	MatchIsKeyboard	"yes"
	Option		"XkbLayout" "us, es, ua"
EndSection

キーボードから Xorg を終了する。

X をキーの組み合わせで終了できるように設定できます。 デフォルトでは、幾つかのアプリケーションで、 キーボードコマンドと衝突してしまう可能性があるため、 このキーの組み合わせは設定されていません。 このオプションを有効にするには、 キーボードの InputDevice セクションを変更してください。

例5.9 キーボードからの X の終了を有効にする。

/usr/local/etc/X11/xorg.conf.d/keyboard-zap.conf

Section	"InputClass"
	Identifier	"KeyboardDefaults"
	Driver		"keyboard"
	MatchIsKeyboard	"on"
	Option		"XkbOptions" "terminate:ctrl_alt_bksp"
EndSection

5.4.7.2. マウスおよびポインティングデバイス

コンフィグレーションオプションにより、 多くのマウスパラメータを調整できます。 すべての一覧については、mousedrv(4) をご覧ください。

マウスボタン

xorg.conf のマウス InputDevice セクションで、 マウスのボタンの数を設定できます。 ボタンの数を 7 に設定するには、 以下のように設定してください。

例5.10 マウスボタンの数を設定する。

/usr/local/etc/X11/xorg.conf.d/mouse0-buttons.conf

Section "InputDevice"
	Identifier  "Mouse0"
	Option      "Buttons" "7"
EndSection

5.4.8. 手動による設定

ハードウェアによっては、Xorg の自動設定で適切な設定が行われなかったり、 自動設定とは別の設定にしたいときがあります。 そのような場合のため、 カスタムコンフィグレーションファイルを作成できます。

検出されたハードウェアをベースとした、 Xorg のコンフィグレーションファイルを作成できます。 このファイルは、 カスタムコンフィグレーションファイルの最初の出発点として有用です。

以下のようにすると xorg.conf が生成されます。

# Xorg -configure

このコンフィグレーションファイルは、 /root/xorg.conf.new として保存されます。 必要となる変更を行った後、このファイルをテストしてください。

# Xorg -config /root/xorg.conf.new

新しい設定を調整してテストしたら、 ファイルに分割して、標準の場所である、 /usr/local/etc/X11/xorg.conf.d/ に置いてください。

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

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

本文書に関する質問については、 <doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。