Xorg - Arch Linux 中文维基

跳至內容

# Xorg

出自 Arch Linux 中文维基
翻譯狀態：

- 本文（或部分內容）譯自 Xorg，最近一次同步於 2026-07-14，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

相關文章

- Autostarting
- 光標主題
- 桌面環境
- 顯示管理器
- 字體配置
- 窗口管理器
- XDMCP
- xinit
- xrandr

X.Org 伺服器——通常簡稱為 X——是 X.Org 基金會實現的 X 窗口系統 (X11) 顯示伺服器，它是 Linux 用戶中最流行的顯示伺服器。它的普及使其成為圖形用戶界面應用程式的必備條件，因此大多數發行版都廣泛採用了它。

關於 2025 年的 fork，參見 XLibre（英語：XLibre）。關於替代品和繼任者，參見 Wayland。

## 安裝

Xorg 可以通過安裝 xorg-server包 包來安裝。

此外，xorg-apps包組 組中的一些軟體包對於某些特定的配置任務是必要的。它們會在相關部分中指出。

軟體包組 xorg包組 包含了 Xorg 伺服器、xorg-apps包組 中的軟體包以及字體。

### 驅動安裝

參閱 圖形處理器#安裝 以確認您使用的硬體，為其選擇驅動並安裝所需的包。

特定硬體的 Device Dependent X (DDX) 驅動如今可以看作是遺留方案。xorg-server包 中有一個通用的 modesetting(4) DDX 驅動，它使用內核級顯示模式設置（KMS）並且在現代硬體上工作得很好。這個 modesetting DDX 驅動使用 Glamor[1] 來提供 2D 加速，而 Glamor 需要使用 OpenGL。

如果您想要安裝另一個 DDX 驅動，請注意 Xorg 會自動搜索已安裝的驅動：

- 如果無法找到如下列出的特定硬體的驅動，會首先檢查是否安裝了不支持 2D 和 3D 加速的 fbdev (xf86-video-fbdev包).
- 如果依然沒有找到，會搜索 vesa (xf86-video-vesa包)，這是一個支持大部分顯卡的通用驅動，不提供任何 2D 和 3D 加速功能。
- 如果沒有找到 vesa，Xorg 會回退到 modesetting(4) DDX 驅動.

#### 傳統的特定硬體的 DDX 驅動

通常來說推薦使用 modesetting(4) DDX 驅動。但如果它不適合您的硬體，您可以安裝以下任意的傳統 DDX 驅動：

- xf86-video-amdgpu包 適配 AMDGPU
- xf86-video-ati包 適配 ATI
- xf86-video-intel包 適配 Intel Gen 2 到 Gen 9 的硬體
- xf86-video-nouveau包 適配 Nouveau
- nvidia-utils包 適配 NVIDIA 專有驅動

注意：由於 nvidia-utils包 裡包含了一個 `/usr/lib/xorg/modules/drivers/nvidia_drv.so` DDX 驅動，因此 NVIDIA 專有驅動的用戶實際上無法避免安裝它。

## 運行

Xorg(1) 命令通常不直接運行。而是使用顯示管理器或者xinit來啟動 X server。

提示：用戶通常需要選擇安裝窗口管理器或桌面環境以配合使用 X。

## 配置

注意：Arch 提供了位於 `/usr/share/X11/xorg.conf.d` 的默認配置文件。通常情況下，用戶無需進行額外的配置與修改即可正常使用。

Xorg 使用名為 `xorg.conf` 的配置文件和後綴為 `.conf` 的文件作為它的初始設置。這些文件的位置的完整列表可以在xorg.conf(5)中找到，其中還附有全部可用選項的詳盡解釋。

### 使用 .conf 文件

`/etc/X11/xorg.conf.d/` 目錄保存主機特有設置，你可以創建自己的配置文件，需要以 `XX-` 開頭(兩個數字和一個連接符)並以 `.conf` 結尾。X 伺服器啟動時會解析這些文件，將其視為 `xorg.conf` 的一部分進行處理。如果配置之間有衝突，將會使用最後被處理的文件。所以通用的設置應該放到前面。最後會解析 `xorg.conf` 文件。

