Xorg

提供: ArchWiki
2015年2月1日 (日) 13:08時点におけるKusakata (トーク | 投稿記録)による版
ナビゲーションに移動 検索に移動

関連記事

http://www.x.org/wiki/ より:

X.Org プロジェクトは X Window System のオープンソース実装を提供しています。開発作業は freedesktop.org コミュニティと共同で行われています。

Xorg は X window system バージョン 11 のオープンソース実装です。Linux ユーザーの中で Xorg が一番ポピュラーな選択となってから、GUI アプリケーションにとって Xorg は欠かせない存在となり、ほとんどのディストリビューションで広く採用されています。詳しくは Wikipedia の XorgXorg のウェブサイト を見て下さい。

目次

インストール

X サーバーをインストールするには、まず公式リポジトリxorg-server パッケージをインストールする必要があります。

また、設定作業などに必要なパッケージのいくつかが xorg-server-utils メタパッケージに入っており、それぞれ関連するセクションで説明しています。他の有用なパッケージは xorg-apps グループの中にあります。

ヒント: デフォルトの X 環境はほとんど裸の状態です。基本的に、X を使うにあたってウィンドウマネージャデスクトップ環境をインストールすることになるでしょう。

ドライバーのインストール

Linux カーネルにはオープンソースのビデオドライバーが含まれておりハードウェアでアクセラレートされたフレームバッファをサポートしています。しかし、OpenGL や X11 における 2D アクセラレーションを使うにはユーザーランドのサポートが必要です。

まず、あなたのカードを確認してください:

$ lspci | grep -e VGA -e 3D

それから適切なドライバーをインストールしてください。パッケージデータベースを検索してオープンソースビデオドライバーの一覧を表示することができます:

$ pacman -Ss xf86-video

デフォルトのグラフィックドライバーは vesa (xf86-video-vesa パッケージ) で、ほとんどのチップセットで動作しますが 2D や 3D のアクセラレーションは含まれていません。より良いドライバが見つからなかったり、ロードできなかった場合、Xorg は vesa ドライバに戻ります。

ビデオアクセラレーション機能を動かしたり、GPU が設定できる全てのモードを表示するには、正しいビデオドライバが必要です:

ノート: オンボードのグラフィックカードとディスクリート GPU が混載されていて、NVIDIA Optimus が有効になっているノートパソコンを使用する場合は、Bumblebee を見て下さい。
ブランド 種別 ドライバ Multilib ドキュメント
 AMD/ATI  オープンソース xf86-video-ati lib32-mesa-libgl ATI
プロプライエタリ catalyst-dkmsAUR lib32-catalyst-utilsAUR AMD Catalyst
Intel オープンソース xf86-video-intel lib32-mesa-libgl Intel Graphics
Nvidia オープンソース xf86-video-nouveau lib32-mesa-libgl Nouveau
プロプライエタリ nvidia lib32-nvidia-libgl NVIDIA
nvidia-340xx lib32-nvidia-340xx-libgl
nvidia-304xx lib32-nvidia-304xx-libgl
VIA オープンソース xf86-video-openchrome VIA

他のビデオドライバーは xorg-drivers グループで見つけることができます。

Xorg はクローズドソースのドライバーがなくとも問題なく動作するはずです。基本的に、ゲームのための 3D アクセラレートレンダリングや、デュアルスクリーン、TV 出力など高度な機能を使う場合にのみプロプライエタリのドライバが必要になります。

起動

参照: ログイン時に X を起動

ヒント: X を起動する一番簡単な方法は GDM, KDM, SLiM などのディスプレイマネージャを使うことです。

ディスプレイマネージャを使わずに X を起動したいなら、xorg-xinit パッケージをインストールしてください。任意で、下で述べているデフォルト環境のために xorg-twm, xorg-xclock, xterm もインストールできます。

startxxinit コマンドで X サーバーとクライアントを起動します (startx スクリプトは単に xinit コマンドのフロントエンドにすぎません)。起動するクライアントを決めるために、まず startx/xinit はユーザーの home ディレクトリにある ~/.xinitrc ファイルをパースします。~/.xinitrc がない場合、代わりにユーザー共通の /etc/X11/xinit/xinitrc ファイルが使われます。このファイルにはデフォルトで Twm ウィンドウマネージャ、XclockXterm のベーシックな環境を起動します。詳しくは xinitrc を見て下さい。

