X Server в Ubuntu: настройка, диагностика и исправление ошибок

Чёрный экран с мигающим курсором после обновления Ubuntu или установки драйвера NVIDIA почти всегда означает, что X Server (или современная замена — Wayland) не смог запустить графическую сессию. Первое действие в такой ситуации — переключиться в текстовую консоль комбинацией Ctrl+Alt+F3 и проверить лог /var/log/Xorg.0.log на строки с пометкой (EE) — именно там указана причина сбоя.

X Server — это фундамент графической подсистемы Linux: он отвечает за отрисовку окон, обработку ввода с клавиатуры и мыши и взаимодействие с видеодрайвером. В Ubuntu по умолчанию новые релизы используют Wayland, однако Xorg остаётся привычным вариантом для проприетарных драйверов, удалённого доступа и ряда профессиональных приложений. Разберём, как устроен X Server, как им управлять и что делать при типичных сбоях.

Что такое X Server и как он работает в Ubuntu

X Window System (X11) построена по клиент-серверной модели, что непривычно для новичков: сервер — это программа на вашем компьютере, управляющая экраном и устройствами ввода, а клиенты — приложения, которые просят его нарисовать окно. Благодаря такой архитектуре приложение может работать на удалённой машине, а отображаться локально — это основа технологии X11 Forwarding через SSH.

Начиная с определённых версий Ubuntu, дисплейным сервером по умолчанию стал Wayland, а Xorg предлагается как опция «Ubuntu on Xorg» на экране входа. Проверить, какой сервер активен в текущей сессии, можно одной командой:

echo $XDG_SESSION_TYPE

Ответ x11 означает работу X Server, ответ wayland — сеанс Wayland. Это различие критично при диагностике: многие инструменты вроде xrandr или xprop работают только в X11-сессии.

Проверка состояния и версии X Server

Прежде чем что-то менять, убедитесь, что Xorg вообще установлен и запущен. Вам нужно выполнить несколько простых проверок из терминала.

  • 🔍 ps aux | grep Xorg — показывает, запущен ли процесс X Server
  • 📦 dpkg -l | grep xserver-xorg — список установленных пакетов X-сервера
  • 🖥️ X -version — версия Xorg (требует прав, если сервер активен)
  • 📄 grep EE /var/log/Xorg.0.log — ошибки последнего запуска

Если пакеты отсутствуют — например, после минимальной установки — X Server устанавливается командой:

sudo apt install xorg

Для полноценного рабочего окружения одного сервера недостаточно: нужны ещё дисплейный менеджер (GDM3, LightDM или SDDM) и окружение рабочего стола. Метапакет ubuntu-desktop подтягивает всё это разом.

📊 Какой дисплейный сервер вы используете в Ubuntu?
Xorg (X11)
Wayland
Переключаюсь в зависимости от задач
Не знаю, как проверить

Запуск, остановка и перезапуск X Server

В современной Ubuntu X Server стартует автоматически через дисплейный менеджер, поэтому управлять им напрямую обычно не требуется. Перезапуск графической сессии выполняется через службу:

sudo systemctl restart gdm

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

☑️ Чек-лист диагностики X Server

Выполнено: 0 / 5

Для запуска отдельной X-сессии вручную (например, на сервере без автологина) используется команда startx. Она читает файл ~/.xinitrc и запускает указанную там сессию. На десктопных системах с GDM этот способ обычно не нужен.

⚠️ Внимание: не останавливайте дисплейный менеджер (systemctl stop gdm), находясь в графической сессии, — экран погаснет мгновенно, а все открытые программы завершатся без сохранения. Перед остановкой переключитесь в текстовую консоль через Ctrl+Alt+F3 и авторизуйтесь там.

Переключение между Xorg и Wayland

На экране входа в систему (GDM) после выбора пользователя появляется значок шестерёнки в правом нижнем углу — через него выбирается тип сессии: Ubuntu (обычно Wayland) или Ubuntu on Xorg. Выбор запоминается и применяется при следующих входах.

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

sudo nano /etc/gdm3/custom.conf

Раскомментируйте или добавьте строку WaylandEnable=false, затем перезагрузите систему. После этого все сессии будут работать через Xorg.

КритерийXorg (X11)Wayland
Удалённые приложенияНативный X11 ForwardingЧерез сторонние решения
Проприетарные драйверы NVIDIAТрадиционно стабильнееПоддержка зависит от версии драйвера
Масштабирование HiDPIОграниченноеДробное масштабирование
Инструменты вроде xrandrРаботаютНе работают напрямую
Запись экрана старыми утилитамиПолная совместимостьЧерез PipeWire

