Xorg (Русский)

From ArchWiki
Jump to: navigation, search
Состояние перевода: На этой странице представлен перевод статьи Xorg. Дата последней синхронизации: 6 марта 2018. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

C http://www.x.org/wiki/:

Проект X.Org представляет свободную реализацию оконной системы X с открытым исходным кодом. Разработка осуществляется X.Org Foundation, которая является образовательной некоммерческой организацией, совместно с сообществом freedesktop.org.

Xorg (обычно называемый просто X) очень популярен среди пользователей Linux, что привело к тому, что большинство приложений с графическим интерфейсом используют X11, из-за этого Xorg доступен в большинстве дистрибутивов. Для более подробной информации смотрите статью Xorg в Википедии или посетите веб-сайт Xorg.

Contents

Установка

Установите пакет xorg-server.

В дополнение к нему, могут понадобиться пакеты из группы xorg-apps для некоторых способов настроек. О них рассказано в соответствующих разделах.

К тому же имеется группа xorg, которая включает пакеты оконной системы Xorg и пакеты из группы xorg-apps, а также шрифты.

Совет: Вам, скорее всего, понадобится оконный менеджер или среда рабочего стола в дополнение к X.

Установка драйвера

Ядро Linux включает в себя видеодрайверы с открытым исходным кодом и поддержку аппаратного ускорения буфера кадров. Однако, для работы OpenGL и двухмерного ускорения в X11 требуется поддержка пользовательского ПО.

Сперва определите вашу видеокарту:

$ lspci | grep -e VGA -e 3D

Затем установите соответствующий драйвер. Вы можете поискать в базе данных пакетов полный список видеодрайверов с открытым исходным кодом:

$ pacman -Ss xf86-video

Xorg автоматически ищет установленные драйверы:

  • Если он не может найти установленным необходимый драйвер для оборудования (перечислены ниже), тогда он сначала ищет драйвер fbdev (xf86-video-fbdev).
  • Если и он не найден, тогда Xorg ищет общий драйвер vesa (xf86-video-vesa), который поддерживает большое количество чипсетов, но не включает 2D или 3D ускорение.
  • А если и vesa не найден, тогда X обратится к режиму KMS, который включает ускорение GLAMOR (смотрите modesetting(4)).

Для того, чтобы ускорение видео работало, и часто для того, чтобы разблокировать все режимы, в которых может работать GPU, требуется правильный видеодрайвер:

Бренд Тип Драйвер OpenGL OpenGL (Multilib) Документация
AMD/
ATI
Свободный xf86-video-amdgpu mesa lib32-mesa AMDGPU (Русский)
xf86-video-ati ATI (Русский)
Проприетарный catalystAUR catalyst-libglAUR lib32-catalyst-libglAUR AMD Catalyst (Русский)
Intel Свободный xf86-video-intel mesa lib32-mesa Intel graphics (Русский)
Nvidia Свободный xf86-video-nouveau mesa lib32-mesa Nouveau (Русский)
Проприетарный nvidia nvidia-utils lib32-nvidia-utils NVIDIA (Русский)
nvidia-340xx nvidia-340xx-utils lib32-nvidia-340xx-utils
Примечание: Если Вы пользуетесь ноутбуком с поддержкой NVIDIA Optimus, который использует интегрированную видеокарту вместе с дискретной видеокартой, обратитесь к статье NVIDIA Optimus (Русский) или Bumblebee (Русский).

Другие видео драйверы можно найти в группе xorg-drivers.

Во избежание проблем X следует запускать без драйверов с закрытым исходным кодом, которые обычно требуются только для расширенных возможностей, таких, как быстрый 3D рендеринг в играх.

AMD

Архитектура GPU Карты Radeon Драйвер с открытым исходным кодом Проприетарный драйвер
GCN 4
и новее
варианты AMDGPU (Русский) AMDGPU PRO (Русский)
GCN 3 AMDGPU (Русский) Catalyst (Русский) /
AMDGPU PRO (Русский)
GCN 2 AMDGPU (Русский)* / ATI (Русский) Catalyst (Русский)
GCN 1 AMDGPU (Русский)* / ATI (Русский) Catalyst (Русский)
TeraScale 2&3 HD 5000 - HD 6000 ATI (Русский) Catalyst (Русский)
TeraScale 1 HD 2000 - HD 4000 устаревший Catalyst (Русский)
Старые X1000 и старше недоступен
*: Экспериментальный