ノート:
  • logind セッションを維持するために、X はログインしたのと同じ tty で実行させる必要があります。これはデフォルトの /etc/X11/xinit/xserverrc で管理されています。詳細は一般的なトラブルシューティング#セッションのパーミッションを参照してください。
  • 問題が発生したら、/var/log/Xorg.0.log のログを見て下さい。(EE) (エラーを意味する) や (WW) (警告などを示す) で始まっている行をチェックする必要があります。
  • あなたの $HOME空の .xinitrc ファイルがある場合、X を正しく起動するためにそれを削除するか編集してください。それをしないと X は Xorg.0.log に何のエラーも残さずに黒画面を表示します。削除したときはデフォルトの X 環境が起動するようになります。
警告: startx の代わりに xinit を使う場合は、-nolisten tcp を渡して、異なる tty で X を起動することでセッションが破壊されることがないようにしてください。

設定

ノート: Arch はデフォルトの設定ファイルを /usr/share/X11/xorg.conf.d に配置しており、ほとんどの場合、追加の設定は必要ありません。

Xorg は初期設定に xorg.conf という名前の設定ファイルと .conf が末尾につくファイルを使います: これらのファイルが使われるフォルダの一覧は [1] を見たり man xorg.conf を実行することで(利用できるオプションの説明と一緒に)調べることができます。

.conf ファイルを使う

/etc/X11/xorg.conf.d/ ディレクトリにはユーザー定義の設定を保存します。あなたは自由に設定ファイルを /etc/X11/xorg.conf.d/ に追加することができますが、ファイル名には XX- (XX は数字です) を先頭につけ拡張子は .conf である必要があります (例えば 10 は 20 より早く読み込まれます)。これらのファイルは X サーバーの起動時にパースされ従来の xorg.conf 設定ファイルの一部として扱われます。基本的に X サーバーは設定ファイルの集合を xorg.conf の最後のエントリとしてひとつの大きなファイルとして扱います。

xorg.conf を使う

/etc/X11/xorg.conf/etc/xorg.conf で Xorg を設定することもできます。xorg.conf のスケルトンを生成するには

 # Xorg :0 -configure

上のコマンドで /root/xorg.conf.new ファイルが作られるはずです。これを /etc/X11/xorg.conf にコピーして上書きすることができます。

もしくは、あなたのビデオカードドライバに自動で Xorg を設定するツールが含まれているかもしれません。詳しくは NVIDIAAMD Catalyst などあなたの使っているビデオカードの記事を見て下さい。

ノート: 設定ファイルは大文字・小文字を区別しません、また “_” は無視されます。(Option など) 設定ファイル内のほとんどの文字列も大文字・小文字・空白・“_” を区別しません。

設定サンプル

  • xorg.conf
Sample 1
ノート: Sample configuration file using /etc/X11/xorg.conf.d/10-evdev.conf for the keyboard layouts. Note the commented out InputDevice sections.
  • /etc/X11/xorg.conf.d/10-evdev.conf
Sample 1
ノート: This is the 10-evdev.conf file that goes with the xorg.conf sample 1.
  • /etc/X11/xorg.conf.d/10-monitor.conf
  1. VMware
  2. KVM
  3. NVIDIA
ノート: nvidia-ck binary drivers (v325); Dual GPU, Dual Monitor, Dual Screen; No Twinview, No Xinerama; Rotated and vertically placed screen1 above screen0.

入力デバイス

Udev があなたのハードウェアを検知し、evdev がほとんど全てのデバイスのホットプラグ・インプットドライバとして動作します。Udevsystemd によって提供され、xf86-input-evdevxorg-server から必要とされます。従ってこれらのパッケージを別個にインストールする必要はありません。evdev があなたの持っているデバイスをサポートしていないときは、必要なドライバーを xorg-drivers グループからインストールしてください。

/etc/X11/xorg.conf.d ディレクトリには 10-evdev.conf が必要です。これはキーボード・マウス・タッチパッド・タッチスクリーンを管理します。

マウスのアクセラレーション

次のページを参照してください: マウスのアクセラレーション

追加のマウスボタン

次のページを参照してください: All Mouse Buttons Working

タッチパッド

次のページを参照してください: Touchpad Synaptics

タッチスクリーン

次のページを参照してください: タッチスクリーン

キーボードの設定

次のページを参照してください: Xorg でのキーボード設定

InputClass

参照: https://fedoraproject.org/wiki/Input_device_configuration

