X.Org Server: устройство, установка и настройка графического сервера в Linux

Чёрный экран вместо входа в систему после обновления драйверов NVIDIA — один из самых частых симптомов, при котором пользователь Linux впервые сталкивается с X.Org Server напрямую: графическая оболочка не стартует, а в журнале /var/log/Xorg.0.log видны строки с ошибками загрузки модуля. Именно X.Org Server отвечает за отрисовку окон, обработку клавиатуры и мыши в большинстве классических дистрибутивов, поэтому его сбой выглядит как полный отказ графики, хотя сама система продолжает работать.

Эта статья объясняет, что такое X.Org Server, как он устроен, чем отличается от Wayland, как его установить и настроить, а также как диагностировать типичные ошибки запуска. Материал ориентирован на пользователей дистрибутивов вроде Ubuntu, Debian, Fedora и Arch Linux.

Что такое X.Org Server и зачем он нужен

X.Org Server — это свободная реализация графического сервера X11, разрабатываемая фондом X.Org Foundation. Он выступает посредником между оборудованием (видеокартой, монитором, устройствами ввода) и приложениями, которым нужно рисовать окна на экране. Сам по себе X-сервер не создаёт ни рабочий стол, ни панели — этим занимаются оконные менеджеры и среды рабочего стола вроде GNOME, KDE Plasma или XFCE, которые запускаются поверх него.

Архитектура X11 построена на клиент-серверной модели по протоколу X Window System, появившемуся ещё в 1980-х годах. Приложения выступают клиентами, а X-сервер принимает их запросы на отрисовку и передаёт события ввода обратно. Любопытная особенность: протокол сетевой, поэтому теоретически приложение может работать на одной машине, а его окно отображаться на другой.

Практически это значит, что когда вы запускаете команду startx или входите в систему через экранный менеджер (GDM, SDDM, LightDM), первым стартует именно X-сервер, и только затем на нём разворачивается графическое окружение. Без работающего X-сервера никакой графической сессии в классическом режиме X11 не будет.

Чем X.Org отличается от Wayland

Вопрос «X11 или Wayland» сегодня встает перед пользователем при выборе сессии на экране входа. Wayland — более новый протокол, где композитор (например, Mutter или KWin) сам выполняет роль сервера, без отдельного промежуточного слоя. Это упрощает архитектуру и устраняет ряд исторических проблем X11: тиринг, слабую изоляцию клиентов, сложности с дробным масштабированием.

Однако X.Org остаётся актуальным по нескольким причинам:

  • 🖥️ Совместимость: старые приложения и специфический софт (некоторые САПР, утилиты удалённого доступа) рассчитаны именно на X11.
  • 🎮 Проприетарные драйверы: на части конфигураций с видеокартами NVIDIA сессия X11 исторически работала стабильнее, хотя ситуация меняется от версии к версии драйвера.
  • 🔧 Зрелость инструментов: утилиты вроде xrandr, xinput, xprop дают тонкий контроль над дисплеями и устройствами ввода.
  • 🌐 Сетевая прозрачность: перенаправление окон через SSH с ssh -X — встроенная возможность X11, у Wayland прямого аналога нет.

Для приложений X11 под Wayland существует прослойка XWayland — это, по сути, тот же X.Org Server, запущенный как клиент Wayland. Поэтому X.Org не исчезнет полностью ещё долго, даже если сессия по умолчанию в вашем дистрибутиве уже Wayland.

📊 Какая графическая сессия используется на вашей Linux-системе?
X11 (X.Org)
Wayland
XWayland поверх Wayland
Не знаю, как проверить

Как проверить, какой сервер используется сейчас

Прежде чем что-то настраивать, полезно узнать, что вообще запущено. Самый простой способ — посмотреть переменную окружения типа сессии:

echo $XDG_SESSION_TYPE

Если команда вывела x11 — работает X.Org Server, если wayland — сессия Wayland (при этом X-приложения могут идти через XWayland). Дополнительно можно проверить наличие процесса:

ps aux | grep -i xorg

Запущенный процесс Xorg с параметром дисплея :0 подтверждает активный X-сервер. Если процесса нет, а сессия графическая — вы точно на Wayland.

Установка X.Org Server

В большинстве дистрибутивов с графическим окружением X.Org уже установлен. Но при минимальной установке (например, серверный вариант системы или сборка «с нуля») его придётся поставить вручную. Команды различаются в зависимости от пакетного менеджера.

Для Debian и Ubuntu:

sudo apt update

sudo apt install xorg

Для Fedora:

sudo dnf install xorg-x11-server-Xorg

Для Arch Linux:

sudo pacman -S xorg-server

Помимо самого сервера обычно нужны драйверы ввода и видео. В Arch это пакеты группы xorg (например, xf86-video-... под конкретную видеокарту либо универсальный modesetting), в Debian драйверы подтягиваются метапакетом xorg автоматически. Точный набор пакетов зависит от версии дистрибутива — сверяйтесь с его официальной документацией.

☑️ Проверка после установки X.Org

Выполнено: 0 / 4
⚠️ Внимание: установка X.Org на систему с уже работающим Wayland-окружением безопасна — сессии сосуществуют. А вот ручная замена видеодрайверов (особенно установка проприетарных поверх открытых) может сломать запуск графики. Перед такими действиями убедитесь, что умеете переключиться в текстовую консоль по Ctrl+Alt+F3.

Конфигурация: xorg.conf и автонастройка