有關配置選項請參考 Fedora wiki。

### 使用 xorg.conf

可以通過 `/etc/X11/xorg.conf` 或 `/etc/xorg.conf` 配置 Xorg，用下面命令可以生成 `xorg.conf` 模板：

    # Xorg :0 -configure

執行後會在 `/root/` 生成 `xorg.conf.new` 文件，然後你可以將它複製到 `/etc/X11/xorg.conf`。

提示：如果已經運行了 X 伺服器，請使用不同的 display，例如 `Xorg :2 -configure`。

或者，顯卡的專有驅動可能也提供了自動配置 Xorg 的工具，詳情請參考 NVIDIA。

注意：配置文件關鍵字是大小寫敏感的，"_" 字符會被忽略。配置，包括選項名也是大小寫敏感的，會自動忽略空白和 "_"。

## 輸入設備

對於輸入設備，X 伺服器默認使用 libinput 驅動 (xf86-input-libinput包)，但 xf86-input-evdev包 和相關驅動也可作為替代方案。[2]

Udev，作為 systemd 的依賴項被提供，將會檢測硬體。這兩個驅動程序將作為幾乎所有設備的熱插拔輸入驅動，它們的行為定義在位於 `/usr/share/X11/xorg.conf.d/` 的默認配置文件 `10-quirks.conf` 和 `40-libinput.conf` 中。

在啟動 X server 後，日誌文件將會為每個設備顯示發生了什麼熱插拔（注意最近的日誌名稱可能有所不同）：

    $ grep -e "Using input driver " Xorg.0.log

如果兩個驅動都不支持您的設備, 請從 xorg-drivers包組 組安裝需要的驅動程序。如果你想要使用其他驅動，也可以這樣做。

想要干預熱插拔，請參考 #配置。

更詳細的信息，請參考 libinput 文後的連結和 Fedora wiki。

### 輸入映射

參考鍵盤按鍵#映射按鍵碼。

### 滑鼠加速

滑鼠加速。

### 擴展滑鼠按鍵

滑鼠按鍵。

### 觸摸板

參考 Libinput 或 Touchpad_Synaptics。

### 觸控螢幕

觸控螢幕。

### 鍵盤設置

參考 Xorg/鍵盤設置（英語：Xorg/Keyboard_configuration）。

## 顯示器設置

### 手動配置

注意：

- 新的 Xorg 版本會自動配置顯示器，無需額外配置。
- 如果 Xorg 無法檢測到任何顯示器，或者沒有自動配置，則可使用配置文件。一個常見的情況是使用無頭系統時，系統在沒有顯示器的情況下啟動並自動運行了 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

### 多顯示器

參考主要文章多顯示器了解通用信息。

#### 多於一個顯卡

你必須指定正確的驅動，輸入你的顯卡的 BusID（以十進制表示）。

    Section "Device"
        Identifier             "Screen0"
        Driver                 "intel"
        BusID                  "PCI:0:2:0"
    EndSection

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

為了獲取 BusID （十六進制）：

    $ lspci -d ::03xx

    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)

這個示例的BusID是 `0:2:0` 和 `1:0:0`。

### 顯示大小和 DPI

默認情況下，Xorg 自 2009-01-30 起始終將 DPI 設置為 96。版本 21.1 時有一個自動偵測的修改，但是被回退了。

通過 `-dpi` 命令行選項可以設置 X 伺服器的DPI。

在需要精細細節（如字體渲染）的情況下，擁有正確的DPI尤其必要。此前，製造商試圖為96 DPI（10.3英寸對角線顯示器為800x600，13.2英寸顯示器為1024x768）創建一個標準。如今，屏幕 DPI 各不相同，在水平和垂直方向上可能不相等。例如，1440x900的19英寸寬屏LCD的DPI可能為89x87。

要查看您的顯示大小和 DPI 是否正確：

    $ xdpyinfo | grep -B2 resolution

如果明確知道顯示器的物理尺寸規格，可以在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

注意：如果你使用的是專有 NVIDIA 驅動程序，你可能需要把 `Option "UseEdidDpi" "FALSE"` 放在 `Device` 或 `Screen` 部分下才能生效。