InputClass は、ひとつのデバイスではなく「あるクラス」のデバイス(ホットプラグのデバイスを含む)に適用される新しいタイプの設定セクションです。InputClass セクションの適用範囲は指定された match によって決まります – 入力デバイスに適用するには、全ての match をデバイスにあてがう必要があります。例えば InputClass セクションは以下のように使われます:

Section "InputClass"
    Identifier             "touchpad catchall"
    MatchIsTouchpad        "on"
    Driver                 "synaptics"
EndSection

次のスニペットも理解するのに役立つかもしれません:

Section "InputClass"
        Identifier             "evdev touchpad catchall"
        MatchIsTouchpad        "on"
        MatchDevicePath        "/dev/input/event*"
        Driver                 "evdev"
EndSection

このスニペットが xorg.conf や xorg.conf.d に存在する場合、システム上の全てのタッチパッドに synaptics ドライバが割り当てられます。優先順位 (xorg.conf.d の英数字の順番) によってドライバーの設定は前の設定を上書きすることに注意してください – 一般的なクラスほど、初めの方に置くべきです。xorg-server パッケージによって提供されるデフォルトのスニペットは 00-evdev.conf であり、全ての入力デバイスに evdev ドライバを割り当てます。

match オプションによってセクションを適用するのはどのデバイスなのか指定します。全ての match 行を満たしたデバイスだけに、セクションが適用されます。使うことができる match は以下の通り:

  • MatchIsPointer, MatchIsKeyboard, MatchIsTouchpad, MatchIsTouchscreen, MatchIsJoystick – デバイスグループに適用するための boolean オプション。
  • MatchProduct "foo|bar": 製品の名前に "foo" か "bar" が含まれているデバイスにマッチ
  • MatchVendor "foo|bar|baz": 製造者(ベンダー)名に "foo" や "bar"、"baz" が含まれているデバイスにマッチ
  • MatchDevicePath "/dev/input/event*": デバイスパスが一致しているデバイスにマッチ (利用できるパターンは fnmatch(3) を見て下さい)
  • MatchTag "foo|bar": "foo" や "bar" といったタグが付けられたデバイスにマッチ。タグはバックエンドの設定 – udev によって指定され特別な設定が必要なデバイスをラベリングします。

ユーザー定義設定のためのセクションの例:

Section "InputClass"
    Identifier             "lasermouse slowdown"
    MatchIsPointer         "on"
    MatchProduct           "Lasermouse"
    MatchVendor            "LaserMouse Inc."
    Option                 "ConstantDeceleration" 20
EndSection

このセクションは、"Lasermouse Inc." によって作られた "Lasermouse" という名前を持つポインティングデバイスにマッチし、デバイスには 20 の値の constant deceleration が適用されます &ndash 20倍マウスの速度が遅くなります。

X サーバーによって扱って欲しくないデバイスがあるかもしれません。設定によってそうしたデバイスを無視させることができます:

Section "InputClass"
    Identifier            "no need for accelerometers in X"
    MatchProduct          "accelerometer"
    Option                "Ignore" "on"
EndSection

設定例

以下のサブセクションでは一般的に使われる設定オプションのための設定例を記述しています。あなたが GNOME や KDE などのデスクトップ環境を使っている場合、xorg.conf に設定したオプションはログイン時にユーザー定義オプションによって上書きされてしまう可能性があります

例: (トラックポイント用の) ホイールエミュレーション

トラックポイントのある PC (例: Thinkpad) を使っている場合、以下を xorg.conf に追加することでミドルボタンを使ってマウスホイールをエミュレートできます:

Section "InputClass"
    Identifier            "Wheel Emulation"
    MatchIsPointer        "on"
    MatchProduct          "TrackPoint"
    Option                "EmulateWheelButton" "2"
    Option                "EmulateWheel" "on"
EndSection

(横スクロールを含む) トラックポイントの完全なサポートをするには以下を使って下さい:

Section "InputClass"
    Identifier            "Trackpoint Wheel Emulation"
    MatchProduct	  "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device"
    MatchDevicePath	  "/dev/input/event*"
    Option		  "EmulateWheel"		"true"
    Option		  "EmulateWheelButton"	        "2"
    Option		  "Emulate3Buttons"	        "false"
    Option		  "XAxisMapping"		"6 7"
    Option		  "YAxisMapping"		"4 5"
EndSection
例: Tap-to-click