Типичные ошибки X Server и их решение

Самая частая жалоба — чёрный экран после логотипа загрузки. Возможные причины: конфликт видеодрайвера, переполненный системный раздел (X Server не может создать временные файлы), повреждённый конфигурационный файл или сбой дисплейного менеджера. Диагностику начинайте с текстовой консоли Ctrl+Alt+F3.

Проверьте свободное место командой df -h — если корневой раздел заполнен на 100%, освободите его (очистка кэша пакетов sudo apt clean — безопасный первый шаг). Затем изучите лог: строки (EE) в /var/log/Xorg.0.log указывают на конкретный сбойный модуль.

  • 🎮 Ошибки NVIDIA / nvidia — переустановите драйвер через sudo ubuntu-drivers autoinstall или переключитесь на свободный nouveau
  • 💾 No space left on device — чистите диск, сервер не стартует без свободного места
  • ⚙️ Ошибки синтаксиса в /etc/X11/xorg.conf — переместите файл и дайте серверу работать с автоконфигурацией
  • 🔁 Бесконечный возврат на экран логина — проверьте права на файл ~/.Xauthority, он должен принадлежать вашему пользователю

⚠️ Внимание: не создавайте и не редактируйте /etc/X11/xorg.conf без явной необходимости. Современный Xorg работает в режиме автоматического определения оборудования, а устаревший или ошибочный конфиг — частая причина того, что графика вообще не стартует. Если файл появился после экспериментов, просто переименуйте его и перезапустите сессию.

X11 Forwarding: запуск графических приложений по SSH

Одна из уникальных возможностей X Server — отображение приложений с удалённой машины на локальном экране. Для этого на сервере в файле /etc/ssh/sshd_config должен быть включён параметр X11Forwarding yes, а подключение выполняется с флагом:

ssh -X user@server

После входа запустите любое графическое приложение — например, xeyes для проверки — и его окно появится на вашем локальном дисплее. Флаг -Y включает «доверенный» режим, который иногда требуется приложениям, отказывающимся работать через -X.

⚠️ Внимание: X11 Forwarding передаёт графический трафик через SSH, но сам протокол X11 исторически не считается защищённым. Не включайте форвардинг на серверах, к которым имеют доступ недоверенные пользователи, и ограничивайте SSH доступ по ключам.

Почему xeyes — классический тест X11

Эта маленькая утилита рисует глаза, следящие за курсором, и входит в пакет x11-apps. Если xeyes по SSH отображается, значит форвардинг, переменная DISPLAY и авторизация Xauthority настроены корректно.

Полезные инструменты диагностики X11

В сессии Xorg доступен целый набор утилит для тонкой настройки и поиска проблем. xrandr управляет разрешением и расположением мониторов, xinput показывает и настраивает устройства ввода, xev выводит все события клавиатуры и мыши — незаменим при отладке неработающих клавиш.

Для анализа производительности рендеринга пригодится glxinfo из пакета mesa-utils: команда glxinfo | grep renderer покажет, какой драйвер фактически используется для OpenGL. Если вместо аппаратного драйвера вы видите llvmpipe, значит работает программный рендеринг — система будет заметно «тормозить», и это прямой повод разбираться с видеодрайвером.

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

Как узнать, запущен ли X Server в данный момент?

Выполните echo $XDG_SESSION_TYPE — ответ x11 подтверждает работу X-сессии. Дополнительно проверить процесс можно командой ps aux | grep Xorg.

Чёрный экран после установки драйвера NVIDIA — что делать?

Перейдите в консоль Ctrl+Alt+F3, войдите в систему и проверьте /var/log/Xorg.0.log. Часто помогает удаление конфликтующего драйвера (sudo apt purge nvidia-*) с последующей установкой рекомендованной версии через ubuntu-drivers. Точные шаги зависят от модели видеокарты и версии Ubuntu.

Можно ли использовать Xorg вместо Wayland постоянно?

Да. Либо выбирайте «Ubuntu on Xorg» на экране входа, либо отключите Wayland глобально через параметр WaylandEnable=false в /etc/gdm3/custom.conf и перезагрузитесь.

Почему xrandr не работает в моей сессии?

Утилита xrandr предназначена только для X11. Если echo $XDG_SESSION_TYPE возвращает wayland, управление мониторами выполняется через настройки системы или утилиты конкретного окружения рабочего стола.

Нужен ли отдельный X Server на сервере Ubuntu без монитора?

Нет, если вы не планируете запускать графические приложения. Для X11 Forwarding на сервере достаточно пакета xauth и включённого параметра X11Forwarding в конфигурации SSH — полноценный Xorg с драйверами не требуется.