如果你沒有屏幕的物理寬度和高度的規格（現在大多數規格只按對角線尺寸列出）的話，可以使用顯示器的原始解析度（或長寬比）和對角線長度來計算水平和垂直的物理尺寸。

用勾股定理（畢達哥拉斯定理）計算一個對角線長度為13.3英寸、原始解析度為1280x800（或長寬比為16:10）的屏幕：

    $ 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

注意：這種計算適用於正方形的顯示器。然而，很少有顯示器可以壓縮縱橫比（例如16:10的縱橫比解析度為16:9的顯示器）。如果是這種情況，您應該手動測量屏幕大小。

#### 手動設置DPI

注意：雖然你可以設置任何你喜歡的DPI，並且使用Qt和GTK的應用程式將相應地進行縮放，但還是建議將其設置為 96 (100%, 無縮放), 120 (高出25%), 144 (高出50%), 168 (高出75%), 192 (高出100%) 等，以減少使用位圖的GUI的縮放瑕疵。把它降低到96 dpi以下可能不會減少GUI的圖形元素的大小，因為通常圖標的最低dpi是96。

對於兼容RandR的驅動程序（比如開源的ATI驅動程序），你可以通過以下方式設置。

    $ xrandr --dpi 144

注意：更改並不會即時生效，你需要重新啟動它們。

參閱 Autostarting#Xorg 使其永久化保存.

##### 專有的 NVIDIA 驅動程序

您可以通過在`Device`或`Screen`部分下添加選項來手動設置DPI：

    Option              "DPI" "96 x 96"

##### 手動DPI設置的注意事項

GTK 經常通過可選的 X resource `Xft.dpi` 覆蓋X伺服器的DPI。 可以通過這個來檢查當前的DPI：

    $ xrdb -query | grep dpi

對於 3.16 版本之後的 GTK 庫，當此變量未明確設置時，GTK 會將其設置為 96。要讓 GTK 應用程式遵守X伺服器 DPI設置，你可能需要將 Xft.dpi 顯式設置為與伺服器相同的值。 Xresource `Xft.dpi`是一些桌面環境在個人設置中強制設置DPI到一個特定值的方法。 其中包括 KDE 和 TDE。

### DPMS

DPMS (顯示器電源管理信號) 是一種技術，可以在計算機不使用時，可以使用顯示器的省電行為. 這將允許您的顯示器在預定時間段後自動進入待機。

## 合成

X 的合成擴展使窗口層次結構的整個子樹呈現到屏幕外的緩衝區。應用程式可以獲取緩衝區的內容並執行它們喜歡的任何操作。屏幕外的緩衝區可以自動合併到父窗口中，也可以被稱為合成管理器的外部程序合併。要了解更多信息，參考compositing window manager。

某些窗口管理器（例如 Compiz, Enlightenment, KWin（英語：KWin）, marco包, metacity包, muffin包, mutter包, Xfwm）自己完成這些合成。對於其他窗口管理器，可以使用一個獨立的合成管理器。

### 合成管理器列舉

- Picom — 支持陰影、高級模糊和漸變的輕量級合成管理器。

  https://github.com/yshui/picom || picom包

- Xcompmgr — 複合窗口效果管理器

  https://gitlab.freedesktop.org/xorg/app/xcompmgr/ || xcompmgr包

- fastcompmgr — 一個非常輕量級的 X11 合成器，專注於延遲和性能

  https://github.com/tycho-kirchner/fastcompmgr || fastcompmgrAUR

- Gamescope — Valve 的微合成器，具有面向遊戲的功能，如 FSR 上採樣。從 steamos-compositor 分叉而來。

  https://github.com/ValveSoftware/gamescope || gamescope包

- steamos-compositor-plus — Valve 的合成器，帶有一些額外的調整和修復。

  https://github.com/chimeraos/steamos-compositor-plus || steamos-compositor-plusAUR

## 技巧和技巧

### 自動化

這一節列出用於鍵盤、滑鼠輸入和窗口操作自動化的實用程序（例如移動、調整大小和層級）。