Современный X.Org в большинстве случаев не требует конфигурационного файла: сервер сам определяет оборудование через udev и подбирает параметры. Полный файл /etc/X11/xorg.conf нужен лишь в нестандартных ситуациях — например, при принудительном задании драйвера или необычной раскладке нескольких мониторов.

Правильное место для точечных настроек — каталог /etc/X11/xorg.conf.d/. Туда кладут небольшие фрагменты с секциями Section, которые дополняют автоматическую конфигурацию, не отменяя её целиком. Например, фрагмент для принудительного выбора драйвера может выглядеть так:

Section "Device"

Identifier "MyGPU"

Driver "modesetting"

EndSection

Для повседневных задач — смена разрешения, поворот экрана, настройка нескольких мониторов — править конфиги не нужно вовсе: используйте утилиту xrandr. Она применяет изменения на лету, без перезапуска сервера:

xrandr --output HDMI-1 --mode 1920x1080 --rate 60

Названия выходов (HDMI-1, DP-2 и т.п.) смотрите простым запуском xrandr без аргументов — список зависит от вашей видеокарты и драйвера.

Как сгенерировать полный xorg.conf

Команда Xorg :1 -configure создаёт шаблон конфигурации в файле /root/xorg.conf.new (выполняется из текстовой консоли при остановленной графической сессии). Однако в современных системах такой файл чаще вредит, чем помогает: используйте его только как основу для отдельных фрагментов в xorg.conf.d.

Диагностика типичных ошибок запуска

Если графика не стартует, главный источник информации — журнал /var/log/Xorg.0.log. Строки с пометкой (EE) обозначают ошибки, (WW) — предупреждения, которые обычно некритичны. Быстрый фильтр по ошибкам:

grep "(EE)" /var/log/Xorg.0.log

Ниже — частые сценарии и направления проверки. Конкретная причина всегда определяется содержимым журнала, поэтому не меняйте настройки вслепую.

СимптомВозможная причинаЧто проверить
Чёрный экран после обновленияНесовместимость драйвера с ядромСтроки (EE) про модуль драйвера в Xorg.0.log
«No screens found»Не загружен видеодрайверВывод lspci -k для видеокарты
Сервер падает сразу при startxОшибка в xorg.conf или xorg.conf.dВременно переименовать свои конфиги и повторить
Не работают клавиатура/мышьОтсутствует драйвер ввода (libinput/evdev)Наличие пакета xf86-input-libinput
Низкое разрешение, нет нужного режимаНекорректные данные EDID монитораВывод xrandr и добавление режима вручную
⚠️ Внимание: совет «удалите все файлы конфигурации» встречается на форумах часто, но слепое удаление /etc/X11 может убрать и рабочие настройки. Сначала делайте резервные копии — например, sudo cp -r /etc/X11 /etc/X11.bak — и возвращайте файлы по одному, чтобы найти проблемный.

Если графическая сессия недоступна, переключитесь в виртуальную консоль комбинацией Ctrl+Alt+F2 (или F3–F6), войдите под своим пользователем и работайте с журналами оттуда. Вернуться в графическую сессию обычно можно через Ctrl+Alt+F1 или Ctrl+Alt+F7 — номер консоли зависит от дистрибутива.

Полезные утилиты для работы с X.Org

Экосистема X11 богата инструментами диагностики и тонкой настройки. Вот те, которые стоит знать:

  • 🔍 xrandr — управление разрешениями, поворотом и расположением мониторов.
  • ⌨️ xinput — список устройств ввода и настройка их свойств (скорость тачпада, раскладки).
  • 🪟 xprop и xwininfo — информация о конкретном окне (кликните по окну после запуска).
  • 📋 xclip / xsel — работа с буфером обмена из командной строки.
  • 🧪 xdpyinfo — сведения о текущем X-сервере: версия, расширения, экраны.

Знание этих утилит особенно ценно при написании скриптов автозапуска: например, команду xrandr с нужной раскладкой мониторов можно добавить в автостарт сессии, и настройка будет применяться при каждом входе.

Часто задаваемые вопросы

Как переключиться с Wayland на X.Org?

На экране входа в систему (GDM, SDDM) обычно есть значок шестерёнки или выпадающий список сессий — выберите вариант с пометкой «X11», «Xorg» или «GNOME on Xorg» перед вводом пароля. Если такого пункта нет, возможно, пакеты X-сессии не установлены, либо экранный менеджер настроен только на Wayland — проверьте документацию вашего дистрибутива.

Где находится лог X.Org, если /var/log/Xorg.0.log пуст?

В системах, где X-сервер запускается от обычного пользователя (rootless), журнал может лежать в ~/.local/share/xorg/Xorg.0.log. Также ошибки сессии видны через journalctl -b при использовании systemd.

Можно ли запустить два X-сервера одновременно?

Да. Команда startx -- :1 запустит второй сервер на дисплее :1 в другой виртуальной консоли. Между сессиями переключаются стандартными комбинациями Ctrl+Alt+Fx.

Что означает ошибка «No screens found (EE)»?

Она означает, что сервер не смог инициализировать ни одно устройство вывода: чаще всего не загружен подходящий видеодрайвер или он конфликтует с ядром. Проверьте вывод lspci -k для видеокарты и строки (EE) выше этой ошибки в журнале — там указан модуль, который не загрузился.

Нужен ли X.Org, если у меня Wayland-сессия?

Скорее всего, да — в виде пакета XWayland, который обеспечивает запуск X11-приложений под Wayland. Удалять его не стоит: многие программы (включая часть проприетарного софта и старых игр) до сих пор работают только через протокол X11.