Xorg (Русский)
- Проект X.Org предоставляет свободную реализацию X Window System с открытым исходным кодом. Разработка осуществляется X.Org Foundation, которая является образовательной некоммерческой организацией, совместно с сообществом freedesktop.org.
Xorg (обычно называемый просто X) очень популярен среди пользователей Linux, что привело к тому, что большинство приложений с графическим интерфейсом используют X11, из-за этого Xorg доступен в большинстве дистрибутивов. Для более подробной информации смотрите статью Xorg в Википедии или посетите веб-сайт Xorg.
Wayland — альтернатива и преемник Xorg.
Установка
Установите пакет xorg-server.
В дополнение к нему, могут понадобиться пакеты из группы xorg-apps для некоторых способов настроек. О них рассказано в соответствующих разделах.
К тому же имеется группа xorg, которая включает пакеты оконной системы Xorg и пакеты из группы xorg-apps, а также шрифты.
Установка драйвера
Ядро Linux включает в себя видеодрайверы с открытым исходным кодом и поддержку аппаратного ускорения буфера кадров. Однако для работы OpenGL и 2D-ускорения в X11 требуется поддержка на стороне пользовательского ПО.
Сперва определите вашу видеокарту (в строке Subsystem будет написана её модель):
$ lspci -v | grep -A1 -e VGA -e 3D
Затем установите соответствующий драйвер. Вы можете поискать в базе данных пакетов полный список видеодрайверов с открытым исходным кодом:
$ pacman -Ss xf86-video
Xorg автоматически ищет установленные драйверы:
- Если он не может найти установленным необходимый драйвер для оборудования (перечислены ниже), тогда он сначала ищет драйвер fbdev (xf86-video-fbdev), который не включает 2D или 3D ускорение.
- Если и он не найден, тогда Xorg ищет общий драйвер vesa (xf86-video-vesa), который поддерживает большое количество чипсетов, но не включает 2D или 3D ускорение.
- А если и vesa не найден, тогда X обратится к режиму KMS, который включает ускорение 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 or mesa-amber3 | lib32-mesa | vulkan-intel | lib32-vulkan-intel |
NVIDIA | Свободный | Nouveau1 | xf86-video-nouveau | mesa | lib32-mesa | Нет5 | |
Проприетарный | 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 |
- Если вы пользуетесь ноутбуком с поддержкой NVIDIA Optimus, который использует интегрированную видеокарту вместе с дискретной, обратитесь к статье NVIDIA Optimus (Русский).
- Чтобы узнать доступные драйверы для графики Intel 4-го поколения и выше, смотрите статью Intel graphics (Русский)#Установка.
- Классические драйверы OpenGL (не-Gallium3D) для старого оборудования (в Mesa 22.0 и выше поддержка классического драйвера i915 прекращена)
- Рекомендуется vulkan-radeon / lib32-vulkan-radeon вместо amdvlk / lib32-amdvlk (смотрите AMDGPU#Installation).
- NVK, экспериментальный свободный драйвер Vulkan для видеокарт NVIDIA, как ожидается, будет добавлен в mesa 23.3
Другие видеодрайверы можно найти в группе xorg-drivers.
Xorg должен нормально работать без проприетарных драйверов, которые обычно требуются только для дополнительных возможностей, таких как аппаратное ускорение 3D-рендеринга в играх. Исключением из этого правила являются новейшие графические процессоры (особенно видеокарты NVIDIA), которые не поддерживаются драйверами с открытым исходным кодом.
AMD
Соответствие между моделью (например, Radeon RX 6800) и архитектурой GPU (например, RDNA 2) можно посмотреть здесь: Wikipedia:ru:Список графических процессоров AMD.
Архитектура GPU | Свободный драйвер | Проприетарный драйвер |
---|---|---|
RDNA и новее | AMDGPU | AMDGPU PRO |
GCN 3 и новее | ||
GCN 1 и 2 | AMDGPU1 / ATI | недоступен |
TeraScale и более старые |
ATI | недоступен |
- Экспериментальный.
Запуск
Команду Xorg(1) обычно не используют для запуска. Вместо этого оконный сервер X запускают с помощью экранного менеджера или xinit.
Настройка
/usr/share/X11/xorg.conf.d/
. Большинству пользователей никакая дополнительная настройка не нужна.Xorg можно настроить через файл xorg.conf
и файлы с расширением .conf
: полный список каталогов, в которых ищутся эти файлы, есть в xorg.conf(5) вместе с подробным объяснением всех доступных опций.
Через файлы .conf
Каталог /etc/X11/xorg.conf.d/
хранит конфигурацию, специфичную для хоста (вашего компьютера). Вы можете свободно добавлять конфигурационные файлы сюда, но они обязательно должны оканчиваться на .conf
: файлы читаются в алфавитном порядке и по соглашению их имена начинаются с XX-
(две цифры и дефис; таким образом, например, файл, начинающийся на 10, читается раньше файла, начинающегося на 20). Эти файлы анализируются X-сервером при запуске и рассматриваются как часть традиционного конфигурационного файла xorg.conf
. Обратите внимание, что при наличии конфликтующих настроек будут применены настройки из последнего прочитанного файла. Поэтому наиболее общие файлы конфигурации должны быть первыми в алфавитном порядке. Настройки из файла xorg.conf
обрабатываются в самом конце.
Смотрите также примеры настроек в Fedora Wiki.
Через файл xorg.conf
Xorg также можно настраивать через /etc/X11/xorg.conf
или /etc/xorg.conf
. Чтобы сгенерировать основу файла xorg.conf
:
# Xorg :0 -configure
Это создает файл xorg.conf.new
в /root/
, который можно скопировать в /etc/X11/xorg.conf
.
Xorg :2 -configure
.Кроме того, ваш проприетарный видеодрайвер может поставляться с инструментом для автоматической настройки Xorg: смотрите статьи NVIDIA (Русский) или AMDGPU PRO (Русский) для подробностей.
Устройства ввода
Для устройств ввода в 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 Wiki.
Идентификация ввода
Смотрите Keyboard input (Русский)#Определение кодов клавиш в Xorg.
Ускорение мыши
Смотрите Mouse acceleration.
Дополнительные кнопки мыши
Смотрите кнопки мыши.
Тачпад
Смотрите libinput или Touchpad Synaptics (Русский).
Тачскрин
Смотрите Touchscreen.
Настройка клавиатуры
Смотрите конфигурация клавиатуры в Xorg.
Настройка монитора
Ручная настройка
- Новые версии Xorg автоматически всё настраивают, поэтому ручная настройка чаще всего не требуется.
- Если Xorg не может обнаружить монитор или если автонастройка не нужна, можно использовать файл конфигурации. Распространённым случаем, когда это необходимо, является система без монитора (headless), которая автоматически запускает 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
Несколько мониторов
Смотрите главную статью Multihead для получения общей информации.
Более одной видеокарты
Вы должны определить нужный драйвер для использования и ввести ID шины (bus ID) нужной видеокарты (в десятичном виде).
Section "Device" Identifier "Screen0" Driver "intel" BusID "PCI:0:2:0" EndSection Section "Device" Identifier "Screen1" Driver "nouveau" BusID "PCI:1:0:0" EndSection
Чтобы узнать 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
По умолчанию Xorg всегда устанавливает DPI равным 96, начиная с 2009-01-30. В версии 21.1 было добавлено корректное автоопределение DPI, но оно было убрано.
Задать DPI для X-сервера можно с помощью опции командной строки -dpi
.
Наличие правильного DPI особенно необходимо, когда требуются точные детали (например, рендеринг шрифтов). Ранее производители пытались создать стандарт для 96 DPI (монитор с диагональю размером 10,3 дюйма был бы 800x600, 13,2-дюймовый монитор - 1024x768). Сейчас DPI экранов отличаются и могут быть не равными по горизонтали и по вертикали. Например, 19-дюймовый широкоэкранный ЖК-дисплей с разрешением 1440x900 может иметь DPI 89х87.
Чтобы убедиться, что разрешение вашего дисплея и DPI обнаружены/правильно рассчитаны:
$ xdpyinfo | grep -B2 resolution
Убедитесь, что выведенные размеры (dimensions) соответствуют настоящему размеру вашего монитора.
Если вы знаете физический размер экрана, его можно ввести в конфигурационный файл Xorg так, чтобы был рассчитан правильный DPI (измените Identifier
в соответствии с выводом вашего 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
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
Настройка DPI вручную
Для RandR-совместимых драйверов (например, драйвер ATI с открытым исходным кодом) вы можете установить dpi так:
$ xrandr --dpi 144
Чтобы сделать его постоянным, посмотрите запуск команд после запуска X.
Проприетарный драйвер NVIDIA
Вы можете установить DPI вручную, добавив в раздел Device
или Screen
:
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 (англ), сигналы управления энергопотреблением дисплеев) — технология, позволяющая настроить энергосбережение монитора, когда компьютер не используется. Она позволит вам автоматически переключить монитор в режим ожидания через определенное время простоя.
Композит
Расширение Composite для X позволяет вывести всё поддерево иерархии окон в буфер вне экрана. Затем приложения могут загружать содержимое этого буфера и делать с ним всё, что им заблагорассудится. Закадровый буфер может автоматически объединяться в родительское окно или объединяться внешними программами, называемыми композитными менеджерами. Для получения дополнительной информации смотрите статью Wikipedia:ru:Композитный менеджер окон.
Некоторые оконные менеджеры (например, Compiz, Enlightenment, KWin, Marco, Metacity, Muffin, Mutter, Xfwm) имеют встроенный композитинг. Для других оконных менеджеров можно использовать отдельные композитные менеджеры.
Список композитных менеджеров
- Picom — Легкий композитор с функциями добавления теней, размытия и выцветания. Форк Compton.
- Xcompmgr — Композитный оконный менеджер.
- Gamescope — Микрокомпозитор от Valve с возможностями, ориентированными на игры, такими как масштабирование с помощью FSR. Форк steamos-compositor.
- steamos-compositor-plus — Композитор от Valve с некоторыми дополнительными исправлениями и доработками.
Советы и рекомендации
Автоматизация
В этом разделе перечислены утилиты для автоматизации операций с окнами (например, перемещение, изменение размера или фокусировка), ввода/вывода клавиатуры и мыши.
Утилита | Пакет | Документация | Эмуляция клавиш |
Операции с окнами |
Примечание |
---|---|---|---|---|---|
xautomation | xautomation | xte(1) | Да | Нет | Также содержит инструменты для анализа содержимого экрана (screen scraping). Не может эмулировать F13+. |
xdo | xdo | xdo(1) | Нет | Да | Небольшая утилита X для выполнения элементарных действий над окнами. |
xdotool | xdotool | xdotool(1) | Да | Да | Очень забагованный и находится в неактивной разработке, например: имеет сломанный CLI parsing.[2][3] |
xvkbd | xvkbdAUR | xvkbd(1) | Да | Нет | Виртуальная клавиатура для Xorg, также имеет параметр -text для отправки символов.
|
AutoKey | autokey-qtAUR autokey-gtkAUR | documentation | Да | Да | Высокоуровневая мощная утилита для работы с макросами и скриптами, имеющая интерфейсы Qt и GTK. |
Смотрите также Буфер обмена#Инструменты и обзор средств автоматизации X.
Вложенная X-сессия
Для запуска вложенного сеанса другой среды рабочего стола:
$ /usr/bin/Xnest :1 -geometry 1024x768+0+0 -ac -name Windowmaker & wmaker -display :1
Это запустит сеанс Window Maker в окне 1024 на 768 в рамках текущей X-сессии.
Для этого необходим установленный пакет xorg-server-xnest.
Более современный подход — использование Xephyr.
Запуск приложения без оконного менеджера
Смотрите xinit (Русский)#Запуск приложений без оконного менеджера.
Запуск графических программ удалённо
Смотрите основную статью: Secure Shell (Русский)#Проброс 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 устройство
, где устройство это ID устройства или имя устройства, которое вы хотите отключить. В следующем примере мы отключим тачпад Synaptics с ID 10:
$ xinput --disable 10
Чтобы снова включить устройство, просто выполните противоположную команду:
$ xinput --enable 10
Так выглядит команда для выключения устройства (здесь тачпада) через его имя:
$ xinput --disable "SynPS/2 Synaptics TouchPad"
Постоянное отключение устройства ввода
Полностью отключить определённое устройство ввода можно с помощью такой настройки:
/etc/X11/xorg.conf.d/30-disable-устройство.conf
Section "InputClass" Identifier "disable-устройство" Driver "имя_драйвера" MatchProduct "имя_устройства" Option "Ignore" "True" EndSection
устройство
— произвольное имя, а имя_драйвера
— например, libinput
. имя_устройства
— это то, что фактически используется для поиска нужного устройства. Могут быть и другие методы поиска нужного устройства, например MatchIsTouchscreen
из libinput, о которых можно почитать в документации соответствующего драйвера. Хотя в данном примере используется libinput, это метод не зависит от драйвера и просто предотвращает передачу информации об устройстве в драйвер.
Закрытие приложения с помощью горячей клавиши
Привяжите скрипт к горячей клавише:
#!/bin/sh 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
Ctrl+Alt+Backspace
, а действие Terminate_Server
из раскладки клавиатуры (keyboard map). По умолчанию это действие обычно не установлено; смотрите Конфигурация клавиатуры в Xorg#Завершение Xorg по сочетанию клавиш Ctrl+Alt+Backspace.Визуальное закрытие приложения
Если приложение ведёт себя некорректно или зависло, вместо использования kill
или killall
из терминала и необходимости искать идентификатор или имя процесса можно использовать xorg-xkill, который позволяет щёлкнуть по окну проблемного приложения, чтобы закрыть его соединение с X-сервером. Многие существующие приложения действительно завершают свою работу (abort) при закрытии соединения с X-сервером, но некоторые могут продолжить работу.
Использование Xorg без прав суперпользователя
Xorg может запускаться с привилегиями обычного пользователя вместо root (так называемый «Rootless Xorg»). Это значительно повышает безопасность по сравнению с запуском от имени суперпользователя. Обратите внимание, что некоторые популярные экранные менеджеры не поддерживают rootless Xorg (например, LightDM или XDM).
Проверить, от имени какого пользователя запущен Xorg, можно с помощью команды ps -o user= -C Xorg
.
Смотрите также Xorg.wrap(1), systemd-logind(8), systemd/Пользователь#Xorg как пользовательская служба systemd, Fedora:Changes/XorgWithoutRootRights и FS#41257.
Через xinitrc
Чтобы настроить запуск rootless Xorg с использованием xinitrc:
- Запускайте startx как подпроцесс оболочки входа (login shell); запускайте
startx
напрямую и не используйтеexec startx
. - Убедитесь, что Xorg использует виртуальный терминал, для которого были установлены права доступа, то есть который logind передал в
$XDG_VTNR
через .xserverrc. - При использовании некоторых проприетарных драйверов дисплея автоопределение kernel mode setting может оказаться неудачным. В этом случае в файле
/etc/X11/Xwrapper.config
укажитеneeds_root_rights = no
.
Через GDM
При использовании kernel mode setting по умолчанию GDM запускает Xorg без прав root.
Перенаправление журнала сеанса
Пока журналы пользователя Xorg хранятся в ~/.local/share/xorg/Xorg.log
, они не включают вывод X-сессии. Чтобы повторно включить перенаправление, запустите X с флагом -keeptty
:
startx -- -keeptty >~/.xorg.log 2>&1
Или скопируйте /etc/X11/xinit/xserverrc
в ~/.xserverrc
и добавьте -keeptty
. Для получения дополнительной информации смотрите [4].
Использование Xorg с правами суперпользователя
Как упоминалось выше, иногда по умолчанию используется Xorg без права root. Если это ваш случай и у вас есть необходимость запускать Xorg от имени root, вы можете настроить Xorg.wrap(1) на требование root:
/etc/X11/Xwrapper.config
needs_root_rights = yes
Решение проблем
Общее
Если произошла какая-то проблема с X, посмотрите лог (журнал), хранящийся в /var/log/
или для пользователей без рут-доступа в ~/.local/share/xorg/
(по умолчанию с версии 1.16). Пользователям GDM следует проверить журнал systemd. [5]
Файлы журналов имеют следующий вид 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 -f ~/.local/share/xorg/Xorg.0.log | ts
- При просмотре журнала будьте внимательны к строкам, начинающимся с
(EE)
, которые обозначают ошибки, и к строкам(WW)
, которые предупреждают об возможных других проблемах. - Если файл
.xinitrc
пустой в$HOME
, то его необходимо или удалить, или изменить для правильной загрузки X. Не сделав этого, вы получите пустой экран, а в журнале возможноXorg.0.log
не будет ошибок. Просто удалив его, у вас будет запускаться стандартное окружение X. - Если экран становится чёрным, вы всё ещё можете попытаться переключиться на другую виртуальную консоль (например,
Ctrl+Alt+F6
), и вслепую войти в систему как root. Чтобы сделать это, введите логинroot
(нажмитеEnter
после ввода), а потом введите пароль (снова нажмитеEnter
после ввода).
- Вы можете попытаться завершить X сервер через:
# pkill -x X
- Если это не сработало, просто перезагрузитесь:
# reboot
- Если у вас проблемы с устройствами ввода (клавиатурой, мышкой, тачпадом, и т.д.), смотрите страницы в Category:Input devices (Русский).
- Смотрите также решение проблем в статьях AMDGPU (Русский), Intel graphics (Русский) и NVIDIA (Русский).
X создает конфигурационные и временные файлы в текущем домашнем каталоге пользователя. Убедитесь в наличии свободного места на разделе, в котором находится домашний каталог. К сожалению, X сервер в этом случае не представляет очевидную информацию о недостатке места.
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.
Программа требует "font '(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, вы можете использовать установочный образ Arch Linux. Следуйте руководству по установке до момента монтирования разделов и выполните chroot в установленный Arch Linux. Другой вариант — попытайтесь переключиться на другую tty с помощью сочетания клавиш
Ctrl+Alt
+ функциональная клавиша (обычно отF1
доF7
в зависимости от того, на какой не запущен X), войдите как root и следуйте шагам ниже.
В зависимости от настройки, вам необходимо выполнить один или более шагов:
- Отключите экранный менеджер.
- Отключите автозапуск X при входе в систему.
- Переименуйте файл
~/.xinitrc
или закомментируйте в нём строку сexec
.
Клиент 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 сервер запустится.
Зелёный экран при попытке просмотра видео
У вас неправильно установлена цветовая глубина. Например, требуется 24 вместо 16.
Ошибка SocketCreateListener
Если X завершаются с сообщением об ошибке SocketCreateListener() failed
, удалите файлы сокета в /tmp/.X11-unix
. Это может происходить после того, как вы ранее запускали Xorg с правами суперпользователя (например, для создания xorg.conf
).
Неверный ключ MIT-MAGIC-COOKIE-1 при попытке запустить программу от имени суперпользователя
Эта ошибка означает, что только текущий пользователь имеет доступ к X-серверу. Решение состоит в том, чтобы предоставить доступ для суперпользователя:
$ xhost +si:localuser:root
Эта строка также может быть использована для предоставления доступа к X другому пользователю, нежели root.
Фатальная ошибка сервера: (EE) AddScreen/ScreenInit
Если Xorg-server не работает случайным образом и в логе Xorg вы видите:
systemd-logind: failed to take device /dev/dri/card0: Operation not permitted ... AddScreen/ScreenInit failed for driver 0
Тогда это может быть вызвано проблемой systemd #134943. Настройте ранний запуск KMS.
Смотрите также
- Xplain — подробное объяснение оконной системы X
- Xorg(1) — справочная страница Xorg
- Prepare for LPIC-1 exam 2 - topic 106.1: X11 — кратко описывает архитектуру, настройку, среды рабочего стола, удалённое использование, Wayland.
- xorg.conf(5)
- Gentoo:Xorg/Guide#Configuration — статья о конфигурации Xorg на Gentoo Wiki