工具 | 軟體包 | 手冊 | keyboard input | 窗口操作 | 注
--- | --- | --- | --- | --- | ---
xautomation | xautomation包 | xte(1) | 是 | 否 | 也包含 screen scraping tools。無法模擬 F13+.
xdo | xdo包 | xdo(1) | 否 | 是 | 用於執行基本窗口操作的輕量級X實用工具
xdotool | xdotool包 | xdotool(1) | 是 | 是 | 充滿 Bug 且開發不活躍，比如說CLI解析錯誤。[3][4]
xvkbd | xvkbdAUR | xvkbd(1) | 是 | 否 | 面向 Xorg 的虛擬鍵盤，在發送字母時也有 `-text` 選項。
AutoKey | autokey-qtAUR autokey-gtkAUR | 文檔 | 是 | 是 | 強大的宏和腳本工具，有Qt和GTK兩種前端。

也可以參考 Clipboard#Tools and an overview of X automation tools.

### 嵌套 X 會話

本文或本節內容已經過時。

原因： 也許可以先談談 Xephyr (在Talk:Xorg討論)

在嵌套的 X 的會話中啟動其他桌面環境：

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

這會在你當前的 X 會話中啟動一個1024 × 768大小的 Window Maker 會話。

需要安裝xorg-server-xnest包。

Xephyr 是一個更新的方法。

### 遠程啟動 GUI 程序

查看主條目：X11轉發。

### 按需禁用和啟用輸入源

利用xinput你可以您可以暫時禁用或啟用輸入源。這可能很有用，例如，在具有多個滑鼠的系統上（如ThinkPad），可以只使用一個滑鼠以避免不必要的點擊。

從official repositories安裝 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。在此示例中，我們將禁用ID為10的Synaptics觸摸板：

    $ xinput --disable 10

要重新啟用該設備，只需發出相反的命令：

    $ xinput --enable 10

### 持久禁用輸入源

你可以使用配置片段來禁用特定的輸入源：

    /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 訪問

這篇文章的某些內容需要擴充。

原因：為什麼需要這麼做呢？ (在 Talk:Xorg 中討論)

要在 X 會話中阻止 tty 訪問，請將以下內容添加到 xorg.conf：

    Section "ServerFlags"
        Option "DontVTSwitch" "True"
    EndSection

這可以用來限制不受信任的用戶通過命令行訪問系統。

如果要僅在鎖屏時阻止 TTY 訪問，而不是在整個 X 會話中阻止，參閱 vtlockAUR。

### 防止用戶結束 X

要防止用戶在運行時被結束，請將以下內容添加到xorg.conf：

    Section "ServerFlags"
        Option "DontZap"      "True"
    EndSection

注意：The `Ctrl+Alt+Backspace` shortcut is not directly what triggers killing the X server, but the `Terminate_Server` action from the keyboard map. This is usually not set by default, see Xorg/Keyboard configuration#Terminating Xorg with Ctrl+Alt+Backspace.

### 可視化結束應用程式

當應用程式行為異常或卡住時，與其從終端使用 `kill` 或 `killall` 並查找進程 ID 或名稱，不如使用 xorg-xkill包 點擊該應用程式以關閉其與 X 伺服器的連接。許多現有應用程式確實會在與 X 伺服器的連接關閉時中止，但有些應用程式可能會選擇繼續運行。

### 套接字

Xorg 支持監聽 TCP 套接字和抽象套接字，這可能會破壞某些沙盒程序。要堵上這個漏洞，可以使用 `-nolisten tcp -nolisten local` 命令行參數來運行 Xorg。要了解背景信息和故障排除方法，請參閱 Tianon 的 write-up.

### 沒有 root 權限的 Xorg

Xorg 可以使用標準用戶權限而不是 root 來運行（所謂的「rootless」 Xorg）。這對於用 root 權限運行是很大的安全性提升。注意大多數顯示管理器都不支持 rootless Xorg。

你可以用 `ps -o user $(pgrep Xorg)` 來驗證 Xorg 在以什麼用戶的身份運行。

也可參考Xorg.wrap(1), systemd-logind(8), Systemd/用戶#Xorg_as_a_systemd_user_service, [5] 和 FS#41257。

#### 使用 xinitrc

要使用 xinitrc 配置沒有 root 權限的 Xorg:

- 將 startx 作為當前登錄 shell 的子進程運行；直接運行 `startx`，不要使用 `exec startx`
- 確保 Xorg 使用已設置權限的虛擬終端，即通過 logind 通過 .xserverrc 在 `$XDG_VTNR` 中傳遞。
- 如果使用某些專有的驅動程序, kernel mode setting 自動檢測將失效. 在這種情況下, 必須在 `/etc/X11/Xwrapper.config` 中設置`needs_root_rights = no`。

要注意，不使用 `exec` 直接運行 `startx` 命令會導致在 Xorg 崩潰後 shell 仍然保持打開。由於一些鎖屏機制在 Xorg 之中運行，這可能導致任何能物理接觸電腦的攻擊者都能獲得該用戶的完整訪問權限。

#### 使用 GDM

在使用kernel mode setting時，Xorg將在沒有root權限的情況下運行GDM。

#### 重定向Xorg會話日誌

當Xorg在沒有root權限的情況下運行時，Xorg的日誌將保存到`~/.local/share/xorg/Xorg.log`。但是，Xorg會話的stdout和stderr的輸出並不會重定向到此日誌文件，要重新啟動重定向，請使用命令行選項`-keeptty`來啟動Xorg,並將stdout和stderr輸出重定向到一個文件：

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

或者，將`/etc/X11/xinit/xserverrc`復到`~/.xserverrc`並使用命令行選項`-keeptty`來啟動Xorg。參閱[6]。

### Xorg as Root

如上所述，某些情況下系統會默認啟用無root權限的Xorg。若您的配置屬於此類情況，且需要以root身份運行Xorg，可通過配置Xorg.wrap(1Xorg.warp(1))強制要求root權限：

警告：在 root下運行 Xorg 可能會引起安全問題。更多討論參見 #沒有 root 權限的 Xorg 。

    /etc/X11/Xwrapper.config

    needs_root_rights = yes

### Wayback

Wayback 是一個 X11 兼容層，允許使用 Wayland 組件來運行完整的 X11 桌面環境（以及窗口管理器）。它可以從 AUR 下載：wayback-x11AUR。

### 12to11

12to11 可以讓您在 X11 下無縫運行僅支持 Wayland 的應用程式。它可以從 AUR 下載：12to11-gitAUR。使用 EGL 渲染器來運行以獲得最佳性能：

    $ RENDERER=egl 12to11

## 故障和修復

### 一般問題

如果你在使用Xorg中遇到問題，請查看位於 `/var/log/` 的日誌，或者對於從 v1.16 起的沒有 `root` 權限的 Xorg，日誌文件位於 `~/.local/share/xorg/`。 GDM 用戶應當檢查 systemd journal. [7]

日誌文件的格式為 `Xorg.n.log`， 其中 `n` 表示顯示器編號。對於單用戶、使用默認配置文件的機器，日誌文件常常是 `Xorg.0.log`，其它情形可能會有區別。 想要找到正確的文件，可以考慮檢查 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

提示：要使用人類可讀的時間戳監控日誌，可以將 tail(1) 的輸出通過管道傳遞給 ts(1)（由 moreutils包 包提供）。這將僅在命令運行時為添加到日誌中的行提供正確的時間戳。例如：

    $ tail -f ~/.local/share/xorg/Xorg.0.log | ts

- 在日誌文件中尋找以 `(EE)` 開頭的行，它代表錯誤，以及 `(WW)`，代表警告（也可能暗示著其他問題）。
- 如果在你的`$HOME`目錄下有一個空的 `.xinitrc` 文件，刪除或修改它以使 X 正確啟動。如果你不這樣做，X 會顯示黑屏並不會在 `Xorg.0.log` 中輸出任何錯誤。簡單地刪除它就可以使 X 以默認配置運行。
- 如果你遇到黑屏，你仍可以嘗試切換到不同的虛擬控制台 （例如 `Ctrl+Alt+F6`），然後不假思索地以 root 登錄。你可以通過輸入 `root` （然後按下 `Enter` ） 然後輸入密碼（同樣地，輸入後按下 `Enter` ）。

  你也可以嘗試使用以下命令殺死 X server：

      # pkill -x X

  如果不行的話，直接重啟：

      # reboot