Запуск

Экранный менеджер

Использование экранного менеджера для запуска X удобно, но для этого требуется дополнительное приложение и некоторые зависимости для него.

Вручную

Чтобы запустить X без экранного менеджера, смотрите статью xinitrc (Русский).

Настройка

Примечание: Arch предоставляет файлы конфигурации по умолчанию в /usr/share/X11/xorg.conf.d. Большинству пользователей никакая дополнительная настройка не нужна.

Xorg можно настроить через xorg.conf и через файлы, заканчивающие на .conf: полный список каталог, где можно найти эти файлы есть в xorg.conf(5) вместе с подробным объяснением всех доступных опций.

Через файлы .conf

Каталог /etc/X11/xorg.conf.d/ хранит конфигурацию, специфичную для хоста (вашего компьютера). Вы можете свободно добавлять конфигурационные файлы сюда, но они обязательно должны оканчиваться на .conf: файлы читаются в кодировке ASCII и по соглашению их имена должны начинаться с XX- (две цифры и дефис, так, например, файл, начинающийся на 10, читается раньше 20). Эти файлы анализируются x-сервером при запуске и рассматриваются как часть традиционного конфигурационного файла xorg.conf. Обратите внимание, что при конфликтующей настройки последний прочитанный файл будет обработан. Поэтому наиболее общие файлы конфигурации должны быть упорядочены по имени. Конфигурационные записи в xorg.conf обрабатываются в конце.

Смотрите примеры настройки на вики fedora.

Через файл xorg.conf

Xorg также можно настраивать через /etc/X11/xorg.conf или /etc/xorg.conf. Чтобы сгенерировать основу файла xorg.conf:

# Xorg :0 -configure

Это создает файл xorg.conf.new в /root/, который можно скопировать в /etc/X11/xorg.conf.

Совет: Если вы уже запустили X, тогда используйте другой дисплей, например Xorg :2 -configure.

Кроме того, ваш проприетарный видеодрайвер может поставляться с инструментом для автоматической настройки Xorg: смотрите статьи NVIDIA (Русский) или AMD Catalyst (Русский) для подробностей.

Примечание: Ключевые слова файла конфигурации не учитывают регистр, а символы "_" игнорируются. Большинство строк (включая имена опций) также нечувствительны к регистру и к пробелам, да к символам "_".

Устройства ввода

Для устройств ввода в X по умолчанию используют драйвер libinput (xf86-input-libinput), но также можно использовать драйвер xf86-input-evdev и другие соответствующие драйверы.[1]

Udev, являющий зависимостью systemd, обнаруживает аппаратное обеспечение, и поэтому оба драйвера будут работать в режиме горячего подключения устройств ввода практически для всех устройств, как определенно в стандарных конфигурационных файлах 10-quirks.conf и 40-libinput.conf в каталоге /usr/share/X11/xorg.conf.d/.

После запуска оконной системы X, в лог-файле будет записываться информация об используемом драйвере для каждого подключенного устройства (обратите внимание, что имя последнего лог-файла может отличаться):

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

Если оба драйвера не поддерживают конкретное устройство, установите необходимый драйвер из группы xorg-drivers. То же самое относится, если вы желаете использовать другой драйвер.

Чтобы изменить поведение горячего подключения (hotplugging), смотрите статью #Настройка.

Для получения конкретных инструкций, смотрите статью libinput, следующие страницы ниже, или записи в википедии Fedora.

Ускорение мыши

Смотрите Mouse acceleration.

Дополнительные кнопки мыши

Смотрите кнопки мыши.

Touchpad

Смотрите libinput или Touchpad Synaptics (Русский).

Touchscreen

Смотрите Touchscreen.

Настройка клавиатуры

Смотрите конфигурация клавиатуры в Xorg.

