Полное руководство: как узнать текущий драйвер видеокарты в Linux

При диагностике проблем с производительностью в Steam или рендеринге часто возникает ситуация, когда система не загружает проприетарный модуль nvidia.ko, а использует базовый Nouveau или llvmpipe. Чтобы устранить сбой и восстановить корректную работу графического ускорителя, необходимо точно определить, какой именно драйвер активен в данный момент. Ошибочное предположение о наличии драйвера может привести к отсутствию аппаратного ускорения, низким FPS в играх и некорректному отображению интерфейса рабочего стола.

В отличие от Windows, где статус видеодрайвера отображается в графическом интерфейсе «Диспетчера устройств», Linux требует использования консольных утилит или специализированных системных файлов. Отсутствие единого визуального центра для мониторинга аппаратного обеспечения означает, что пользователю придется прибегнуть к командной строке для получения точной информации о загруженных модулях ядра и загруженном GLX сценарии. Понимание разницы между проприетарным и открытым драйвером критически важно для дальнейшей настройки системы.

Использование утилиты lspci для идентификации устройства

Первым шагом в диагностике должно стать подтверждение того, что система видит видеоплату физически. Для этого идеально подходит команда lspci, которая выводит список всех устройств, подключенных к шине PCI Express. Без этого базового сведения невозможно понять, корректно ли инициализировано оборудование на уровне ядра. Если устройство не отображается в списке, проблема может быть аппаратной или связанной с загрузкой BIOS/UEFI.

Для фильтрации вывода по видеокартам необходимо использовать комбинацию с ключом -k, который показывает загруженные модули ядра для каждого устройства. Это позволяет сразу увидеть, какой драйвер ассоциирован с конкретным GPU. Например, для карт NVIDIA в строке «Kernel driver in use» должно быть указано название драйвера, а не просто «Kernel modules: nouveau».

lspci -k | grep -A 2 -i vga

Вы также можете расширить поиск, включив в фильтр ключевые слова, характерные для производителей. Это особенно полезно, если в системе установлено несколько видеокарт (например, гибридная графика Intel + NVIDIA). Команда покажет, какая именно плата используется в данный момент по умолчанию.

  • 🔍 Используйте lspci | grep -i vga для быстрого списка всех видеоадаптеров;
  • 🔍 Ключ -k в команде выводит информацию о загруженных драйверах для каждого устройства;
  • 🔍 Фильтр -A 2 показывает две строки контекста после совпадения для полноты информации.
⚠️ Внимание: Если в строке «Kernel driver in use» пусто или отсутствует, это означает, что драйвер не загружен. Система работает в режиме базовой VGA-совместимости, что исключает использование аппаратного ускорения.

Важно отметить, что lspci показывает аппаратное состояние, но не всегда отражает текущую активную сессию графического сервера. Для полной картины необходимо проверить также библиотечные зависимости и состояние модулей. Однако именно этот метод дает наиболее точную информацию о том, какое устройство обнаружено и на что оно «повешено» на уровне ядра.

Проверка загруженных модулей ядра командой lsmod

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

Для видеокарт NVIDIA вы должны увидеть модули с префиксом nvidia, nvidia_uvm или nvidia_drm. Для карт AMD ключевыми будут модули amdgpu или radeon. Если вместо них загружен nouveau, значит, проприетарный драйвер не активен. Это критический момент для пользователей, которые установили официальный driver, но система продолжает использовать открытый код из-за конфликта параметров загрузки.

lsmod | grep -E 'nvidia|amdgpu|radeon|nouveau|intel'

Результат вывода покажет размер модуля и список зависимых от него других модулей. Это позволяет понять глубину интеграции драйвера в систему. Например, если модуль nvidia загружен, но нет зависимостей от него, это может указывать на то, что драйвер инициализировался, но не был вызван графическим сервером для работы.

  • 🚀 Ищите модули nvidia для карт NVIDIA и amdgpu для современных карт AMD;
  • 🚀 Наличие модуля nouveau при наличии карты NVIDIA указывает на использование открытого драйвера;
  • 🚀 Для карт Intel ищите модуль i915 в списке загруженных модулей.