Tap-to-click は(タッチパッドタブの)マウス設定ダイアログから有効にすることができますが、gdm でタップを有効にする必要があるなら、以下のスニペットを使って下さい:

Section "InputClass"
    Identifier            "tap-by-default"
    MatchIsTouchpad       "on"
    Option                "TapButton1" "1"
EndSection
例: Acer 5920G ラップトップのキーボードレイアウト・モデル

キーボードモデルやレイアウトは /etc/X11/xorg.conf.d/keyboard.conf ファイルや同じディレクトリの他の .conf ファイルで設定できます。

  • MatchIsKeyboard "yes": 入力デバイスをキーボードに設定
  • Option "XkbModel" "acer_laptop": キーボードモデルを Acer ラップトップキーボードに設定。acer_laptop はあなたの使っているキーボードに置き換えられます。
  • Option "XkbLayout" "jp": キーボードレイアウトを日本語に設定。jp は使いたいレイアウトに変えることができます。
  • Option "XkbVariant" "sundeadkeys": レイアウトのバリアントを Sun dead keys に設定。デフォルトのバリアントを使うなら XkbVariant オプションは省略できます。

キーボードレイアウト・モデルのリストは /usr/share/X11/xkb/rules/base.lst にあります。

Section "InputClass"
    Identifier             "Keyboard Defaults"
    MatchIsKeyboard        "yes"
    Option                 "XkbModel" "acer_laptop"
    Option                 "XkbLayout" "jp"
    Option                 "XkbVariant" "sundeadkeys"
EndSection
例: (3ボタンマウス用の) 中ボタンのエミュレーション

中ボタンのエミュレーションによって、右・左ボタンを一緒に押すことで3つ目のボタンのイベントを発動させるようにすることができます。これは X でのコピーアンドペーストに役に立つでしょう。

/etc/X11/xorg.conf.d/10-evdev.conf の mouse input catchall を修正します

Section "InputClass"
        Identifier "evdev pointer catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
        Option "Emulate3Buttons"     "True"
        Option "Emulate3Timeout"     "25"
EndSection

Option "Emulate3Buttons" "True" オプションで3ボタンのエミュレートを有効にして Option "Emulate3Timeout" "25" オプションで中ボタンのクリックとして認識する時間を 25ms としています。

モニターの設定

はじめに

ノート: 新しいバージョンの Xorg は自動で設定を行います。あなたが設定をする必要はありません。

まず、/etc/X11/xorg.conf.d/10-monitor.conf のような、新しい設定ファイルを作成します。

/etc/X11/xorg.conf.d/10-monitor.conf
Section "Monitor"
    Identifier             "Monitor0"
EndSection

Section "Device"
    Identifier             "Device0"
    Driver                 "vesa" #Choose the driver used for this monitor
EndSection

Section "Screen"
    Identifier             "Screen0"  #Collapse Monitor and Device section to Screen section
    Device                 "Device0"
    Monitor                "Monitor0"
    DefaultDepth            16 #Choose the depth (16||24)
    SubSection             "Display"
        Depth               16
        Modes              "1024x768_75.00" #Choose the resolution
    EndSubSection
EndSection

マルチモニター

一般的な情報は Multihead を見て下さい。

GPU 固有の手順は以下を参照してください:

複数のグラフィックカード

利用するドライバを正しく定めてグラフィックカードのバス ID を入力する必要があります。

Section "Device"
    Identifier             "Screen0"
    Driver                 "nouveau"
    BusID                  "PCI:0:12:0"
EndSection

Section "Device"
    Identifier             "Screen1"
    Driver                 "radeon"
    BusID                  "PCI:1:0:0"
EndSection

バス ID を取得するには:

$ lspci | grep VGA
01:00.0 VGA compatible controller: nVidia Corporation G96 [GeForce 9600M GT] (rev a1)

この場合バス ID は 1:0:0。

画面サイズと DPI

X サーバーの DPI は以下の順番で決定されます:

  1. -dpi コマンドラインオプションが一番優先されます。
  2. オプションが使われていない場合、X 設定ファイルの DisplaySize 設定が DPI の設定に使われます。
  3. DisplaySize が設定されていない場合、DDC のモニターサイズ値が DPI の設定に使われます。
  4. DDC がサイズを指定していない場合、75 DPI がデフォルトで使われます。