- 如果你有關於鍵盤，滑鼠，觸摸板等等的問題，參考 Category:Input devices 中具體的文章。
- 最後，在AMDGPU, Intel和NVIDIA等文章中搜索常見問題。

### 黑屏，沒有指定協議..，資源暫時不可用等問題

X在當前用戶的主目錄中創建配置和臨時文件。確保主目錄所在的分區上有可用的可用磁碟空間。然而，在這種情況下，X伺服器不提供有關磁碟空間不足的更明顯信息。

### Matrox顯卡的DRI功能失效

如果你使用的是Matrox顯卡，在升級到Xorg7後它的DRI功能失效，試著在xorg.conf的顯卡設備設置段Device section中加入下面一行：

    Option "OldDmaInit" "On"

### 無法運行在frambuffer模式下

如果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包就可以了。

### 無法加載'(null)'字體

- 一些程序無法運行，提示無法加載`(null)'字體.

這些軟體包可能需要一些額外的字體。某些程序只能使用位圖字體。 目前有兩種主要的位圖字體包：xorg-fonts-75dpi包、xorg-fonts-100dpi包。選擇其中一個就可以了。通過下面這個命令查看顯示設置：

    $ xdpyinfo | grep resolution

根據顯示信息選擇合適dpi的字體即可(用75 或 100 代替XX)：

    # pacman -S xorg-fonts-XXdpi

### 修復：在出現GUI登錄界面之前，不啟動Xorg

如果Xorg設置為自動啟動並且出於某些原因你不想讓它出現在 登錄/顯示 管理器之前，有兩種辦法:

- 將啟動目標修改為 rescue.target. 參閱 systemd#Change default target to boot into.
- 如果 X 無法啟動，而且 GRUB 超時時間設置成了 0,無法進 Grub 禁止 Xorg boot. 可以使用 Arch CD 啟動，然後掛載配置文件所在分區，

  可以以root用戶使用命令

    # fdisk -l

  來查看你的全部分區。通常你所要的那個是形如 `/dev/sda1` 這樣的東東。然後，使用命令

    # mount /dev/sda1 /mnt

掛載該分區至 `/mnt`。 這樣你的文件系統就掛載在了 `/mnt` 下。例如，可以刪除 `gdm` 來阻止Xorg正常啟動，或者做其他一些必需的改動。

### 無法用"su"以root身份啟動X客戶端

如果你遇到"Client is not authorized to connect to server"，嘗試將以下內容

     session        optional        pam_xauth.so

加入到`/etc/pam.d/su`文件中。`pam_xauth` 就可以正常設置環境變量以及處理 `xauth` 密鑰了。

### X 啟動失敗：鍵盤初始化失敗

遇到「X failed to start : Keyboard initialization failed」。 如果您的硬碟已滿，startx將失敗。 `/var/log/Xorg.0.log` 的末尾會是：

     (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才能啟動。

### 想看視頻時屏幕總是綠色

你的顏色深度設置錯誤。例如它可能需要設置為24位卻被設置成了16位。

### SocketCreateListener error

如果 X 結束，伴隨著錯誤信息 "SocketCreateListener() failed"，你可能需要刪除位於 `/tmp/.X11-unix` 的 socket 文件。這有可能在你先前以 root 身份運行 Xorg （例如想要生成 `xorg.conf`）後發生。

### 想要以 root 權限運行程序時出現 無效的 MIT-MAGIC-COOKIE-1 密鑰

這個錯誤意味著只有當前用戶有權訪問 X server。解決辦法是將訪問權授予 root：

    $ xhost +si:localuser:root

這條命令也可以將 X server 訪問權授予其他用戶。

## 另請參閱

- Xplain - X Window 系統的深入講解
- Xorg(1)
- Prepare for LPIC-1 exam 2 - topic 106.1: X11 - briefly covers architecture, #Configuration, desktop environments, remote usage, Wayland.
- xorg.conf(5)
- Gentoo:Xorg/Guide#Configuration

分類：​

- X 伺服器
- 使用「模板:過時」標記的頁面或章節

Xorg
新增話題