Параметры загрузки ядра

Если модуль не загружается, проверьте файл /etc/modprobe.d/blacklist.conf. Иногда драйверы блокируются вручную для предотвращения конфликтов, что требует редактирования конфигурации GRUB или модулей.

Анализ статуса драйвера через утилиту lshw

Утилита lshw (list hardware) предоставляет наиболее подробную информацию о конфигурации оборудования, включая классический вывод о драйвере. Этот инструмент собирает данные из различных источников системы и формирует структурированный отчет, который легче читать, чем сырой вывод консольных утилит. Для получения прав доступа к полной информации требуется запуск с правами суперпользователя, так как некоторые данные о драйверах защищены.

Команда lshw -C display выводит информацию именно о графических адаптерах. В блоке вывода вы найдете строку configuration: driver=..., которая прямо указывает имя загруженного драйвера. Это наиболее надежный способ для новичков, так как результат понятен без расшифровки кодов устройств. Если в строке конфигурации указано driver=nouveau, а вы ожидали nvidia, значит, установка прошла некорректно.

sudo lshw -C display

В выводе также будут указаны логическое имя, версия firmware и product (модель карты). Это полезно для подтверждения того, что система видит именно ту модель, которую вы установили. Часто бывает, что при покупке б/у карты или ошибке в BIOS производительность падает из-за неверного определения модели, что влияет на выбор правильного драйвера.

⚠️ Внимание: Утилита lshw требует установки пакета lshw в некоторых дистрибутивах (например, Debian или Arch). Если команда не найдена, необходимо установить её через пакетный менеджер перед использованием.

Использование lshw также позволяет увидеть статус подключения (например, если карта отключена или работает в режиме энергосбережения). Это особенно актуально для ноутбуков с переключением графики, где одна карта может быть отключена для экономии заряда батареи. В таких случаях драйвер может быть загружен, но устройство находится в спящем режиме.

📊 Какой драйвер вы используете чаще всего?
NVIDIA Proprietary
AMD Mesa (Open Source)
Intel Integrated
Проприетарный AMD (Legacy)

Проверка поддержки OpenGL с помощью glxinfo

Самый точный способ узнать, какой драйвер используется для рендеринга графики, — проверить библиотеки OpenGL и GLX. Утилита glxinfo (часть пакета mesa-utils) выдает информацию о том, какой именно renderer используется для отрисовки 3D-графики. Это критически важно, так как даже при загруженном модуле ядра графический сервер может использовать программную реализацию вместо аппаратной.

Вывод команды glxinfo | grep "OpenGL renderer" покажет строку, содержащую имя драйвера. Если вы видите названия вроде LLVMpipe или Softpipe, это означает, что система использует процессор для рендеринга, и видеокарта не задействована. Это частая проблема при неправильной настройке путей к библиотекам Mesa или конфликте версий драйверов.

glxinfo | grep "OpenGL renderer"

Для карт NVIDIA корректный вывод должен содержать строку, начинающуюся с NVIDIA Corporation и указанием модели карты. Для карт AMD и Intel вы увидите названия, соответствующие архитектуре (например, Radeon RX 6800 или Intel Iris Xe). Отсутствие упоминания производителя в строке рендерера — верный признак проблемы с драйвером.

  • 🎮 Строка «OpenGL renderer string» — главный индикатор активного драйвера;
  • 🎮 Вид LLVMpipe означает использование процессора (CPU) вместо видеокарты (GPU);
  • 🎮 Пакет mesa-utils необходимо установить для работы команды glxinfo.

Этот метод также позволяет проверить версию OpenGL и GLSL, что важно для запуска современных игр и приложений. Если версия OpenGL ниже ожидаемой, это может указывать на устаревший драйвер или неправильную конфигурацию окружения. Проверка через glxinfo является окончательным подтверждением работоспособности графического подсистемы.

