「Xorg」の版間の差分
(→Rootless Xorg: 同期) |
(同期) |
||
(2人の利用者による、間の33版が非表示) | |||
1行目: | 1行目: | ||
[[Category:X サーバー]] |
[[Category:X サーバー]] |
||
− | [[cs:Xorg]] |
||
− | [[da:Xorg]] |
||
[[de:X]] |
[[de:X]] |
||
− | [[el:Xorg]] |
||
[[en:Xorg]] |
[[en:Xorg]] |
||
− | [[es:Xorg]] |
||
[[fr:Xorg]] |
[[fr:Xorg]] |
||
− | [[it:Xorg]] |
||
− | [[nl:Xorg]] |
||
− | [[pl:Xorg]] |
||
[[pt:Xorg]] |
[[pt:Xorg]] |
||
− | [[ro:Xorg]] |
||
[[ru:Xorg]] |
[[ru:Xorg]] |
||
+ | [[uk:Xorg]] |
||
[[zh-hans:Xorg]] |
[[zh-hans:Xorg]] |
||
− | [[zh-hant:Xorg]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
{{Related|自動起動}} |
{{Related|自動起動}} |
||
32行目: | 24行目: | ||
'''Xorg''' (一般的には単に '''X''' と呼ばれる)は、Linux ユーザーの間で最も人気のあるディスプレイサーバーです。その普遍性により、GUI アプリケーションにとって Xorg は欠かせない存在となり、ほとんどのディストリビューションで広く採用されています。詳しくは Wikipedia の [[Wikipedia:ja:X.Org Server|Xorg]] や [https://www.x.org/wiki/ Xorg のウェブサイト] を見て下さい。 |
'''Xorg''' (一般的には単に '''X''' と呼ばれる)は、Linux ユーザーの間で最も人気のあるディスプレイサーバーです。その普遍性により、GUI アプリケーションにとって Xorg は欠かせない存在となり、ほとんどのディストリビューションで広く採用されています。詳しくは Wikipedia の [[Wikipedia:ja:X.Org Server|Xorg]] や [https://www.x.org/wiki/ Xorg のウェブサイト] を見て下さい。 |
||
− | Xorg の代替 |
+ | Xorg の代替かつ後継については [[Wayland]] を参照してください。 |
==インストール== |
==インストール== |
||
44行目: | 36行目: | ||
=== ドライバーのインストール === |
=== ドライバーのインストール === |
||
− | Linux カーネルにはオープンソースのビデオドライバーが含まれておりハードウェアでアクセラレートされたフレームバッファをサポートしています。しかし、OpenGL や X11 における 2D アクセラレーションを使うにはユーザーランドのサポートが必要です。 |
+ | Linux カーネルにはオープンソースのビデオドライバーが含まれておりハードウェアでアクセラレートされたフレームバッファをサポートしています。しかし、[[OpenGL]] や X11 における 2D アクセラレーションを使うにはユーザーランドのサポートが必要です。 |
まず、あなたのカードを確認してください: |
まず、あなたのカードを確認してください: |
||
56行目: | 48行目: | ||
Xorg はインストールされているドライバーを自動的に検索します: |
Xorg はインストールされているドライバーを自動的に検索します: |
||
− | * 使用しているハードウェアに |
+ | * 使用しているハードウェアに合うドライバー(以下に記載)がインストールされていない場合、Xorg はまず最初に ''fbdev'' ({{pkg|xf86-video-fbdev}}) を検索します。 |
* ''fbdev'' が存在しなかった場合、次に汎用ドライバーである ''vesa'' ({{pkg|xf86-video-vesa}}) を検索します。''vesa'' はほとんどのチップセットで動作しますが 2D や 3D のアクセラレーションは含まれていません。 |
* ''fbdev'' が存在しなかった場合、次に汎用ドライバーである ''vesa'' ({{pkg|xf86-video-vesa}}) を検索します。''vesa'' はほとんどのチップセットで動作しますが 2D や 3D のアクセラレーションは含まれていません。 |
||
* ''vesa'' も見つからない場合、Xorg は[[Kernel Mode Setting|カーネルモードセッティング]]にフォールバックします。カーネルモードセッティングでは GLAMOR アクセラレーションが利用できます ({{man|4|modesetting}} を参照)。 |
* ''vesa'' も見つからない場合、Xorg は[[Kernel Mode Setting|カーネルモードセッティング]]にフォールバックします。カーネルモードセッティングでは GLAMOR アクセラレーションが利用できます ({{man|4|modesetting}} を参照)。 |
||
64行目: | 56行目: | ||
{| class="wikitable" style="text-align:center" |
{| class="wikitable" style="text-align:center" |
||
|- |
|- |
||
+ | ! ブランド |
||
− | ! ブランド !! 種類 !! ドライバ !! OpenGL !! OpenGL ([[multilib]]) !! ドキュメント |
||
+ | ! 種類 |
||
+ | ! ドキュメント |
||
+ | ! ドライバ |
||
+ | ! OpenGL |
||
+ | ! OpenGL ([[multilib]]) |
||
+ | ! Vulkan |
||
+ | ! Vulkan ([[multilib]]) |
||
|- |
|- |
||
− | + | | rowspan="3" | AMD (旧 ATI) |
|
− | | rowspan="2" | オープンソース |
+ | | rowspan="2" | オープンソース |
+ | | [[AMDGPU]] |
||
+ | | {{Pkg|xf86-video-amdgpu}} |
||
+ | | rowspan="2" | {{Pkg|mesa}} |
||
+ | | rowspan="2" | {{Pkg|lib32-mesa}} |
||
+ | | {{Pkg|vulkan-radeon}} / {{Pkg|amdvlk}}<sup>4</sup> |
||
+ | | {{Pkg|lib32-vulkan-radeon}} / {{Pkg|lib32-amdvlk}}<sup>4</sup> |
||
|- |
|- |
||
− | + | | [[ATI]] |
|
+ | | {{Pkg|xf86-video-ati}} |
||
+ | | colspan="2" | 無し |
||
|- |
|- |
||
+ | | プロプライエタリ |
||
− | | プロプライエタリ || {{Pkg|xf86-video-amdgpu}} || {{AUR|amdgpu-pro-libgl}} || {{AUR|lib32-amdgpu-pro-libgl}} || [[AMDGPU PRO]] |
||
+ | | [[AMDGPU PRO]] |
||
+ | | {{Pkg|xf86-video-amdgpu}} |
||
+ | | {{AUR|amdgpu-pro-oglp}} |
||
+ | | {{AUR|lib32-amdgpu-pro-oglp}} |
||
+ | | {{AUR|vulkan-amdgpu-pro}} |
||
+ | | {{AUR|lib32-vulkan-amdgpu-pro}} |
||
|- |
|- |
||
− | + | | Intel |
|
+ | | オープンソース |
||
− | | オープンソース || {{Pkg|xf86-video-intel}}<sup>1</sup> || {{Pkg|mesa}} || {{Pkg|lib32-mesa}} || [[Intel Graphics]] |
||
+ | | [[Intel graphics]] |
||
+ | | {{Pkg|xf86-video-intel}}<sup>2</sup> |
||
+ | | {{Pkg|mesa}} または {{Pkg|mesa-amber}}<sup>3</sup> |
||
+ | | {{Pkg|lib32-mesa}} |
||
+ | | {{Pkg|vulkan-intel}} |
||
+ | | {{Pkg|lib32-vulkan-intel}} |
||
|- |
|- |
||
− | + | | rowspan="4" | NVIDIA |
|
+ | | オープンソース |
||
− | | オープンソース || {{Pkg|xf86-video-nouveau}} || {{Pkg|mesa}} || {{Pkg|lib32-mesa}} || [[Nouveau]]<sup>2</sup> |
||
+ | | [[Nouveau]]<sup>1</sup> |
||
+ | | {{Pkg|xf86-video-nouveau}} |
||
+ | | {{Pkg|mesa}} |
||
+ | | {{Pkg|lib32-mesa}} |
||
+ | | {{Pkg|vulkan-nouveau}} |
||
+ | | {{Pkg|lib32-vulkan-nouveau}} |
||
|- |
|- |
||
− | | rowspan="3" | プロプライエタリ |
+ | | rowspan="3" | プロプライエタリ |
+ | | rowspan="3" | [[NVIDIA]]<sup>1</sup> |
||
+ | | {{Pkg|nvidia}} |
||
+ | | {{Pkg|nvidia-utils}} |
||
+ | | {{Pkg|lib32-nvidia-utils}} |
||
+ | | {{Pkg|nvidia-utils}} |
||
+ | | {{Pkg|lib32-nvidia-utils}} |
||
|- |
|- |
||
− | | {{AUR|nvidia-470xx-dkms |
+ | | {{AUR|nvidia-470xx-dkms}} |
+ | | {{AUR|nvidia-470xx-utils}} |
||
+ | | {{AUR|lib32-nvidia-470xx-utils}} |
||
+ | | {{AUR|nvidia-470xx-utils}} |
||
+ | | {{AUR|lib32-nvidia-470xx-utils}} |
||
|- |
|- |
||
− | | {{AUR|nvidia-390xx |
+ | | {{AUR|nvidia-390xx-dkms}} |
+ | | {{AUR|nvidia-390xx-utils}} |
||
+ | | {{AUR|lib32-nvidia-390xx-utils}} |
||
+ | | {{AUR|nvidia-390xx-utils}} |
||
+ | | {{AUR|lib32-nvidia-390xx-utils}} |
||
|} |
|} |
||
+ | # 統合 GPU と専用 GPU を組み合わせて使用する NVIDIA Optimus 対応のノート PC に関しては [[NVIDIA Optimus]] を参照してください。 |
||
− | # 第4世代およびそれ以上の Intel graphics については、[[Intel Graphics#インストール]] で利用可能なドライバーを見てください。 |
||
+ | # 第4世代及びそれ以降の Intel グラフィックスに関しては、[[Intel graphics#インストール]] で利用可能なドライバを確認してください。 |
||
− | # オンボードのグラフィックカードとディスクリート GPU が混載されていて NVIDIA Optimus が有効になっているノートパソコンを使用する場合は [[NVIDIA Optimus]] を見てください。 |
||
+ | # 古いハードウェア用のクラシック OpenGL (Gallium3D でない) ドライバです (Mesa 22.0 及びそれ以降では、i915 クラシックドライバのサポートが落とされています)。 |
||
+ | # {{Pkg|vulkan-radeon}} / {{Pkg|lib32-vulkan-radeon}} は {{Pkg|amdvlk}} / {{Pkg|lib32-amdvlk}} よりも推奨されます ([[AMDGPU#インストール]] を参照)。 |
||
他のビデオドライバーは {{Grp|xorg-drivers}} グループで見つけることができます。 |
他のビデオドライバーは {{Grp|xorg-drivers}} グループで見つけることができます。 |
||
95行目: | 136行目: | ||
==== AMD ==== |
==== AMD ==== |
||
− | モデル名 (例: ''Radeon RX 6800'') から GPU アーキテクチャ (例: '' |
+ | モデル名 (例: ''Radeon RX 6800'') から GPU アーキテクチャ (例: ''RDNA 2'') への変換は、[[Wikipedia:List of AMD graphics processing units#Features overview]] を見てください。 |
{| class="wikitable" style="text-align:center" |
{| class="wikitable" style="text-align:center" |
||
101行目: | 142行目: | ||
! GPU アーキテクチャ !! オープンソースドライバ !! プロプライエタリドライバ |
! GPU アーキテクチャ !! オープンソースドライバ !! プロプライエタリドライバ |
||
|- |
|- |
||
− | | RDNA |
+ | | RDNA 及びそれ以降 || rowspan=2 | [[AMDGPU]] || rowspan=2 | [[AMDGPU PRO]] |
|- |
|- |
||
− | | GCN 3 |
+ | | GCN 3 及びそれ以降 |
|- |
|- |
||
− | | GCN 1 |
+ | | GCN 1 と 2 || [[AMDGPU]]<sup>1</sup> / [[ATI]] || ''利用不可'' |
|- |
|- |
||
− | | TeraScale<br/> |
+ | | TeraScale<br/>及びそれ以前 || [[ATI]] || ''利用不可'' |
|- |
|- |
||
|} |
|} |
||
+ | |||
− | : *: 実験的 |
||
+ | # 試験的。 |
||
== 起動 == |
== 起動 == |
||
161行目: | 203行目: | ||
=== 入力の識別 === |
=== 入力の識別 === |
||
− | [[ |
+ | [[キーボード入力#Xorg でキーコードを確認する]] を見てください。 |
=== マウスのアクセラレーション === |
=== マウスのアクセラレーション === |
||
220行目: | 262行目: | ||
一般的な情報は[[マルチディスプレイ]]を見て下さい。 |
一般的な情報は[[マルチディスプレイ]]を見て下さい。 |
||
− | |||
− | GPU 固有の手順は以下を参照してください: |
||
− | |||
− | * [[NVIDIA#マルチモニター]] |
||
− | * [[Nouveau#デュアルディスプレイ]] |
||
− | * [[ATI#マルチモニターの設定]] |
||
==== 複数のグラフィックカード ==== |
==== 複数のグラフィックカード ==== |
||
327行目: | 363行目: | ||
=== Display Power Management === |
=== Display Power Management === |
||
− | DPMS |
+ | [[DPMS]] はコンピュータが使われていない時にモニターを省電力モードに移行させる技術です。一定時間後にモニタを自動で待機状態にすることができます。 |
== コンポジット == |
== コンポジット == |
||
337行目: | 373行目: | ||
=== コンポジットマネージャ一覧 === |
=== コンポジットマネージャ一覧 === |
||
− | * {{App|[[Picom]]| |
+ | * {{App|[[Picom]]|影、高度なぼかし、フェード機能を搭載した軽量なコンポジタ。Compton からフォークされました。|https://github.com/yshui/picom|{{Pkg|picom}}}} |
* {{App|[[Xcompmgr]]|X.org 向けのウィンドウ効果ができるコンポジットマネージャ。|https://gitlab.freedesktop.org/xorg/app/xcompmgr/|{{Pkg|xcompmgr}}}} |
* {{App|[[Xcompmgr]]|X.org 向けのウィンドウ効果ができるコンポジットマネージャ。|https://gitlab.freedesktop.org/xorg/app/xcompmgr/|{{Pkg|xcompmgr}}}} |
||
+ | * {{App|[[Gamescope]]|Valve のマイクロコンポジタ。FSR アップスケーリングなどのゲーム志向の機能が搭載されています。steamos-compositor からフォークされました。|https://github.com/ValveSoftware/gamescope|{{Pkg|gamescope}}}} |
||
− | * {{App|Unagi|モジュール式のコンポジットマネージャ。C で書かれており XCB をベースにしています。|https://projects.mini-dweeb.org/projects/unagi|{{AUR|unagi}}}} |
||
+ | * {{App|steamos-compositor-plus|Valve のコンポジタ。いくつかの調整と修正が加えられています。|https://github.com/chimeraos/steamos-compositor-plus|{{AUR|steamos-compositor-plus}}}} |
||
==ヒントとテクニック== |
==ヒントとテクニック== |
||
348行目: | 385行目: | ||
{| class="wikitable" |
{| class="wikitable" |
||
− | ! ツール !! パッケージ !! マニュアル !! [[ |
+ | ! ツール !! パッケージ !! マニュアル !! [[Keysym]]<br>インプット !! ウィンドウ<br>操作 !! 備考 |
|- |
|- |
||
! xautomation |
! xautomation |
||
385行目: | 422行目: | ||
===リモートで GUI プログラムを実行する=== |
===リモートで GUI プログラムを実行する=== |
||
− | 次の記事を参照してください: [[ |
+ | 次の記事を参照してください: [[OpenSSH#X11 フォワーディング]] |
===必要に応じて入力ソースを有効化・無効化=== |
===必要に応じて入力ソースを有効化・無効化=== |
||
+ | |||
− | {{ic|xinput}} を使えば一時的に入力ソースを有効化・無効化することができるようになります。ThinkPad のように複数のマウスがあって、どちらか片方だけ使いたい時などに役立ちます。 |
||
+ | ''xinput'' を使えば一時的に入力ソースを有効化・無効化することができるようになります。ThinkPad のように複数のマウスがあって、どちらか片方だけ使いたい時などに役立ちます。 |
||
{{Pkg|xorg-xinput}} パッケージを[[インストール]]してください。 |
{{Pkg|xorg-xinput}} パッケージを[[インストール]]してください。 |
||
398行目: | 436行目: | ||
例えば Lenovo ThinkPad T500 では、出力は以下のようになります: |
例えば Lenovo ThinkPad T500 では、出力は以下のようになります: |
||
− | {{hc|$ xinput|<nowiki> |
+ | {{hc|$ xinput|<nowiki> |
− | + | ⎡ 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)] |
||
− | }} |
||
+ | </nowiki>}} |
||
{{ic|xinput --disable ''device_id''}} (''device_id'' は無効化したいデバイスの ID) でデバイスを無効にします。次の例では Synaptics Touchpad の ID 10 を無効にします: |
{{ic|xinput --disable ''device_id''}} (''device_id'' は無効化したいデバイスの ID) でデバイスを無効にします。次の例では Synaptics Touchpad の ID 10 を無効にします: |
||
422行目: | 461行目: | ||
$ xinput --disable "SynPS/2 Synaptics TouchPad" |
$ xinput --disable "SynPS/2 Synaptics TouchPad" |
||
+ | |||
+ | === 入力ソースを永続的に無効化する === |
||
+ | |||
+ | 以下の設定スニペットを使用することで、特定の入力ソースを無効化できます: |
||
+ | |||
+ | {{hc|/etc/X11/xorg.conf.d/30-disable-''device''.conf| |
||
+ | Section "InputClass" |
||
+ | Identifier "disable-''device''" |
||
+ | Driver "''driver_name''" |
||
+ | MatchProduct "''device_name''" |
||
+ | Option "Ignore" "True" |
||
+ | EndSection |
||
+ | }} |
||
+ | |||
+ | {{ic|''device''}} は任意の名前です。{{ic|''driver_name''}} は入力ドライバの名前です (例: {{ic|libinput}})。{{ic|''device_name''}} は、適切なデバイスとマッチするように使用されるものです。正しいデバイスを指定する他の方法 ([[libinput]] の {{ic|MatchIsTouchscreen}} など) は、使用している入力ドライバのドキュメントを調べてください。この例では libinput を使用していますが、これはドライバに依存しない方法であり、対象のデバイスがドライバに伝達されないようにします。 |
||
=== ホットキーでアプリケーションを終了 === |
=== ホットキーでアプリケーションを終了 === |
||
+ | |||
ホットキーでスクリプトを実行: |
ホットキーでスクリプトを実行: |
||
435行目: | 490行目: | ||
[[#視覚的にアプリケーションを kill する]] も参照。 |
[[#視覚的にアプリケーションを kill する]] も参照。 |
||
− | === TTY のアクセスをブロック === |
+ | === TTY へのアクセスをブロック === |
X から tty へのアクセスをブロックしたい場合、以下を {{ic|xorg.conf}} に追加してください: |
X から tty へのアクセスをブロックしたい場合、以下を {{ic|xorg.conf}} に追加してください: |
||
+ | |||
− | {{bc|Section "ServerFlags" |
||
+ | {{bc| |
||
+ | Section "ServerFlags" |
||
Option "DontVTSwitch" "True" |
Option "DontVTSwitch" "True" |
||
− | EndSection |
+ | EndSection |
+ | }} |
||
+ | |||
+ | これは、信頼できないユーザによる、システムのコマンドラインへのアクセスを制限するのに役立ちます。 |
||
=== ユーザーが X を終了できないようにする === |
=== ユーザーが X を終了できないようにする === |
||
456行目: | 516行目: | ||
=== 視覚的にアプリケーションを kill する === |
=== 視覚的にアプリケーションを kill する === |
||
− | アプリケーションが誤動作したり固まったりした場合、ターミナルから {{ic|kill}} や {{ic|killall}} を使うためにプロセス ID や名前を見つける代わりに、{{Pkg|xorg-xkill}} を使えばアプリケーションをクリックして |
+ | アプリケーションが誤動作したり固まったりした場合、ターミナルから {{ic|kill}} や {{ic|killall}} を使うためにプロセス ID や名前を見つける代わりに、{{Pkg|xorg-xkill}} を使えばアプリケーションをクリックして X サーバとの接続を閉じることができます。多くの既存のアプリケーションは、X サーバとの接続が閉じるとアボートしますが、一部のアプリケーションは実行し続ける可能性があります。 |
=== Rootless Xorg === |
=== Rootless Xorg === |
||
− | Xorg は root の代わりに標準的なユーザー権限で実行することができます (いわゆる "rootless" Xorg)。これは root で実行するよりもセキュリティ上重要な改善です。一部の人気なディスプレイマネージャ(例: [https://github.com/canonical/lightdm/issues/18 LightDM] や [[XDM]])はルートレス Xorg をサポートしていないことに注意してください。 |
+ | Xorg は root の代わりに標準的なユーザー権限で実行することができます (いわゆる "rootless" Xorg)。これは root で実行するよりもセキュリティ上重要な改善です。一部の人気な[[ディスプレイマネージャ]] (例: [https://github.com/canonical/lightdm/issues/18 LightDM] や [[XDM]]) はルートレス Xorg をサポートしていないことに注意してください。 |
− | Xorg がどのユーザーとして実行されているかは {{ic|ps -o user |
+ | Xorg がどのユーザーとして実行されているかは {{ic|1=ps -o user= -C Xorg}} で確認できます。 |
{{man|1|Xorg.wrap}}, {{man|8|systemd-logind}}, [[Systemd/ユーザー#systemd のユーザーサービスとしての Xorg|systemd のユーザーサービスとしての Xorg]], [[Fedora:Changes/XorgWithoutRootRights]] , {{Bug|41257}} も参照して下さい。 |
{{man|1|Xorg.wrap}}, {{man|8|systemd-logind}}, [[Systemd/ユーザー#systemd のユーザーサービスとしての Xorg|systemd のユーザーサービスとしての Xorg]], [[Fedora:Changes/XorgWithoutRootRights]] , {{Bug|41257}} も参照して下さい。 |
||
468行目: | 528行目: | ||
==== xinitrc の使用 ==== |
==== xinitrc の使用 ==== |
||
− | ルートレス Xorg を設定するには |
+ | [[xinitrc]] を使ってルートレス Xorg を設定するには: |
* {{ic|startx}} を直接実行し、{{ic|exec startx}} を使用しないでください。 |
* {{ic|startx}} を直接実行し、{{ic|exec startx}} を使用しないでください。 |
||
− | * [[Xinit#xserverrc|.xserverrc]] を介して {{ic|$XDG_VTNR}} で logind から渡されたパーミッションの仮想 |
+ | * [[Xinit#xserverrc|.xserverrc]] を介して {{ic|$XDG_VTNR}} で logind から渡されたパーミッションの仮想コンソールを Xorg が使用することを確認してください。 |
− | * 特定のプロプライエタリなディスプレイドライバを使用している場合、[[Kernel Mode Setting|カーネルモード |
+ | * 特定のプロプライエタリなディスプレイドライバを使用している場合、[[Kernel Mode Setting|カーネルモードセッティング]]の[https://gitlab.freedesktop.org/xorg/xserver/-/blob/master/hw/xfree86/xorg-wrapper.c#L222 自動検出]は失敗します。その場合は、{{ic|/etc/X11/Xwrapper.config}} で {{ic|1=needs_root_rights = no}} を設定する必要があります。 |
==== GDM の使用 ==== |
==== GDM の使用 ==== |
||
− | [[ |
+ | [[カーネルモード設定]]を使用する場合、[[GDM]] はデフォルトで root 権限なしに Xorg を実行します。 |
==== セッションログのリダイレクト ==== |
==== セッションログのリダイレクト ==== |
||
496行目: | 556行目: | ||
}} |
}} |
||
− | ==トラブルシューティング== |
+ | == トラブルシューティング == |
− | === |
+ | === 一般 === |
− | 何か問題が発生したらログを確認してください。ログは {{ic|/var/log/}} または (v1.16 からデフォルトのルートレス X の場合) {{ic|~/.local/share/xorg/}} の中に保存されています。[[GDM]] を使っている場合は [[systemd]] |
+ | 何か問題が発生したらログを確認してください。ログは {{ic|/var/log/}} または (v1.16 からデフォルトのルートレス X の場合) {{ic|~/.local/share/xorg/}} の中に保存されています。[[GDM]] を使っている場合は [[systemd/ジャーナル|systemd のジャーナル]]をチェックしてください [https://bbs.archlinux.org/viewtopic.php?id=184639]。 |
− | ログファイルの名前は {{ic|Xorg.n.log}} |
+ | ログファイルの名前は {{ic|Xorg.n.log}} という形式を取ります: {{ic|n}} はディスプレイ番号です。デフォルト設定のシングルユーザーマシンの場合は {{ic|Xorg.0.log}} を確認すれば良いですが、他の構成の場合は見るべきログは違うかもしれません。X サーバーのセッションが起動したときのタイムスタンプと X が起動するのに使われたコンソールを確認することで適切なログファイルを見分けられます。例: |
− | {{hc| |
+ | {{hc|$ grep -e Log -e tty Xorg.0.log|2= |
+ | [ 40.623] (==) Log file: "/home/archuser/.local/share/xorg/Xorg.0.log", Time: Thu Aug 28 12:36:44 2014 |
||
− | [ 40.704] (--) controlling tty is VT number 1, auto-enabling KeepTty}} |
||
+ | [ 40.704] (--) controlling tty is VT number 1, auto-enabling KeepTty |
||
+ | }} |
||
+ | |||
+ | {{Tip|読みやすいタイムスタンプをログに追加するには、{{man|1|tail}} の出力を {{man|1|ts}} ({{Pkg|moreutils}} パッケージに含まれています) にパイプで繋ぐことができます。ただし、コマンドが実行されている時にログに追加された行にしか正しいタイムスタンプは追加されません。例: |
||
+ | $ tail -f ~/.local/share/xorg/Xorg.0.log {{!}} ts |
||
+ | }} |
||
* ログファイルの中に {{ic|(EE)}} で始まる行が存在しないか確認してください。{{ic|(EE)}} はエラーです。また、{{ic|(WW)}} は警告です。 |
* ログファイルの中に {{ic|(EE)}} で始まる行が存在しないか確認してください。{{ic|(EE)}} はエラーです。また、{{ic|(WW)}} は警告です。 |
||
− | |||
* {{ic|$HOME}} に存在する {{ic|.xinitrc}} ファイルが空の場合、X を起動するにはファイルを削除するか正しく編集する必要があります。空の場合、X は画面を表示せず {{ic|Xorg.0.log}} にエラーも出力されません。ファイルを削除するとデフォルトの X 環境が起動します。 |
* {{ic|$HOME}} に存在する {{ic|.xinitrc}} ファイルが空の場合、X を起動するにはファイルを削除するか正しく編集する必要があります。空の場合、X は画面を表示せず {{ic|Xorg.0.log}} にエラーも出力されません。ファイルを削除するとデフォルトの X 環境が起動します。 |
||
− | * 画面が |
+ | * 画面がブラックアウト場合、異なる仮想コンソールに切り替えて(例: {{ic|Ctrl+Alt+F6}})、スクリーンの出力無しで root としてログインできます。そうするには、{{ic|root}} と入力し(その後 {{ic|Enter}} を押して)、root のパスワードを入力してください(その後、再び {{ic|Enter}} を押してください)。 |
: 次のコマンドで X サーバーを終了させることが可能です: |
: 次のコマンドで X サーバーを終了させることが可能です: |
||
− | : {{bc|# pkill X}} |
+ | : {{bc|# pkill -x X}} |
: 上記のコマンドが機能しない場合、再起動してください: |
: 上記のコマンドが機能しない場合、再起動してください: |
||
: {{bc|# reboot}} |
: {{bc|# reboot}} |
||
− | *キーボード・マウス・タッチパッドなどに問題がおこる場合は [[:カテゴリ:入力デバイス]]内のそれぞれのページを見て下さい。 |
+ | * キーボード・マウス・タッチパッドなどに問題がおこる場合は [[:カテゴリ:入力デバイス]] 内のそれぞれのページを見て下さい。 |
− | *[[ |
+ | * [[AMDGPU]]、[[Intel Graphics]]、[[NVIDIA]] の記事に問題の解決方法が載ってないか調べてください。 |
+ | === 一部またはすべてのユーザで黒画面、No protocol specified、Resource temporarily unavailable === |
||
− | ===右 CTRL キーが oss キーマップとして動作しない=== |
||
− | root で {{ic|/usr/share/X11/xkb/symbols/fr}} を編集して: |
||
− | {{bc|include "level5(rctrl_switch)"}} |
||
− | を |
||
− | {{bc|// include "level5(rctrl_switch)"}} |
||
− | に変更して X を再起動するか次を実行してください: |
||
+ | X は設定ファイルと一時ファイルをユーザーのホームディレクトリに作成します。あなたのホームディレクトリが入っているパーティションに十分な空き容量があることを確認してください。悪いことに、ディスク容量が不足していることを X サーバーは何も知らせません。 |
||
− | setxkbmap fr oss |
||
− | === |
+ | === Matrox カードで DRI が停止する === |
− | + | Matrox カードを使っていて Xorg をアップグレードすると DRI が停止する場合、次の行を {{ic|xorg.conf}} のビデオカードの Device セクションに追加してください: |
|
+ | Option "OldDmaInit" "On" |
||
− | session optional pam_xauth.so |
||
− | |||
− | {{ic|pam_xauth}} が正しく環境変数を設定し {{ic|xauth}} キーを管理します。 |
||
− | |||
− | ===プログラムが "font '(null)'" を要求する=== |
||
− | |||
− | *エラーメッセージ: "''unable to load font `(null)'.''" |
||
− | いくつかのプログラムはビットマップフォントでだけ動作します。2つの主要なビットマップフォントのパッケージがあります、{{Pkg|xorg-fonts-75dpi}} と {{Pkg|xorg-fonts-100dpi}} です。両方は必要ありません、片方だけで十分です。どちらがあなたに適しているか調べるには、次を実行してください: |
||
− | $ xdpyinfo | grep resolution |
||
− | それからあなたに適している方を使って下さい (XX は 75 か 100 に置き換える): |
||
− | # pacman -S xorg-fonts-XXdpi |
||
− | ===フレームバッファモード問題=== |
+ | === フレームバッファモード問題 === |
以下のログメッセージを残して X の起動が失敗する場合: |
以下のログメッセージを残して X の起動が失敗する場合: |
||
562行目: | 612行目: | ||
{{pkg|xf86-video-fbdev}} パッケージを[[pacman#パッケージの削除|アンインストール]]してください。 |
{{pkg|xf86-video-fbdev}} パッケージを[[pacman#パッケージの削除|アンインストール]]してください。 |
||
− | === |
+ | === プログラムが "font '(null)'" を要求する === |
+ | エラーメッセージ: {{ic|unable to load font `(null)'}} |
||
− | Matrox カードを使っていて Xorg をアップグレードすると DRI が停止する場合、次の行を {{ic|xorg.conf}} のビデオカードの Device セクションに追加してください: |
||
+ | いくつかのプログラムはビットマップフォントでだけ動作します。2つの主要なビットマップフォントのパッケージがあります、{{Pkg|xorg-fonts-75dpi}} と {{Pkg|xorg-fonts-100dpi}} です。両方は必要ありません、片方だけで十分です。どちらがあなたに適しているか調べるには、{{Pkg|xorg-xdpyinfo}} の {{ic|xdpyinfo}} を試してください: |
||
− | Option "OldDmaInit" "On" |
||
+ | |||
+ | $ xdpyinfo | grep resolution |
||
+ | |||
+ | そして、出力された値に最も近い方のフォントを使用してください。 |
||
− | ===リカバリ: GUI ログインの前に Xorg を無効化=== |
+ | === リカバリ: GUI ログインの前に Xorg を無効化 === |
Xorg を自動的に起動するように設定していて、なんらかの理由でログイン・ディスプレイマネージャが表示される前に Xorg が起動するのを防ぎたい場合(例えば、システムを間違って設定したせいで Xorg がマウスやキーボード入力を受け付けない場合)、以下の2つの方法でこれを達成できます。 |
Xorg を自動的に起動するように設定していて、なんらかの理由でログイン・ディスプレイマネージャが表示される前に Xorg が起動するのを防ぎたい場合(例えば、システムを間違って設定したせいで Xorg がマウスやキーボード入力を受け付けない場合)、以下の2つの方法でこれを達成できます。 |
||
580行目: | 634行目: | ||
* {{ic|~/.xinitrc}} の名前を変更するか {{ic|exec}} 行をコメントアウト。 |
* {{ic|~/.xinitrc}} の名前を変更するか {{ic|exec}} 行をコメントアウト。 |
||
+ | === "su" で X クライアントの起動が失敗する === |
||
− | ===X が起動できない: Keyboard initialization failed=== |
||
+ | "Client is not authorized to connect to server" と表示される場合、次の行を {{ic|/etc/pam.d/su}} と {{ic|/etc/pam.d/su-l}} に追加して下さい: |
||
− | ハードディスクが満杯の場合、startx は失敗します。{{ic|/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 |
||
+ | session optional pam_xauth.so |
||
− | root パーティションに空き容量を作ってから X を起動してください。 |
||
+ | {{ic|pam_xauth}} が正しく環境変数を設定し {{ic|xauth}} キーを管理します。 |
||
− | ===black screen, No protocol specified.., Resource temporarily unavailable for all or some users=== |
||
+ | === X が起動できない: Keyboard initialization failed === |
||
− | X は設定と一時ファイルをユーザーの home ディレクトリに作成します。あなたの home ディレクトリが入っているパーティションに十分な空き容量があることを確認してください。悪いことに、ディスク容量が不足していることを X サーバーは何も知らせません。 |
||
+ | ファイルシステム(特に {{ic|/tmp}})が満杯の場合、{{ic|startx}} は失敗します。ログファイルには以下のように出力されます: |
||
− | === Rootless Xorg (v1.16) === |
||
+ | {{bc| |
||
− | バージョン 1.16 から [https://www.archlinux.jp/news/xorg-server-116-is-now-available/]、Xorg は {{ic|logind}} を利用して通常ユーザーの権限で動作させることが出来るようになっています。このために必要なのは: |
||
+ | (EE) Error compiling keymap (server-0) |
||
+ | (EE) XKB: Could not compile keymap |
||
+ | (EE) XKB: Failed to load keymap. Loading default keymap instead. |
||
+ | (EE) Error compiling keymap (server-0) |
||
+ | (EE) XKB: Could not 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. |
||
+ | ... |
||
+ | }} |
||
+ | 関連するファイルシステムにいくらかの空き領域を作れば X は起動するでしょう。 |
||
− | * [[systemd]]; 複数のインスタンスを扱えるバージョン216以降 |
||
− | * [[xinitrc|xinit]] で X を起動; ディスプレイマネージャはサポートされていません |
||
− | * プロプライエタリのディスプレイドライバにおける [[KMS]] 実装は自動的に検出できないため {{ic|/etc/X11/Xwrapper.config}} で {{ic|1=needs_root_rights = no}} を手動で設定する必要があります [https://cgit.freedesktop.org/xorg/xserver/tree/hw/xfree86/xorg-wrapper.c#n222] |
||
+ | === 動画を視聴しようとすると緑色の画面が表示される === |
||
− | 以上の条件を満たさない場合、{{ic|/etc/X11/Xwrapper.config}} で root 権限を有効にしてください: |
||
+ | 色深度の設定が間違っています。例えば、16ではなく24に設定する必要があります。 |
||
− | needs_root_rights = ''yes'' |
||
+ | === SocketCreateListener エラー === |
||
− | {{man|1|Xorg.wrap}} や [[systemd/ユーザー#systemd のユーザーサービスとしての Xorg]] も参照。 |
||
+ | {{ic|SocketCreateListener() failed}} というエラーメッセージを吐いて X が落ちてしまう場合、{{ic|/tmp/.X11-unix}} 内のソケットファイルを削除する必要があります。この問題は、(例えば {{ic|xorg.conf}} を生成するために)前回に Xorg を root として実行した場合に発生することがあります。 |
||
− | [[GDM]] は [[Kernel Mode Setting]] が使われている場合、デフォルトで root 権限を利用しないで Xorg を起動します。 |
||
+ | === プログラムを root として実行しようとした際に Invalid MIT-MAGIC-COOKIE-1 key === |
||
− | ==== リダイレクトが機能しない ==== |
||
+ | このエラーは、現在のユーザのみが X サーバへのアクセス権を持っていることを意味しています。解決策は root にアクセス権を与えることです: |
||
− | ユーザーの Xorg ログが {{ic|~/.local/share/xorg/Xorg.log}} に保存されるとき、X セッションからの出力はログに含まれません。リダイレクトを有効にするには、{{ic|-keeptty}} フラグを使って X を起動してください: |
||
+ | $ xhost +si:localuser:root |
||
− | exec startx -- -keeptty > ~/.xorg.log 2>&1 |
||
+ | このコマンドは、root 以外のユーザに X へのアクセス権を与える際にも使用できます。 |
||
− | もしくは {{ic|/etc/X11/xinit/xserverrc}} を {{ic|~/.xserverrc}} にコピーして、{{ic|-keeptty}} を追記して下さい。[https://bbs.archlinux.org/viewtopic.php?pid=1446402#p1446402] を参照。 |
||
+ | === Xorg-server Fatal server error: (EE) AddScreen/ScreenInit === |
||
− | === 動画を視聴しようとすると緑色の画面が表示される === |
||
+ | Xorg サーバがランダムに動作しなくなり、Xorg のログに以下が出力される場合: |
||
− | 色深度の設定が間違っています。例えば、16ではなく24に設定する必要があります。 |
||
+ | systemd-logind: failed to take device /dev/dri/card0: Operation not permitted |
||
− | === SocketCreateListener エラー === |
||
+ | ... |
||
+ | AddScreen/ScreenInit failed for driver 0 |
||
+ | この問題は [https://github.com/systemd/systemd/issues/13943 systemd issue 13943] により発生する場合があります。[[Kernel Mode Setting#Early KMS start|KMS の早期起動]]をセットアップしてください。 |
||
− | "SocketCreateListener() failed" というエラーメッセージを吐いて X が落ちてしまう場合、{{ic|/tmp/.X11-unix}} 内のソケットファイルを削除する必要があります。この問題は root で Xorg を起動した場合に発生します。 |
||
== 参照 == |
== 参照 == |
||
* [https://magcius.github.io/xplain/article/ Xplain] - X Window System の詳しい解説 |
* [https://magcius.github.io/xplain/article/ Xplain] - X Window System の詳しい解説 |
||
+ | * {{man|1|Xorg}} |
||
+ | * [https://developer.ibm.com/tutorials/l-lpic1-106-1/ Prepare for LPIC-1 exam 2 - topic 106.1: X11] - アーキテクチャ、[[#設定]]、[[デスクトップ環境]]、リモートでの使用、[[Wayland]] に関して簡単に説明しています。 |
||
+ | * {{man|5|xorg.conf}} |
||
+ | * [[Gentoo:Xorg/Guide/ja#設定]] |
||
+ | |||
+ | {{TranslationStatus|Xorg|2024-07-04|807409}} |
2024年7月4日 (木) 23:56時点における最新版
- X.Org プロジェクトは X Window System のオープンソース実装を提供しています。開発作業は freedesktop.org コミュニティと共同で行われています。X.Org Foundation は理事会がこの取り組みを提供し、メンバーがこの作業を主導する教育非営利法人です。
Xorg (一般的には単に X と呼ばれる)は、Linux ユーザーの間で最も人気のあるディスプレイサーバーです。その普遍性により、GUI アプリケーションにとって Xorg は欠かせない存在となり、ほとんどのディストリビューションで広く採用されています。詳しくは Wikipedia の Xorg や Xorg のウェブサイト を見て下さい。
Xorg の代替かつ後継については Wayland を参照してください。
目次
- 1 インストール
- 2 起動
- 3 設定
- 4 入力デバイス
- 5 モニターの設定
- 6 コンポジット
- 7 ヒントとテクニック
- 8 トラブルシューティング
- 8.1 一般
- 8.2 一部またはすべてのユーザで黒画面、No protocol specified、Resource temporarily unavailable
- 8.3 Matrox カードで DRI が停止する
- 8.4 フレームバッファモード問題
- 8.5 プログラムが "font '(null)'" を要求する
- 8.6 リカバリ: GUI ログインの前に Xorg を無効化
- 8.7 "su" で X クライアントの起動が失敗する
- 8.8 X が起動できない: Keyboard initialization failed
- 8.9 動画を視聴しようとすると緑色の画面が表示される
- 8.10 SocketCreateListener エラー
- 8.11 プログラムを root として実行しようとした際に Invalid MIT-MAGIC-COOKIE-1 key
- 8.12 Xorg-server Fatal server error: (EE) AddScreen/ScreenInit
- 9 参照
インストール
Xorg は xorg-server パッケージでインストールできます。
また、設定作業などに必要なパッケージのいくつかが xorg-apps グループに入っており、それぞれ関連するセクションで説明しています。
xorg グループも利用できます。このグループには Xorg サーバのパッケージや xorg-apps のパッケージ、フォントが含まれています。
ドライバーのインストール
Linux カーネルにはオープンソースのビデオドライバーが含まれておりハードウェアでアクセラレートされたフレームバッファをサポートしています。しかし、OpenGL や X11 における 2D アクセラレーションを使うにはユーザーランドのサポートが必要です。
まず、あなたのカードを確認してください:
$ lspci | grep -e VGA -e 3D
それから適切なドライバーをインストールしてください。パッケージデータベースを検索してオープンソースビデオドライバーの一覧を表示することができます:
$ pacman -Ss xf86-video
Xorg はインストールされているドライバーを自動的に検索します:
- 使用しているハードウェアに合うドライバー(以下に記載)がインストールされていない場合、Xorg はまず最初に fbdev (xf86-video-fbdev) を検索します。
- fbdev が存在しなかった場合、次に汎用ドライバーである vesa (xf86-video-vesa) を検索します。vesa はほとんどのチップセットで動作しますが 2D や 3D のアクセラレーションは含まれていません。
- vesa も見つからない場合、Xorg はカーネルモードセッティングにフォールバックします。カーネルモードセッティングでは GLAMOR アクセラレーションが利用できます (modesetting(4) を参照)。
ビデオアクセラレーション機能を動かしたり、GPU が設定できる全てのモードを表示するには、適切なビデオドライバが必要です:
ブランド | 種類 | ドキュメント | ドライバ | OpenGL | OpenGL (multilib) | Vulkan | Vulkan (multilib) |
---|---|---|---|---|---|---|---|
AMD (旧 ATI) | オープンソース | AMDGPU | xf86-video-amdgpu | mesa | lib32-mesa | vulkan-radeon / amdvlk4 | lib32-vulkan-radeon / lib32-amdvlk4 |
ATI | xf86-video-ati | 無し | |||||
プロプライエタリ | AMDGPU PRO | xf86-video-amdgpu | amdgpu-pro-oglpAUR | lib32-amdgpu-pro-oglpAUR | vulkan-amdgpu-proAUR | lib32-vulkan-amdgpu-proAUR | |
Intel | オープンソース | Intel graphics | xf86-video-intel2 | mesa または mesa-amber3 | lib32-mesa | vulkan-intel | lib32-vulkan-intel |
NVIDIA | オープンソース | Nouveau1 | xf86-video-nouveau | mesa | lib32-mesa | vulkan-nouveau | lib32-vulkan-nouveau |
プロプライエタリ | NVIDIA1 | nvidia | nvidia-utils | lib32-nvidia-utils | nvidia-utils | lib32-nvidia-utils | |
nvidia-470xx-dkmsAUR | nvidia-470xx-utilsAUR | lib32-nvidia-470xx-utilsAUR | nvidia-470xx-utilsAUR | lib32-nvidia-470xx-utilsAUR | |||
nvidia-390xx-dkmsAUR | nvidia-390xx-utilsAUR | lib32-nvidia-390xx-utilsAUR | nvidia-390xx-utilsAUR | lib32-nvidia-390xx-utilsAUR |
- 統合 GPU と専用 GPU を組み合わせて使用する NVIDIA Optimus 対応のノート PC に関しては NVIDIA Optimus を参照してください。
- 第4世代及びそれ以降の Intel グラフィックスに関しては、Intel graphics#インストール で利用可能なドライバを確認してください。
- 古いハードウェア用のクラシック OpenGL (Gallium3D でない) ドライバです (Mesa 22.0 及びそれ以降では、i915 クラシックドライバのサポートが落とされています)。
- vulkan-radeon / lib32-vulkan-radeon は amdvlk / lib32-amdvlk よりも推奨されます (AMDGPU#インストール を参照)。
他のビデオドライバーは xorg-drivers グループで見つけることができます。
Xorg はクローズドソースのドライバーがなくとも問題なく動作するはずです。基本的に、ゲームのための 3D 支援レンダリングや、デュアルスクリーン、TV 出力など高度な機能を使う場合にのみプロプライエタリのドライバが必要になります。オープンソースのドライバーでサポートされない最近の GPU (特に NVIDIA GPU)は例外です。
AMD
モデル名 (例: Radeon RX 6800) から GPU アーキテクチャ (例: RDNA 2) への変換は、Wikipedia:List of AMD graphics processing units#Features overview を見てください。
GPU アーキテクチャ | オープンソースドライバ | プロプライエタリドライバ |
---|---|---|
RDNA 及びそれ以降 | AMDGPU | AMDGPU PRO |
GCN 3 及びそれ以降 | ||
GCN 1 と 2 | AMDGPU1 / ATI | 利用不可 |
TeraScale 及びそれ以前 |
ATI | 利用不可 |
- 試験的。
起動
Xorg(1) コマンドを直接実行することは通常ありません。代わりに、ディスプレイマネージャ か xinit を用いて X サーバを起動します。
設定
Xorg は初期設定に xorg.conf
という名前の設定ファイルと .conf
が末尾につくファイルを使います: これらのファイルが検索されるフォルダの完全なリストは xorg.conf(5) で見られます(利用可能なすべてのオプションの詳細な説明付き)。
.conf ファイルを使う
/etc/X11/xorg.conf.d/
ディレクトリにはホスト固有の設定を保存します。あなたは自由に設定ファイルをそのディレクトリに追加することができますが、ファイル名には .conf
拡張子がなければなりません。さらに、これらのファイルは ASCII 順で読み込まれます。これらのファイル名は XX-
(2桁の整数とハイフン)で始めるのが慣例です(例えば 10 は 20 よりも早く読み込まれます)。これらのファイルは X サーバーの起動時にパースされオリジナルの xorg.conf
設定ファイルの一部として扱われます。設定が競合した場合は、一番最後のファイルが処理されることに注意してください。これにより、最も一般的な設定ファイルは名前順で一番最初にあるべきです。xorg.conf
ファイル内の設定エントリは一番最後に処理されます。
設定オプションの例は Fedora:Input device configuration#xorg.conf.d を見てください。
xorg.conf を使う
/etc/X11/xorg.conf
や /etc/xorg.conf
で Xorg を設定することもできます。xorg.conf
のスケルトンを生成するには
# Xorg :0 -configure
上のコマンドで /root/
に xorg.conf.new
ファイルが作られるはずです。これを /etc/X11/xorg.conf
にコピーして上書きすることができます。
もしくは、あなたのビデオカードドライバに自動で Xorg を設定するツールが含まれているかもしれません。詳しくは NVIDIA や AMDGPU PRO などあなたの使っているビデオカードの記事を見て下さい。
入力デバイス
入力デバイスのドライバーについては、X サーバーはデフォルトで libinput ドライバー (xf86-input-libinput) を使用しますが、xf86-input-evdev と関連するドライバーも使用できます [1]。
Udev があなたのハードウェアを検知し、/usr/share/X11/xorg.conf.d/
ディレクトリに入っているデフォルト設定ファイル 10-evdev.conf
と 40-libinput.conf
によって、evdev と libinput がほとんど全てのデバイスのホットプラグ・インプットドライバーとして動作します。Udev は systemd によって提供されています。
X サーバーの起動後、ログファイルを確認することで、どちらのドライバーがデバイスによってホットプラグされているか確認できます (ログファイルの名前は違っているかもしれません):
$ grep -e "Using input driver " Xorg.0.log
evdev や libinput があなたの持っているデバイスをサポートしていないときは、必要なドライバーを xorg-drivers グループからインストールしてください。
ホットプラグの動作については#設定を見てください。
より詳細な手順については、libinput の記事や以下に述べる記事、より多くの例は Fedora:Input device configuration を見てください。
入力の識別
キーボード入力#Xorg でキーコードを確認する を見てください。
マウスのアクセラレーション
マウスのアクセラレーション を見てください。
特殊なマウスボタン
全てのマウスボタンを動作させる を見てください。
タッチパッド
libinput または Synaptics タッチパッド を見てください。
タッチスクリーン
タッチスクリーン を見てください。
キーボードの設定
Xorg でのキーボード設定 を見てください。
モニターの設定
手動設定
ヘッドレスな環境においては、xf86-video-dummy ドライバが必須です; それをインストールし、例えば以下のような設定ファイルを作成してください:
/etc/X11/xorg.conf.d/10-headless.conf
Section "Monitor" Identifier "dummy_monitor" HorizSync 28.0-80.0 VertRefresh 48.0-75.0 Modeline "1920x1080" 172.80 1920 2040 2248 2576 1080 1081 1084 1118 EndSection Section "Device" Identifier "dummy_card" VideoRam 256000 Driver "dummy" EndSection Section "Screen" Identifier "dummy_screen" Device "dummy_card" Monitor "dummy_monitor" SubSection "Display" EndSubSection EndSection
マルチモニター
一般的な情報はマルチディスプレイを見て下さい。
複数のグラフィックカード
利用するドライバを正しく定めてグラフィックカードのバス ID を(10進数表記で)入力する必要があります。
Section "Device" Identifier "Screen0" Driver "intel" BusID "PCI:0:2:0" EndSection Section "Device" Identifier "Screen1" Driver "nouveau" BusID "PCI:1:0:0" EndSection
(16進数の)バス ID を取得するには:
$ lspci | grep -e VGA -e 3D
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04) 01:00.0 3D controller: NVIDIA Corporation GP107M [GeForce GTX 1050 Mobile] (rev a1)
この場合、バス ID は 0:2:0
と 1:0:0
となります。
画面サイズと DPI
2009 以降、デフォルトで Xorg は常に DPI を 96 に設定します([2] を参照)。適切な DPI を自動検出する変更がバージョン 21.1 で加えられましたが、差し戻されました(FS#72661 を参照)。
X サーバの DPI は -dpi
コマンドラインオプションで設定できます。
細かなディーテールが要求される場面(フォントレンダリングなど)では、正しい DPI を設定すると役に立つことがあります。以前は、メーカーは 96 DPI を標準として作成していました (10.3" モニターなら 800x600、13.2" モニターなら 1024x768)。最近では、画面の DPI は様々であり、縦横で等しくないこともあります。例えば、19" ワイドスクリーン LCD が 1440x900 なら DPI が 89x87 になります。
ディスプレイのサイズと DPI が正しく検出・計算されているか確認するには:
$ xdpyinfo | grep -B2 resolution
寸法がディスプレイサイズと一致しているかチェックしてください。
スクリーンの物理的な大きさがわかっているときは、Xorg の設定ファイルに入力することで正しい DPI が計算されます(実際の xrandr の出力に合わせて Identifier を調整してください):
Section "Monitor" Identifier "DVI-D-0" 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
手動で DPI を設定する
RandR に対応しているドライバ (例えばオープンソースの ATI ドライバ) なら、次のコマンドで設定できます:
$ xrandr --dpi 144
設定を永続的にするには 自動起動#Xorg のスタートアップ を見て下さい。
プロプライエタリの NVIDIA ドライバー
Device
か Screen
セクション下にオプションを追加することで DPI を手動で設定できます:
Option "DPI" "96 x 96"
Manual DPI Setting Caveat
GTK はしばしば、オプションの Xresource Xft.dpi
を通して Xorg サーバの DIP を上書きします。これがあなたの環境で起こっているかどうかを確認するには:
$ xrdb -query | grep dpi
GTK ライブラリのバージョン 3.16 以降、この変数が明示的に設定されていない場合、GTK はこの変数の値を 96 に設定します。GTK アプリがサーバの DPI に従うようにするには、Xft.dpi
の値をサーバのもとと同じに明示的に設定する必要があります。Xft.dpi
リソースは、一部のデスクトップ環境の個人設定で DIP を特定の値に強制的に設定する手段です。KDE と TDE がその例です。
Display Power Management
DPMS はコンピュータが使われていない時にモニターを省電力モードに移行させる技術です。一定時間後にモニタを自動で待機状態にすることができます。
コンポジット
X の Composite 拡張によってウィンドウ階層のサブツリー全体がオフスクリーンバッファにレンダリングされます。アプリケーションはバッファの内容を取得できるようになります。オフスクリーンバッファは親のウィンドウに自動的にマージされるか、コンポジットマネージャと呼ばれる外部のプログラムによってマージされます。詳しくは次のページを見て下さい: Wikipedia:ja:コンポジット型ウィンドウマネージャ。
ウィンドウマネージャによっては、コンポジットマネージャをインストールしなくてもコンポジットが行われます (例: Compiz, Enlightenment, KWin, Marco, Metacity, Muffin, Mutter, Xfwm)。そうでないウィンドウマネージャの場合、スタンドアロンのコンポジットマネージャを使用します。
コンポジットマネージャ一覧
- Picom — 影、高度なぼかし、フェード機能を搭載した軽量なコンポジタ。Compton からフォークされました。
- Xcompmgr — X.org 向けのウィンドウ効果ができるコンポジットマネージャ。
- Gamescope — Valve のマイクロコンポジタ。FSR アップスケーリングなどのゲーム志向の機能が搭載されています。steamos-compositor からフォークされました。
- steamos-compositor-plus — Valve のコンポジタ。いくつかの調整と修正が加えられています。
ヒントとテクニック
自動化
このセクションでは、キーボード/マウスの入力やウィンドウ操作(移動、リサイズ、レイズなど)の自動化のためのユーティリティを挙げています。
ツール | パッケージ | マニュアル | Keysym インプット |
ウィンドウ 操作 |
備考 |
---|---|---|---|---|---|
xautomation | xautomation | xte(1) | Yes | No | スクリーンスクレイピングツールも同梱。F13 などのシミュレート不可。
|
xdo | xdo | xdo(1) | No | Yes | ウィンドウの基本的なアクションを行う小さな X ユーティリティ。 |
xdotool | xdotool | xdotool(1) | Yes | Yes | バグが多く、活発に開発されていない。例: CLI パースが壊れている[3][4] |
xvkbd | xvkbdAUR | xvkbd(1) | Yes | No | Xorg のための仮想キーボード。文字を送るための -text オプションもあり。
|
AutoKey | autokey-qtAUR autokey-gtkAUR | ドキュメント | Yes | Yes | 高レベルで強力なマクロとスクリプトユーティリティ。Qt と Gtk の両方のフロントエンドあり。 |
クリップボード#ツール と X 自動化ツールの概要 も参照してください。
ネストした X セッション
他のデスクトップ環境に入れ子になったセッションを起動するには:
$ /usr/bin/Xnest :1 -geometry 1024x768+0+0 -ac -name Windowmaker & wmaker -display :1
上記で現在の X セッションの中に 1024x768 のウィンドウの Window Maker セッションが起動します。
このためには xorg-server-xnest パッケージをインストールする必要があります。
X セッションをネストする、よりモダンな方法は Xephyr です。
ウィンドウマネージャ無しでアプリケーションを起動する
xinit#ウィンドウマネージャを使わずにアプリケーションを起動 を見てください。
リモートで GUI プログラムを実行する
次の記事を参照してください: OpenSSH#X11 フォワーディング
必要に応じて入力ソースを有効化・無効化
xinput を使えば一時的に入力ソースを有効化・無効化することができるようになります。ThinkPad のように複数のマウスがあって、どちらか片方だけ使いたい時などに役立ちます。
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
もしくはデバイス名を使うこともできます。タッチパッドを無効化するコマンドは:
$ xinput --disable "SynPS/2 Synaptics TouchPad"
入力ソースを永続的に無効化する
以下の設定スニペットを使用することで、特定の入力ソースを無効化できます:
/etc/X11/xorg.conf.d/30-disable-device.conf
Section "InputClass" Identifier "disable-device" Driver "driver_name" MatchProduct "device_name" Option "Ignore" "True" EndSection
device
は任意の名前です。driver_name
は入力ドライバの名前です (例: libinput
)。device_name
は、適切なデバイスとマッチするように使用されるものです。正しいデバイスを指定する他の方法 (libinput の MatchIsTouchscreen
など) は、使用している入力ドライバのドキュメントを調べてください。この例では libinput を使用していますが、これはドライバに依存しない方法であり、対象のデバイスがドライバに伝達されないようにします。
ホットキーでアプリケーションを終了
ホットキーでスクリプトを実行:
#!/bin/sh windowFocus=$(xdotool getwindowfocus) pid=$(xprop -id "$windowFocus" | grep PID) kill -9 "$pid"
依存パッケージ: xorg-xprop, xdotool
TTY へのアクセスをブロック
X から tty へのアクセスをブロックしたい場合、以下を xorg.conf
に追加してください:
Section "ServerFlags" Option "DontVTSwitch" "True" EndSection
これは、信頼できないユーザによる、システムのコマンドラインへのアクセスを制限するのに役立ちます。
ユーザーが X を終了できないようにする
X が動作しているときにユーザーから kill されないようにしたい場合、以下を xorg.conf に追加してください:
Section "ServerFlags" Option "DontZap" "True" EndSection
視覚的にアプリケーションを kill する
アプリケーションが誤動作したり固まったりした場合、ターミナルから kill
や killall
を使うためにプロセス ID や名前を見つける代わりに、xorg-xkill を使えばアプリケーションをクリックして X サーバとの接続を閉じることができます。多くの既存のアプリケーションは、X サーバとの接続が閉じるとアボートしますが、一部のアプリケーションは実行し続ける可能性があります。
Rootless Xorg
Xorg は root の代わりに標準的なユーザー権限で実行することができます (いわゆる "rootless" Xorg)。これは root で実行するよりもセキュリティ上重要な改善です。一部の人気なディスプレイマネージャ (例: LightDM や XDM) はルートレス Xorg をサポートしていないことに注意してください。
Xorg がどのユーザーとして実行されているかは ps -o user= -C Xorg
で確認できます。
Xorg.wrap(1), systemd-logind(8), systemd のユーザーサービスとしての Xorg, Fedora:Changes/XorgWithoutRootRights , FS#41257 も参照して下さい。
xinitrc の使用
xinitrc を使ってルートレス Xorg を設定するには:
startx
を直接実行し、exec startx
を使用しないでください。- .xserverrc を介して
$XDG_VTNR
で logind から渡されたパーミッションの仮想コンソールを Xorg が使用することを確認してください。 - 特定のプロプライエタリなディスプレイドライバを使用している場合、カーネルモードセッティングの自動検出は失敗します。その場合は、
/etc/X11/Xwrapper.config
でneeds_root_rights = no
を設定する必要があります。
GDM の使用
カーネルモード設定を使用する場合、GDM はデフォルトで root 権限なしに Xorg を実行します。
セッションログのリダイレクト
Xorg をルートレスモードで実行すると、Xorg のログは、~/.local/share/xorg/Xorg.log
に保存されます。しかし、Xorg セッションからの stdout と stderr の出力はこのログにリダイレクトされません。リダイレクトを再度有効にするには、Xorg を -keeptty
フラグで起動し、stdout と stderr の出力をファイルにリダイレクトします。
startx -- -keeptty >~/.xorg.log 2>&1
もしくは、/etc/X11/xinit/xserverrc
を ~/.xserverrc
にコピーして、-keeptty
を追加します。[5] を参照してください。
root として Xorg を実行
上記の通り、rootless Xorg がデフォルトであるような状況が存在します。rootless Xorg がデフォルトである環境で Xorg を root として実行する必要がある場合、Xorg.wrap(1) を設定して root を要求するようにできます。
/etc/X11/Xwrapper.config
needs_root_rights = yes
トラブルシューティング
一般
何か問題が発生したらログを確認してください。ログは /var/log/
または (v1.16 からデフォルトのルートレス X の場合) ~/.local/share/xorg/
の中に保存されています。GDM を使っている場合は systemd のジャーナルをチェックしてください [6]。
ログファイルの名前は Xorg.n.log
という形式を取ります: n
はディスプレイ番号です。デフォルト設定のシングルユーザーマシンの場合は Xorg.0.log
を確認すれば良いですが、他の構成の場合は見るべきログは違うかもしれません。X サーバーのセッションが起動したときのタイムスタンプと X が起動するのに使われたコンソールを確認することで適切なログファイルを見分けられます。例:
$ grep -e Log -e tty Xorg.0.log
[ 40.623] (==) Log file: "/home/archuser/.local/share/xorg/Xorg.0.log", Time: Thu Aug 28 12:36:44 2014 [ 40.704] (--) controlling tty is VT number 1, auto-enabling KeepTty
- ログファイルの中に
(EE)
で始まる行が存在しないか確認してください。(EE)
はエラーです。また、(WW)
は警告です。 $HOME
に存在する.xinitrc
ファイルが空の場合、X を起動するにはファイルを削除するか正しく編集する必要があります。空の場合、X は画面を表示せずXorg.0.log
にエラーも出力されません。ファイルを削除するとデフォルトの X 環境が起動します。- 画面がブラックアウト場合、異なる仮想コンソールに切り替えて(例:
Ctrl+Alt+F6
)、スクリーンの出力無しで root としてログインできます。そうするには、root
と入力し(その後Enter
を押して)、root のパスワードを入力してください(その後、再びEnter
を押してください)。
- 次のコマンドで X サーバーを終了させることが可能です:
# pkill -x X
- 上記のコマンドが機能しない場合、再起動してください:
# reboot
- キーボード・マウス・タッチパッドなどに問題がおこる場合は カテゴリ:入力デバイス 内のそれぞれのページを見て下さい。
- AMDGPU、Intel Graphics、NVIDIA の記事に問題の解決方法が載ってないか調べてください。
X は設定ファイルと一時ファイルをユーザーのホームディレクトリに作成します。あなたのホームディレクトリが入っているパーティションに十分な空き容量があることを確認してください。悪いことに、ディスク容量が不足していることを X サーバーは何も知らせません。
Matrox カードで DRI が停止する
Matrox カードを使っていて Xorg をアップグレードすると DRI が停止する場合、次の行を xorg.conf
のビデオカードの Device セクションに追加してください:
Option "OldDmaInit" "On"
フレームバッファモード問題
以下のログメッセージを残して 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
xf86-video-fbdev パッケージをアンインストールしてください。
プログラムが "font '(null)'" を要求する
エラーメッセージ: unable to load font `(null)'
いくつかのプログラムはビットマップフォントでだけ動作します。2つの主要なビットマップフォントのパッケージがあります、xorg-fonts-75dpi と xorg-fonts-100dpi です。両方は必要ありません、片方だけで十分です。どちらがあなたに適しているか調べるには、xorg-xdpyinfo の xdpyinfo
を試してください:
$ xdpyinfo | grep resolution
そして、出力された値に最も近い方のフォントを使用してください。
リカバリ: GUI ログインの前に Xorg を無効化
Xorg を自動的に起動するように設定していて、なんらかの理由でログイン・ディスプレイマネージャが表示される前に Xorg が起動するのを防ぎたい場合(例えば、システムを間違って設定したせいで Xorg がマウスやキーボード入力を受け付けない場合)、以下の2つの方法でこれを達成できます。
- デフォルトのターゲットを rescue.target に変更してください。systemd#起動時のデフォルトターゲットを変更する を参照。
- 誤ってシステムを設定して Xorg を使えなくしただけでなく、GRUB メニューの待ち時間をゼロに設定、または起動時から Xorg を無効にするのに GRUB を使えない場合、Arch Linux のライブ CD を使って下さい。インストールガイドに従ってインストールした Arch Linux をマウントして chroot します。もしくは、
Ctrl+Alt
+ function キー (通常は X によって使用されていないF1
からF7
) を使って tty を切り替えてから root でログインして以下を行います。
設定に応じて、以下の作業のどれか、または複数を行う必要があります:
- ディスプレイマネージャを無効化。
- X の自動起動を無効化。
~/.xinitrc
の名前を変更するかexec
行をコメントアウト。
"su" で X クライアントの起動が失敗する
"Client is not authorized to connect to server" と表示される場合、次の行を /etc/pam.d/su
と /etc/pam.d/su-l
に追加して下さい:
session optional pam_xauth.so
pam_xauth
が正しく環境変数を設定し xauth
キーを管理します。
X が起動できない: Keyboard initialization failed
ファイルシステム(特に /tmp
)が満杯の場合、startx
は失敗します。ログファイルには以下のように出力されます:
(EE) Error compiling keymap (server-0) (EE) XKB: Could not compile keymap (EE) XKB: Failed to load keymap. Loading default keymap instead. (EE) Error compiling keymap (server-0) (EE) XKB: Could not 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. ...
関連するファイルシステムにいくらかの空き領域を作れば X は起動するでしょう。
動画を視聴しようとすると緑色の画面が表示される
色深度の設定が間違っています。例えば、16ではなく24に設定する必要があります。
SocketCreateListener エラー
SocketCreateListener() failed
というエラーメッセージを吐いて X が落ちてしまう場合、/tmp/.X11-unix
内のソケットファイルを削除する必要があります。この問題は、(例えば xorg.conf
を生成するために)前回に Xorg を root として実行した場合に発生することがあります。
プログラムを root として実行しようとした際に Invalid MIT-MAGIC-COOKIE-1 key
このエラーは、現在のユーザのみが X サーバへのアクセス権を持っていることを意味しています。解決策は root にアクセス権を与えることです:
$ xhost +si:localuser:root
このコマンドは、root 以外のユーザに X へのアクセス権を与える際にも使用できます。
Xorg-server Fatal server error: (EE) AddScreen/ScreenInit
Xorg サーバがランダムに動作しなくなり、Xorg のログに以下が出力される場合:
systemd-logind: failed to take device /dev/dri/card0: Operation not permitted ... AddScreen/ScreenInit failed for driver 0
この問題は systemd issue 13943 により発生する場合があります。KMS の早期起動をセットアップしてください。
参照
- Xplain - X Window System の詳しい解説
- Xorg(1)
- Prepare for LPIC-1 exam 2 - topic 106.1: X11 - アーキテクチャ、#設定、デスクトップ環境、リモートでの使用、Wayland に関して簡単に説明しています。
- xorg.conf(5)
- Gentoo:Xorg/Guide/ja#設定