Настройка монитора

Начало работы

Примечание: Новые версии 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" #Выберите драйвер для этого монитора
EndSection

Section "Screen"
    Identifier             "Screen0"  #Collapse Monitor and Device section to Screen section
    Device                 "Device0"
    Monitor                "Monitor0"
    DefaultDepth           16 #Выберите глубину (16||24)
    SubSection             "Display"
        Depth              16
        Modes              "1024x768_75.00" #Выберите разрешение
    EndSubSection
EndSection
Примечание: По умолчанию Xorg должен иметь возможность обнаружить монитор, иначе он не запустится вовсе. Обходной путь заключается в создании файла конфигурации, такого как указано выше, и, таким образом, мы избежим автоматическую настройку. Часто это необходимо, когда Х запускаются автоматически и система используется без монитора, либо, если вход в систему осуществляется через виртуальную консоль, или из экранного менеджера.

Несколько мониторов

Смотрите главную статью Multihead для получения общей информации.

Также смотрите специфичные инструкции для GPU:

Более одной видеокарты

Вы должны определить нужный драйвер для использования и ввести ID шины (BusID) нужной видеокарты.

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

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: Xorg всегда устанавливает dpi в 96. Смотри это, это и, наконец, это. (Discuss in Talk:Xorg (Русский)#)

DPI оконной системы X устанавливается следующими способами:

  1. Параметр командной строки -dpi имеет наивысший приоритет.
  2. Если он не используется, параметр DisplaySize в файле конфигурации X используется для получения DPI, учитывая разрешение экрана.
  3. Если параметр DisplaySize не задан, значения размера монитора используются из DDC для получения DPI с учетом разрешения экрана.
  4. Если DDC не определяет размер, по умолчанию используется 75 DPI.

Чтобы получить правильные точки на дюйм (DPI), разрешение дисплея должно быть распознано или установлено. Наличие правильного DPI особенно необходимо, когда требуются точные детали (например, рендеринг шрифтов). Ранее производители пытались создать стандарт для 96 DPI (монитор с диагональю размером 10,3 дюйма был бы 800x600, 13,2-дюймовый монитор - 1024x768). Сейчас DPI экраном отличаются и могут быть не равными по горизонтали и по вертикали. Например, 19-дюймовый широкоэкранный ЖК-дисплей с разрешением 1440x900 может иметь DPI 89х87. Чтобы установить DPI, сервер Xorg пытается автоматически определить физическое разрешение вашего монитора с помощью видеокарты с DDC. Когда Xorg знает физическое разрешение экрана, он сможет установить правильный DPI в зависимости от размера этого разрешения.

Чтобы убедиться, что разрешение вашего дисплея и DPI обнаружены/правильно рассчитаны:

$ xdpyinfo | grep -B2 resolution

Убедитесь, что выведенное разрешение соответствует настоящему разрешению вашего монитора. Если Xorg не может правильно рассчитать разрешение экрана, он по умолчанию установит значение 75x75 DPI. Поэтому вам придется самому рассчитать его.

Если у вас есть в спецификации физическое разрешение экрана, его можно ввести в конфигурационный файл Xorg так, чтобы был рассчитан правильный DPI (регулируете идентификатор для вашего вывода xrandr):

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    # В миллиметрах
EndSection

Если у вас нет в спецификации ширины и высоты монитора (сейчас в большинстве спецификаций указывается только размер диагонали), вы можете использовать родное разрешение монитора (или соотношение сторон) и размер диагонали для вычисления горизонтальных и вертикальных размеров. Используя теорему Пифагора для монитора с диагональю 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, будут масштабироваться соответственно. Рекомендуется установить dpi в 96, 120 (на 25% больше), 144 (на 50% больше), 168 (на 75% болше), 192 (на 100% больше) и т.д. для уменьшения масштабирования артефактов в приложениях с GUI, использующие растровые изображения. Уменьшение точек на дюйм (dpi) ниже 96 может не снижать размер графический элементов GUI. Обычно, наименьшее количество dpi, на которое сделаны значки, равно 96.

Для RandR-совместимых драйверов (например, драйвер ATI с открытым исходным кодом) вы можете установить dpi так:

$ xrandr --dpi 144
Примечание: Для уже запущенных приложений настройка не применяется сразу, поэтому вы должны перезапустить их.

Чтобы сделать его постоянным, посмотрите запуск команд после запуска X.

Проприетарный драйвер NVIDIA

DPI можно установить вручную, если вы планируете использовать только одно разрешение экрана (калькулятор DPI):

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

Вы можете установить DPI вручную, добавив параметры ниже в /etc/X11/xorg.conf.d/20-nvidia.conf (внутри раздела Device):

Option              "UseEdidDpi" "False"
Option              "DPI" "96 x 96"
Настройка DPI вручную. Предостережение

GTK очень часто переопределяет DPI сервера через опциональный файл Xresource Xft.dpi. Чтобы выяснить происходит ли это у вас, введите:

$ xrdb -query | grep dpi

Начиная с версии GTK 3.16, если эта переменная явно не задана, GTK устанавливает ее в 96. Чтобы приложения GTK работали с DPI сервера, вам может потребоваться явно установить Xft.dpi на то же значение, что и сервер. С помощью файла ресурсов Xft.dpi некоторые среды рабочего стола опционально приводят DPI к определенному значению в личных настройках. Среди них KDE и TDE.

Управление питанием дисплея

DPMS (Display Power Management Signaling (англ), сигналы управления энергопотреблением дисплеев) — технология, позволяющая настроить энергосбережение монитора, когда компьютер не используется. Она позволит вам автоматически переключить монитор в режим ожидания через определенное время простоя.

Композит

Композитное расширение для X приводит к вынесению всего поддерева иерархии окон в буфер вне экрана. Затем приложения могут загружать содержимое этого буфера и делать все, что им нравится. Закадровый буфер может автоматически объединяться в родительское окно или объединяться внешними программами, называемыми композитными менеджерами. Для получения дополнительной информации смотрите следующую статью: w:ru:Композитный менеджер окон

Некоторые оконные менеджеры (например, Compiz, Enlightenment, KWin, Marco, Metacity, Muffin, Mutter, Xfwm) имеют встроенный композит. Для других оконных менеджеров можно использовать отдельные композитные менеджеры.

Список композитных менеджеров

  • Compton — Композитный оконный менеджер (форк xcompmgr-dana)
https://github.com/chjj/compton || compton
  • Xcompmgr — Композитный оконный менеджер
http://cgit.freedesktop.org/xorg/app/xcompmgr/ || xcompmgr
  • Unagi — Модульный композитный менеджер, написанный на Си и основанный на XCB
http://projects.mini-dweeb.org/projects/unagi || unagiAUR

Советы и рекомендации

Настройка X при запуске (startx)

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: Не следует изменять /usr/bin/startx, потому что startx распознает эти параметры как аргументы командной строки. И эта информация устарела. Проект kdm перестал развиваться. Если эта проблема не касается sdm, информация не представляет никакой ценности. (Discuss in Talk:Xorg (Русский)#)

Чтобы получить справку о опциях X, выполните:

$ man Xserver

Следующие параметры нужно добавлять к переменной "defaultserverargs" в файле /usr/bin/startx:

  • Включить отложенную загрузку глифов для 16-битных шрифтов:
-deferglyphs 16
Примечание: Если вы запускаете X через kdm, скрипт startx может оказаться не исполняемым. Параметры X нужно добавлять к переменной ServerArgsLocal в файле /usr/share/config/kdm/kdmrc.

Вложенная X-сессия

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: упоминание xephyr (Discuss in Talk:Xorg (Русский)#)

Для запуска вложенного сеанса другой среды рабочего стола:

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

Это запустит сеанс Window Maker в окне 1024 на 768 в рамках текущей X-сессии.

Для этого необходим установленный пакет xorg-server-xnest.

Запуск программ с GUI удаленно

Смотрите основную статью: Secure Shell (Русский)#Проброс X11.

Отключение и включение при необходимости устройств ввода

С помощью xinput вы можете временно отключить или включить устройства ввода. Это полезно, например, на системах, имеющих несколько мышек, таких как ThinkPads и, если вам хотелось бы использовать только одну, чтобы избежать нежелательные нажатия.

Установите пакет 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 устройство, где устройство это ID устройства или имя устройства, которое вы хотите отключить. В следующем примере мы отключим тачпад Synaptics с ID 10:

$ xinput --disable 10

Чтобы снова включить устройство, просто выполните противоположную команду:

$ xinput --enable 10

Так выглядит команда для выключения устройства (здесь тачпада) через его имя:

$ xinput --disable "SynPS/2 Synaptics TouchPad"

Закрытие приложения с помощью горячей клавиши

Привяжите скрипт к горячей клавише:

#!/bin/bash
windowFocus=$(xdotool getwindowfocus);
pid=$(xprop -id $windowFocus | grep PID);
kill -9 $pid

Зависимости: xorg-xprop, xdotool

Блокирование доступа к TTY

Чтобы запретить доступ к tty в X, добавьте следующее в файл xorg.conf:

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

Запрет пользователю закрывать, перезапускать X

Чтобы запретить пользователю закрывать, перезапускать запущенный Xorg, добавьте следующее в файл xorg.conf:

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

Решение проблем

Общее

Если произошла какая-то проблема с X, посмотрите лог (журнал), хранящийся в /var/log/ или для пользователей без рут-доступа в ~/.local/share/xorg/ (по умолчанию с версии 1.16). Пользователям GDM следует проверить журнал systemd. [2]

Файлы журналов имеют следующий вид 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
  • При посмотре журнала будьте внимательны к строкам начинающим с (EE), которые обозначают ошибки, и к строкам - (WW), которые предупреждают об возможных других проблемах.
  • Если файл .xinitrc пустой в $HOME, то его необходимо или удалить, или изменить для правильной загрузки X. Не сделав этого, вы получите пустой экран, а в журнале возможно Xorg.0.log не будет ошибок. Просто удалив его, у вас будет запускаться стандартное окружение X.
  • Если экран становиться черным, вы все еще можете попытаться переключиться на другую виртуальную консоль (например, Ctrl+Alt+F2), и слепо войти в систему как root. Чтобы сделать это, введите root (нажмите Enter после ввода), а потом введите пароль суперпользователя (root) (снова нажмите Enter после ввода).
Вы можете попытаться завершить X сервер через:
# pkill X
Если это не сработало, просто перезагрузитесь:
# reboot

Черный экран, протокол не указан.., Ресурс временно недоступен для всех или некоторых пользователей

X создает конфигурационные и временные файлы в текущем домашнем каталоге пользователя. Убедитесь в наличии свободного места на разделе, в котором находится домашний каталог. К сожаления, X сервер в этом случае не представляет очевидную информацию о недостатке места.

Правый CTRL не работает на раскладке oss

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: Этот файл будет перезаписан при обновление xkeyboard-config; для таких простых задач следует использовать Xmodmap. (Discuss in Talk:Xorg (Русский)#)

Отредактируйте с правами суперпользователя файл /usr/share/X11/xkb/symbols/fr, изменив строку:

include "level5(rctrl_switch)"

на

// include "level5(rctrl_switch)"

Затем перезапустите X, перезапустите или включите

setxkbmap fr oss

DRI с картами Matrox перестает работать

Если вы используете карту Matrox и DRI перестал работать после обновления Xorg, попробуйте добавить строку:

Option "OldDmaInit" "On"

в раздел Device, который ссылается на видео карту в xorg.conf.

Проблемы с режимом Фреймбуфер

Если 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.

Запуск разных сеансов X с проприентарным драйвером NVIDIA на Xorg 1.16

Когда пытаетесь запустить сеансы X в разных tty на Xorg 1.16, вы можете столкнуться с сообщением в журнале, что никакие драйвера не были найдены. Временное решение для этого заключается в принудительном указание X, что мы хочем использовать драйвер 'nvidia'.

/etc/X11/xorg.conf.d/20-nvidia.conf

Section "Device"
    Identifier "Device0"
    Driver     "nvidia"
    VendorName "NVIDIA Corporation"
    Option     "NoLogo" "True"
EndSection

Программа требует "шрифт '(null)'"

  • Сообщение об ошибке: "unable to load font `(null)'."

Некоторые программы работают только с растровыми шрифтами. Имеется два крупных пакета с растровыми шрифтами xorg-fonts-75dpi и xorg-fonts-100dpi. Вам не нужны оба; одного будет достаточно. Чтобы выяснить какой будет лучше в вашем случае, попробуйте утилиту xdpyinfo из пакета xorg-xdpyinfo таким образом:

$ xdpyinfo | grep resolution

и используйте шрифт тот, у которого dpi ближе к показанному значению.

Восстановление: отключение Xorg перед входом в GUI

Если Xorg настроен на автозапуск и по какой-то причине вам нужно предотвратить его запуск до менеджера входа/экранного менеджера (например, если ваша система неправильно настроена и Xorg не распознает ввод с помощью мыши или клавиатуры), вы можете решить эту задачу двумя способами.

  • Изменить цель по умолчанию на rescue.target. Для получения дополнительной информации смотрите systemd (Русский)#Изменение цели загрузки по умолчанию.
  • Если у вас не только не исправная система, которая делает Xorg непригодным для использования, но также задержка меню GRUB установлено в ноль, или не как иначе нельзя использовать GRUB для предотвращения загрузки Xorg, вы можете использовать live CD Arch Linux. Следуйте руководство по установке, где монтируется система и используется chroot в установленный Arch Linux. Кроме того, попытайтесь переключиться на другую tty с помощью сочетания клавиш Ctrl+Alt + функциональная клавиша (обычно от F1 до F7 в зависимости от того, какая не используется X), войдите как root и следуйте шагам ниже.

В зависимости от настройки, вам необходимо выполнить один или более шагов:

Клиент X запускается с ошибкой "su"

Если вы получаете сообщение "Client is not authorized to connect to server" (Клиент не авторизован для подключения к серверу), попробуйте добавить строку:

session        optional        pam_xauth.so

в /etc/pam.d/su и /etc/pam.d/su-l. Затем pam_xauth правильно установит переменные среды и обработает ключи xauth.

Не удалось запустить X: Ошибка инициализация клавиатуры

Если файловая система (в частности /tmp) заполнена, 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.
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

Освободите место на соответствующей файловой системе, и X сервер запустится.

Использование Xorg без прав суперпользователя

Xorg может запускаться со стандартными привилегиями пользователя через logind. Для этого необходимо:

  • Запустить X через xinit; экранный менеджер не поддерживается
  • KMS; реализации в проприетарных драйверах монитора не допускает автообнаружение, поэтому необходимо вручную настроить needs_root_rights = no в /etc/X11/Xwrapper.config.

Если вам не удовлетворяют эти требования, повторно включите права суперпользователя в /etc/X11/Xwrapper.config:

/etc/X11/Xwrapper.config
needs_root_rights = yes

Для получения дополнительной информации смотрите Xorg.wrap(1) и systemd/User (Русский)#Xorg как служба systemd пользователь.

Также GDM запускает Xorg без привилегий суперпользователя по умолчанию, когда используется KMS.

Неработающее перенаправление

Пока журналы пользователя Xorg хранятся в ~/.local/share/xorg/Xorg.log, они не включают вывод X-сессии. Чтобы повторно включить перенаправление, запустите X с флагом -keeptty:

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

Или скопируйте /etc/X11/xinit/xserverrc в ~/.xserverrc и добавьте -keeptty. Для получения дополнительной информации смотрите [3].

Зеленый экран при попытке просмотра видео

У вас неправильно установлена цветовая глубина. Например, требуется 24 вместо 16.

Ошибка SocketCreateListener

Если X завершаются с сообщением об ошибке "SocketCreateListener() failed", вам необходимо удалить файлы сокета в /tmp/.X11-unix. Это может происходить после того, как вы ранее запускали Xorg с правами суперпользователя (например, для создания xorg.conf).

Смотрите также

  • Xplain - Подробное объяснение системы X Window