Ошибки Xorg с NVIDIA: где искать лог
Когда с NVIDIA что-то идёт не так, экран чаще всего говорит «ничего»: чёрный кадр, окно без графики, сессия, которая не стартует. Единственный нормальный источник диагностики это лог Xorg, и в нём почти всегда видно, на каком именно шаге всё сломалось. Разбираемся, где файл лежит в 2026 году, как вытащить из тысячи строк нужные и что делать с каждой типовой ошибкой.
Где лежит лог Xorg и что делать, если его нет
По умолчанию сервер пишет файл прямо в /var/log/Xorg.0.log, рядом лежит предыдущий запуск: Xorg.0.log.old. На части новых систем лог уезжает в домашний каталог, в ~/.local/share/xorg/, там же обнаруживается Xwayland.0.log для сессии Wayland. Проверь оба места и журнал системы:
ls -l /var/log/Xorg.*.log ~/.local/share/xorg/ 2>/dev/null
journalctl -b | grep -iA5 "xorg\|drm\|nvidia"
journalctl -b -1 | grep -i "xorg" # предыдущая загрузка
Если Xorg не стартует вообще и файлов нет, подключись к текстовой консоли и запусти сервер вручную с подробным журналированием: ключ -verbose поднимает уровень детализации:
sudo Xorg -verbose :1
Отдельный случай: автогенерация конфигурации. Команда Xorg -configure создаёт xorg.conf по найденному оборудованию, и сравнение сгенерированного файла с работающей системой многое объясняет. Сам xorg.conf при этом не нужен: он ломает гибридную схему и Wayland, а помогает лишь в диагностике.
Как читать лог и не утонуть в тысяче строк
Сервер помечает уровень сообщений прямо в строке. (EE) это ошибка, из-за которой он уходит в аварийный режим, (WW) это предупреждение, часто безобидное. Полезные команды:
# только ошибки и предупреждения
grep -E "\(EE\)|\(WW\)" /var/log/Xorg.0.log
# всё, что связано с видео
grep -iE "nvidia|glx|egl|drm|glamor" /var/log/Xorg.0.log | tail -40
# сколько строк всего и сколько ошибок: быстрый срез
wc -l /var/log/Xorg.0.log
grep -cE "\(EE\)" /var/log/Xorg.0.log
Читай с конца: сервер логирует по мере загрузки, поэтому первая ошибка находится ближе к началу, а последние строки показывают итог. Дальше фильтруй по имени модуля: nvidia, glx, egl, drm. Полезно сверить весь список ошибок с одной командой, а не перечитывать файл глазами.
Что означают типичные ошибки NVIDIA
NVIDIA(0): Failed to initialize the NVIDIA kernel module
Сервер не смог получить доступ к модулю ядра. Обычных причин две: модуль не загружен вообще или он собран под другое ядро. Проверяй так:
uname -r
modprobe nvidia && lsmod | grep nvidia
dmesg | grep -iE "nvidia|api mismatch" | tail -20
Строка API mismatch в журнале ядра означает, что модуль собран под другую версию ядра: нужно пересобрать initramfs или драйвер. Если система вообще не грузится с картинкой, сначала выручайся через параметр nomodeset, о нём я писал в статье про чёрный экран и nomodeset.
Failed to load module "nvidia" (modules/nvidia/nvidia_drv.so)
Xorg не нашёл пользовательскую часть драйвера. Это уже не про ядро, а про файлы библиотек: nvidia_drv.so ставится пакетом nvidia-utils. Проверь, что пакет на месте, и что его версия совпадает с версией ядерного модуля:
pacman -Q nvidia nvidia-utils
pacman -Ql nvidia-utils | grep -E "nvidia_drv|libGLX_nvidia|libEGL_nvidia"
Расхождение версий между пакетами nvidia* это самая частая причина всех бед после частичного обновления.
Failed to initialize GLX extension
Xorg запустился, но 3D-ускорение не поднялось. Механизм GLX в современной системе раздаёт не сам драйвер, а прослойка glvnd, и если она или её библиотеки повреждены, сервер честно сообщает об отказе. Лечится переустановкой пакета:
sudo pacman -S libglvnd nvidia-utils
ldconfig -p | grep -E "libGLX_nvidia|libEGL_nvidia|libGLdispatch"
Отдельно проверь, что загружен нужный драйвер, а не nouveau: строка Kernel driver in use в выводе lspci -nnk должна содержать nvidia.
No devices detected
Сервер не нашёл ни одного пригодного устройства. Обычно виноват режим питания карты, отсутствие modesetting или не тот драйвер:
lspci -nnk | grep -A3 -E "VGA|3D controller"
cat /sys/bus/pci/devices/0000:01:00.0/power/control
Почему GLX и EGL ломаются из-за libglvnd
Современный Xorg не общается с драйверами напрямую. Посередине стоит glvnd: прослойка, которая выбирает вендора по списку в /usr/share/glvnd/egl_vendor.d/ и подгружает нужную реализацию GLX или EGL. Отсюда два правила, которые стоит запомнить:
- Логика выбора GPU живёт в glvnd, а не в настройках Xorg. Если игра или Qt-приложение цепляется не к тому вендору, лечится это переменными окружения и составом файлов в каталоге, а разбор случаев с hybrid-графикой, prime-run и EGL описан в статье о гибридной графике и выборе GPU для Steam.
- Предупреждения вида
EGL_EXT_platform_baseилиUnable to load libEGL_nvidiaпочти никогда не означают поломку. Это сообщения о том, что запросили расширение, которого нет, или что библиотека вендора не участвует в разыменовании. Проверяй, что приложение вообще рисует, а не ищи причину в этих строках.
Ещё один нюанс: в сессии Wayland строки про GLX относятся к Xwayland, а не к твоему сессии. Тогда лог лежит в ~/.local/share/xorg/Xwayland.0.log, и читать /var/log/Xorg.0.log бесполезно.
Как починить сломанную установку драйвера
Порядок действий почти всегда один и тот же. Сначала доводи обновление до конца. Частичное обновление ломает нумерацию библиотек:
sudo pacman -Syu
sudo pacman -S nvidia nvidia-utils libglvnd
sudo mkinitcpio -P
sudo modprobe nvidia
Дальше проверь initramfs. Модуль NVIDIA должен попасть в образ ядра, а его параметры в конфиг. В новых драйверах параметры переехали из командной строки в /etc/modprobe.d/nvidia.conf:
cat /etc/modprobe.d/nvidia.conf
grep -n "nvidia" /etc/mkinitcpio.conf /etc/mkinitcpio.d/*.conf
Если после pacman -Syu ядро обновилось, а initramfs почему-то не пересобрался, система не загрузится с картинкой, и починить это сможет только ручной mkinitcpio -P. Смежная история с невидимыми ядрами в меню загрузчика разобрана в статье о том, что GRUB не видит ядро после обновления. Полный порядок установки драйвера с нуля я собирал в материале про драйвер NVIDIA на Arch Linux: проще пройти его целиком, чем собирать конструктор из отдельных шагов.
Отдельно про конфликт с nouveau: если оба модуля грузятся, Xorg может выбрать не тот. Гасится это записью в blacklist, а выгрузкой в текущей сессии:
sudo modprobe -r nouveau
echo "blacklist nouveau" | sudo tee /etc/modprobe.d/nvidia-blacklist.conf
sudo mkinitcpio -P
Как проверить, что ошибка ушла
Финальная проверка состоит из трёх коротких команд, и все три должны дать ожидаемый результат:
grep -cE "\(EE\)" /var/log/Xorg.0.log # 0: ошибок нет
glxinfo -B | grep -E "OpenGL vendor|OpenGL renderer"
xrandr | head -20
В строке OpenGL renderer string должно быть имя твоей карты с «NVIDIA Corporation», а не «llvmpipe» и не «AMD Radeon». Если счётчик (EE) больше нуля, а картинка есть, скорее всего, ошибка безобидная и связана с второстепенным устройством вроде ТВ-выхода, но проверить стоит. Добавь к проверке nvidia-smi и prime-run glxinfo -B, чтобы увидеть, просыпается ли дискретная карта по запросу.
Частые вопросы
Файла лога нет, а Xorg не запускается
Переключись на текстовую консоль и читай журнал: journalctl -b | grep -iA5 xorg. Если и там пусто, запусти sudo Xorg -verbose :1: вывод пойдёт прямо в терминал. Статус дисплей-менеджера покажет, до какого момента дошла загрузка.
После pacman -Syu появился Failed to initialize GLX
Недообновлённая система. Доустанови обновления до конца, затем sudo pacman -S libglvnd nvidia-utils и sudo mkinitcpio -P. Проверь, что все пакеты nvidia* стоят одной версии: расхождение версий и есть корень ошибки.
Ошибки нет, но игра всё равно идёт на встроенной карте
Это уже не проблема Xorg: сервер запустился штатно. Смотри окружение приложения и выбор GPU через переменные окружения, а не журнал сервера. Проверь фактический рендерер через glxinfo -B | grep renderer и сравни с ожидаемой картой.
Есть ли смысл редактировать xorg.conf
Почти всегда нет. Файл конфигурации выключает автоопределение видеокарты, ломает переключение в гибридной схеме и мешает Wayland. Создавай его только ради диагностики, выводом Xorg -configure, и убирай, как только причина найдена.
Полезные ресурсы
- ArchWiki: NVIDIA: установка, параметры модулей, разбор ошибок и несовместимости.
- ArchWiki: Xorg: конфигурация сервера, журналы, диагностика проблем с запуском.
Заключение
Лог Xorg это единственное место, где видно настоящую причину сбоя, а экран почти всегда молчит. Научись читать строки (EE) и (WW), сверяй версии пакетов nvidia* и пересобирай initramfs после каждого обновления ядра, и большинство проблем с NVIDIA перестанет быть загадкой.
Не получилось? Поможем настроить
Задай вопрос в чате — отвечаем быстро, по делу и без воды.

Комментарии