正しいドット密度 (DPI) を設定するには、ディスプレイのサイズを知る必要があります。(フォントレンダリングなど)細部の設定が必要な場合、適切な DPI の設定は特に重要です。以前は、メーカーは 96 DPI を標準として作成していました (10.3" モニターなら 800x600、13.2" モニターなら 1024x768)。最近では、画面の DPI は様々であり、縦横で等しくないこともあります。例えば、19" ワイドスクリーン LCD が 1440x900 なら DPI が 89x87 になります。DPI を設定するために、Xorg サーバーはグラフィックカードを通して DDC によってモニターの物理的な画面サイズを自動検出します。When the Xorg server knows the physical screen size, it will be able to set the correct DPI depending on resolution size.

ディスプレイのサイズと DPI が正しく検出・計算されているか確認するには:

$ xdpyinfo | grep -B2 resolution

dimensions がディスプレイサイズと一致しているかチェックしてください。正しく画面サイズを計算できない時、Xorg サーバは 75x75 DPI をデフォルトにするので、あなたはそれを計算する必要があります。

スクリーンの物理的な大きさがわかっているときは、Xorg の設定ファイルに入力することで正しい DPI が計算されます:

Section "Monitor"
    Identifier             "Monitor0"
    DisplaySize             286 179    # ミリメートル単位
EndSection

フルの xorg.conf を作成しないでモニタの仕様の入力だけを行いたい場合は新しい設定ファイルを作成してください。例えば (/etc/X11/xorg.conf.d/90-monitor.conf):

Section "Monitor"
    Identifier             "<default monitor>"
    DisplaySize            286 179    # In millimeters
EndSection

スクリーンの横と縦の物理的な長さがわからないときは(最近は対角線の長さ(インチ数)しかわからないことも多い)、モニターの最大解像度(アスペクト比)か対角線の長さを使って縦と横の長さを計算できます。(ピタゴラスの定理を使って)最大解像度1280x800(もしくはアスペクト比16:10)、13.3インチのスクリーンの場合:

$ echo 'scale=5;sqrt(1280^2+800^2)' | bc  # 1509.43698

このコマンドでピクセルの対角線の長さがわかり、この値を使うことで物理的な縦と横の長さを知ることができます (そしてそれをミリメートルに変換できます):

$ echo 'scale=5;(13.3/1509)*1280*25.4' | bc  # 286.43072
$ echo 'scale=5;(13.3/1509)*800*25.4'  | bc  # 179.01920
ノート: This calculation works for monitors with square pixels; however, there is the seldom monitor that may compress aspect ratio (e.g 16:10 aspect resolution to a 16:9 monitor). If this is the case, you should measure your screen size manually.

手動で DPI を設定する

ノート: dpi は自由に設定することができ、Qt や GTK を使用しているアプリケーションはそれにあわせてスケールしますが、スケールによる画像の乱れがビットマップを使用する GUI に現れないように dpi は 96, 120 (25% 増分), 144 (50% 増分), 168 (75% 増分), 192 (100% 増分) などに設定するのを推奨します。また、アイコンの最低 dpi は基本的に 96 になっているので、96 dpi 未満に設定しても GUI のグラフィックのサイズは小さくなりません。

RandR に対応しているドライバ (例えばオープンソースの ATI ドライバ) なら、次のコマンドで設定できます:

$ xrandr --dpi 144
ノート: 変更はすぐにはアプリケーションに適用されません。再起動する必要があります。

設定を永続的にするには xprofile を見て下さい。

プロプライエタリの NVIDIA ドライバー

使う解像度が一つの場合 DPI を手動で設定することができます (DPI calculator):

Section "Monitor"
    Identifier             "Monitor0"
    Option                 "DPI" "96 x 96"
EndSection

/etc/X11/xorg.conf.d/20-nvidia.conf 内で以下のオプションを (Device セクションに) 追加して DPI を手動設定できます:

Option              "UseEdidDpi" "False"
Option              "DPI" "96 x 96"

DPMS

DPMS (Display Power Management Signaling) はコンピュータが使われていない時にモニターを省電力モードに移行させる技術です。一定時間後にモニタを自動で standby にすることができます。DPMS を見て下さい。

コンポジット

X の Composite 拡張によってウィンドウ階層のサブツリー全体がオフスクリーンバッファにレンダリングされます。アプリケーションはバッファの内容を取得できるようになります。オフスクリーンバッファは親のウィンドウに自動的にマージされるか、コンポジットマネージャと呼ばれる外部のプログラムによってマージされます。詳しくは次のページを見て下さい: Wikipedia:ja:コンポジット型ウィンドウマネージャ