Сравнение драйверов и таблица соответствия

Для наглядности приведем таблицу соответствия производителей видеокарт и типов драйверов, которые можно ожидать в системе Linux. Это поможет быстро сориентироваться в выводах консольных утилит и понять, является ли текущее состояние нормальным или требует вмешательства.

Производитель Открытый драйвер (Open Source) Проприетарный драйвер (Proprietary) Модуль ядра (Kernel Module)
NVIDIA Nouveau NVIDIA Official Driver nvidia, nouveau
AMD (Modern) Mesa (AMDGPU) Mesa (AMDGPU) - не требует установки amdgpu
AMD (Legacy) Mesa (Radeon) Legacy Catalyst (устарел) radeon
Intel (Integrated) Mesa (Intel) Нет (Intel не выпускает проприетарные драйверы для Linux) i915

Как видно из таблицы, для карт AMD и Intel ситуация отличается от NVIDIA. Современные карты AMD используют открытые драйверы amdgpu, которые встроены в ядро и не требуют отдельной установки. В то время как NVIDIA требует явного выбора между открытым nouveau и проприетарным драйвером. Понимание этой разницы позволяет избежать попыток установить драйвер там, где он уже есть или не нужен.

⚠️ Внимание: Не пытайтесь установить проприетарный драйвер для карт Intel, так как производитель официально не поддерживает их для Linux, и все необходимые модули уже включены в ядро.

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

☑️ Проверка установки драйвера

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

Типичные проблемы и методы их устранения

Частой проблемой является ситуация, когда драйвер загружен, но графический сервер не может его использовать. Это может происходить из-за конфликта версий ядра и модуля драйвера после обновления системы. В таком случае необходимо пересобрать модуль драйвера под текущее ядро или использовать утилиту dkms для автоматической пересборки.

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

Если вы используете гибридную графику (например, Intel + NVIDIA), важно правильно настроить переключение между картами. Утилиты вроде nvidia-prime или optimus-manager позволяют управлять выбором драйвера для конкретных приложений. Без правильной настройки система может использовать слабую встроенную карту для всех задач, игнорируя мощную дискретную.

В некоторых случаях проблема кроется в параметрах запуска ядра. Необходимо проверить файл /etc/default/grub на наличие правильных параметров, таких как nvidia-drm.modeset=1. Отсутствие этих параметров может привести к тому, что драйвер не будет загружаться в режиме KMS (Kernel Mode Setting), что вызовет мерцание экрана или невозможность изменить разрешение.

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

Как узнать версию установленного драйвера NVIDIA?

Для получения точной версии проприетарного драйвера NVIDIA используйте команду nvidia-smi. В верхней части вывода вы увидите строку «Driver Version», которая указывает на установленную версию. Если команда не найдена, проверьте правильность установки пакета.

Почему glxinfo показывает LLVMpipe вместо моей видеокарты?

Это означает, что система использует программный рендеринг через процессор. Обычно это происходит из-за отсутствия драйвера, неверных прав доступа к DRI-устройствам или ошибок в конфигурации Mesa. Проверьте загруженные модули ядра и права доступа в /dev/dri.

Нужно ли устанавливать драйвер для видеокарт AMD в Linux?

Для большинства современных карт AMD установка отдельного драйвера не требуется. Открытый драйвер amdgpu уже включен в ядро Linux и поддерживается проектом Mesa. Вам достаточно установить графические библиотеки, которые обычно идут в комплекте с дистрибутивом.

Можно ли использовать несколько драйверов одновременно?

Да, в системе может быть загружено несколько модулей драйверов, но активным для рендеринга будет только один. Например, для гибридной графики может быть загружен как i915, так и nvidia, но по умолчанию используется встроенная графика. Переключение осуществляется через специальные утилиты.