コンポジットマネージャ一覧

http://cairo-compmgr.tuxfamily.org/ || cairo-compmgr-gitAUR
  • Compiz — Aiglx や Xgl、プラグインと CCSM に対応するコンポジットマネージャ
http://www.compiz.org/ || compizAUR
  • Compton — X コンポジタ (xcompmgr-dana のフォーク)
https://github.com/chjj/compton || comptonAUR
  • Xcompmgr — X.org 向けのウィンドウ効果ができるコンポジットマネージャ
http://cgit.freedesktop.org/xorg/app/xcompmgr/ || xcompmgr

Tips and tricks

X スタートアップ (startx) 調整

X のオプションを見るには:

$ man Xserver

以下のオプションは /usr/bin/startx ファイルの "defaultserverargs" 変数に追加してください:

  • 16ビットフォントの遅延ロードを有効にする:
-deferglyphs 16
ノート: kdm から X を起動したとき、startx スクリプトが実行されないように思われるかもしれません。X オプションを /usr/share/config/kdm/kdmrc ファイルの "ServerArgsLocal" に加える必要があります。

ネストした X セッション

他のデスクトップ環境に入れ子になったセッションを起動するには:

$ /usr/bin/Xnest :1 -geometry 1024x768+0+0 -ac -name Windowmaker & wmaker -display :1

上記で現在の X セッションの中に 1024x768 のウィンドウの Window Maker セッションが起動します。

このためには xorg-server-xnest パッケージをインストールする必要があります。

リモートで GUI プログラムを実行する

次の記事を参照してください: SSH#X11 フォワーディング

必要に応じて入力ソースを有効化・無効化

xinput を使えば一時的に入力ソースを有効化・無効化することができるようになります。ThinkPad のように複数のマウスがあって、どちらか片方だけ使いたい時などに役立ちます。

xorg-xinput パッケージから xinput をインストールしてください:

# pacman -S xorg-xinput

無効化したいデバイスの ID を調べて下さい:

$ xinput

例えば Lenovo ThinkPad T500 では、出力は以下のようになります:

$ xinput
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                   	id=11	[slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad              	id=10	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=8	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=9	[slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                  	id=12	[slave  keyboard (3)]

xinput --disable device_id (device_id は無効化したいデバイスの ID) でデバイスを無効にします。次の例では Synaptics Touchpad の ID 10 を無効にします:

$ xinput --disable 10

デバイスを有効にするには、次のコマンドを実行してください:

$ xinput --enable 10

トラブルシューティング

共通

Xorg が起動しない、画面が真っ暗、キーボードやマウスが動かないなどの場合は、まず以下の手順を踏んで下さい:

  • ログファイルをチェック: cat /var/log/Xorg.0.logGDM を使っている場合は systemd の journal をチェックしてください [2]
  • キーボード・マウス・タッチパッドなどに問題がおこる場合は カテゴリ:入力デバイス内のそれぞれのページを見て下さい。
  • 最後に、ATIIntelNVIDIA の記事に問題の解決方法が載ってないか調べてください。

右 CTRL キーが oss キーマップとして動作しない

root で /usr/share/X11/xkb/symbols/fr を編集して:

include "level5(rctrl_switch)"

// include "level5(rctrl_switch)"

に変更して X を再起動するか次を実行してください:

setxkbmap fr oss

"su" で X クライアントの起動が失敗する

"Client is not authorized to connect to server" と表示される場合、次の行を /etc/pam.d/su に追加して下さい:

session        optional        pam_xauth.so

pam_xauth が正しく環境変数を設定し xauth キーを管理します。

プログラムが "font '(null)'" を要求する

  • エラーメッセージ: "unable to load font `(null)'."

いくつかのプログラムはビットマップフォントでだけ動作します。2つの主要なビットマップフォントのパッケージがあります、xorg-fonts-75dpixorg-fonts-100dpi です。両方は必要ありません、片方だけで十分です。どちらがあなたに適しているか調べるには、次を実行してください:

$ xdpyinfo | grep resolution

それからあなたに適している方を使って下さい (XX は 75 か 100 に置き換える):

# pacman -S xorg-fonts-XXdpi

フレームバッファモード問題

以下のログメッセージを残して X の起動が失敗する場合、

(WW) Falling back to old probe method for fbdev
(II) Loading sub module "fbdevhw"
(II) LoadModule: "fbdevhw"
(II) Loading /usr/lib/xorg/modules/linux//libfbdevhw.so
(II) Module fbdevhw: vendor="X.Org Foundation"
       compiled for 1.6.1, module version=0.0.2
       ABI class: X.Org Video Driver, version 5.0
(II) FBDEV(1): using default device

Fatal server error:
Cannot run in framebuffer mode. Please specify busIDs for all framebuffer devices

fbdev をアンインストールしてください:

# pacman -R xf86-video-fbdev

Matrox カードで DRI が停止する

Matrox カードを使っていて Xorg をアップグレードすると DRI が停止する場合、次の行を xorg.conf のビデオカードの Device セクションに追加してください:

Option "OldDmaInit" "On"

リカバリ: GUI ログインの前に Xorg を無効化

Xorg を自動的に起動するように設定していて、なんらかの理由でログイン・ディスプレイマネージャが表示される前に Xorg が起動するのを防ぎたい場合(例えば、システムを間違って設定したせいで Xorg がマウスやキーボード入力を受け付けない場合)、2つのメソッドを使ってこれを達成できます。

  • デフォルトのターゲットを rescue.target に変更してください。systemd#起動時のデフォルトターゲットを変更する を参照。
  • 誤ってシステムを設定して Xorg を使えなくしただけでなく、GRUB メニューの待ち時間をゼロに設定、または起動時から Xorg を無効にするのに GRUB を使えない場合、Arch Linux のライブ CD を使って下さい。ライブ CD を起動して root でログインします。/mnt のようなマウントポイントが必要なので、マウントしたいパーティションの名前を知る必要があります。

次のコマンドを使ってパーティションを見ることができます:

# fdisk -l

通常、あなたがマウントするパーティションは /dev/sda1 です。それから、パーティションを /mnt にマウントします、次を実行してください

# mount /dev/sda1 /mnt

これでファイルシステムが /mnt の下に表示されるようになります。ここから、gdm デーモンを削除するなど設定ファイルの必要な変更を行なって下さい。

X が起動できない: Keyboard initialization failed

ハードディスクが満杯の場合、startx は失敗します。/var/log/Xorg.0.log の最後が次のようになるはずです:

(EE) Error compiling keymap (server-0)
(EE) XKB: Couldn't compile keymap
(EE) XKB: Failed to load keymap. Loading default keymap instead.
(EE) Error compiling keymap (server-0)
(EE) XKB: Couldn't compile keymap
XKB: Failed to compile keymap
Keyboard initialization failed. This could be a missing or incorrect setup of xkeyboard-config.
Fatal server error:
Failed to activate core devices.
Please consult the The X.Org Foundation support  at http://wiki.x.org
for help.
Please also check the log file at "/var/log/Xorg.0.log" for additional information.
 (II) AIGLX: Suspending AIGLX clients for VT switch

root パーティションに空き容量を作ってから X を起動してください。

black screen, No protocol specified.., Resource temporarily unavailable for all or some users

X は設定と一時ファイルをユーザーの home ディレクトリに作成します。あなたの home ディレクトリが入っているパーティションに十分な空き容量があることを確認してください。悪いことに、ディスク容量が不足していることを X サーバーは何も知らせません。

Rootless Xorg (v1.16)

バージョン 1.16 から [3]、Xorg は logind を利用して通常ユーザーの権限で動作させることが出来るようになっています。このために必要なのは:

  • systemd; 複数のインスタンスを扱えるバージョン216以降
  • xinit で X を起動; ディスプレイマネージャはサポートされていません
  • プロプライエタリのディスプレイドライバにおける KMS 実装は自動的に検出できないため /etc/X11/Xwrapper.configneeds_root_rights = no を手動で設定する必要があります

以上の条件を満たさない場合、/etc/X11/Xwrapper.config で root 権限を有効にしてください:

needs_root_rights = yes

Systemd/ユーザー#systemd のユーザーサービスとしての Xorg も参照。

リダイレクトが機能しない

ユーザーの Xorg ログが ~/.local/share/X11/Xorg.log に保存されるとき、X セッションからの出力はログに含まれません。リダイレクトを有効にするには、-keeptty フラグを使って X を起動してください:

exec startx -- -keeptty -nolisten tcp > ~/.xorg.log 2>&1

もしくは /etc/X11/xinit/xserverrc~/.xserverrc にコピーして、-keeptty を追記して下さい。[4] を参照。