Как узнать, какой драйвер видеокарты используется в Linux

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

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

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

Командная строка как основной инструмент диагностики

Терминал в Linux — это самый быстрый способ получить информацию о системе, обходя графические интерфейсы, которые сами могут работать некорректно. Первым делом стоит обратиться к утилите lspci, которая выводит список всех PCI-устройств. Именно через этот интерфейс подключены практически все современные видеокарты, будь то модели от NVIDIA, AMD или Intel.

Для получения списка видеокарт выполните команду lspci | grep -i vga или более расширенную lspci | grep -i 3d. В выводе вы увидите производителя и модель вашего устройства. Однако сама по себе эта команда не скажет, какой именно драйвер загружен, она лишь подтвердит наличие оборудования. Чтобы узнать имя драйвера, используется флаг -k, который показывает текущий используемый модуль ядра.

lspci -k | grep -A 2 -i vga

В полученном выводе обратите внимание на строку Kernel driver in use. Именно это поле содержит название модуля, который активно обрабатывает графику. Для карт NVIDIA это может быть nvidia или nvidia-modeset, а для AMD часто встречаются amdgpu или radeon. Если вы видите llvmpipe, значит, система использует программный рендеринг через CPU, что свидетельствует об отсутствии или неработоспособности драйвера видеокарты.

⚠️ Внимание: Если в строке "Kernel driver in use" пусто или указан драйвер nouvea для новой карты NVIDIA, это может означать, что проприетарный драйвер не установлен или заблокирован. Драйвер nouveau является открытым, но часто не обеспечивает достаточной производительности для современных задач.

Анализ загруженных модулей ядра

Второй, не менее важный метод, заключается в просмотре списка всех загруженных модулей ядра с помощью утилиты lsmod. Этот список отображает все активные компоненты системы, включая сетевые драйверы, файловые системы и, конечно, видеодрайверы. Команда lsmod | grep -E "nvidia|amdgpu|radeon|i915" позволит отфильтровать только те модули, которые относятся к вашему оборудованию.

Результат выполнения покажет не только имя модуля, но и количество ссылок на него, что говорит о том, насколько глубоко он интегрирован в текущую сессию. Например, для карт NVIDIA вы можете увидеть цепочку: nvidia, nvidia_uvm, nvidia_drm. Наличие этих модулей подтверждает, что проприетарный драйвер успешно загружен и готов к работе.

Следует учитывать, что некоторые дистрибутивы могут использовать специфические названия модулей для старых или редких чипов. Для карт AMD более старые модели могут использовать модуль radeon, в то время как современные серии Radeon RX требуют драйвера amdgpu. Проверка версии модуля через команду modinfo даст более детальную информацию о версии драйвера и его авторе.

modinfo nvidia | grep -i version

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

📊 Какой драйвер вы используете чаще всего?
NVIDIA Proprietary
AMD (Mesa/Open Source)
Intel Graphics
Настраиваю сам

Использование утилит OpenGL и Vulkan

Наиболее точный способ узнать, какой драйвер используется, — спросить у системы, через какой API она рендерит графику. Для этого существуют специализированные утилиты, такие как glxinfo и glxgears, которые являются частью пакета mesa-utils. Эти инструменты запрашивают информацию непосредственно у графического контекста, что исключает ошибки в определении, если система использует программную эмуляцию.

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

Для более современных систем, работающих с API Vulkan, используется утилита vulkaninfo. Она покажет список устройств, доступных для Vulkan, и их драйверы. Вывод будет выглядеть примерно так: NVIDIA GeForce RTX 3080 с драйвером NVIDIA или AMD Radeon RX 6800 с драйвером Mesa. Это отличный способ проверить совместимость с современными играми и приложениями.

Проверка через графические интерфейсы

Если вы не любите работать с командной строкой, большинство современных дистрибутивов Linux предоставляют графические утилиты для управления драйверами. В Ubuntu и его производных нужно перейти в Настройки → Дополнительные драйверы (Additional Drivers). Здесь система просканирует оборудование и покажет доступные версии драйверов, отметив галочкой тот, который сейчас используется.

В дистрибутивах на базе Fedora или OpenSUSE могут использоваться другие инструменты, такие как dnf или YaST, но принцип остается тем же: графический интерфейс сканирует список оборудования и сопоставляет его с установленными пакетами. Для карт NVIDIA часто устанавливается отдельный трэй (трей), который показывает версию драйвера в системном лотке.

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

⚠️ Внимание: Графические утилиты могут не отображать информацию о драйвере, если графическая сессия работает в режиме совместимости (например, Wayland vs X11) или если драйвер заблокирован модульной подписью ядра (Secure Boot).
Различия между X11 и Wayland

При использовании сервера X11 (Xorg) и утилиты glxinfo вы увидите информацию о рендерере. В среде Wayland некоторые утилиты могут не работать корректно без флагов, так как протокол доступа к GPU отличается. Используйте вейк-команды, такие как glxinfo -B, чтобы получить краткий вывод без ошибок.

Сравнение драйверов для разных производителей

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

У AMD ситуация проще: практически все современные карты работают на открытом драйвере amdgpu, который вшит в ядро Linux. Однако для поддержки новейших функций и API (например, Vulkan или ray-tracing) может потребоваться установка последних версий Mesa и пользовательского пространства (user-space drivers). Совместимость с Mesa здесь играет ключевую роль.

Для карт Intel (встроенная графика) драйверы всегда открытые и встроены в ядро. Обычно это модуль i915 или более новый xe для новейших процессоров. В этом случае пользователю редко приходится что-то настраивать вручную, так как драйверы Intel работают "из коробки" с отличной стабильностью.

Производитель Открытый драйвер (Ядро) Проприетарный драйвер Стандартный API
NVIDIA nouveau (ограничен) nvidia (полная поддержка) CUDA, OpenGL, Vulkan
AMD amdgpu / radeon N/A (используется Mesa) Vulkan, OpenGL
Intel i915 / xe N/A Vulkan, OpenGL

Решение проблем с некорректным определением

Иногда система может "думать", что использует один драйвер, а на самом деле это не так. Это часто происходит в двойных конфигурациях (например, NVIDIA Optimus в ноутбуках), где есть встроенная карта Intel и дискретная NVIDIA. В таких случаях важно проверять, какая именно карта активна в текущий момент. Утилита prime-select (для Ubuntu) или nvidia-smi помогут переключить режим работы.

Если вы видите, что драйвер не загружается, проверьте журнал загрузки ядра с помощью команды dmesg | grep -i vga или dmesg | grep -i nvidia. Лог покажет ошибки инициализации, которые могли помешать загрузке модуля. Частой причиной является конфликт версий ядра и драйвера после обновления системы.

dmesg | grep -i "NVRM"

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

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

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

Заключение и рекомендации

Определение используемого драйвера видеокарты в Linux — это рутинная, но критически важная процедура для любого пользователя, работающего с графикой. Используя комбинацию команд lspci, lsmod и glxinfo, вы можете точно установить состояние вашей системы. Контроль версий драйверов позволяет избежать проблем с производительностью и совместимостью в современных приложениях.

Помните, что для карт NVIDIA выбор между открытым и проприетарным драйвером часто определяет успех в играх и задачах рендеринга. Для AMD и Intel достаточно следить за обновлениями Mesa и ядра. Постоянный мониторинг системы поможет вам поддерживать её в оптимальном состоянии.

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

⚠️ Внимание: При обновлении ядра Linux (kernel update) проприетарные драйверы, такие как nvidia, могут перестать загружаться, если они не были пересобраны автоматически. Всегда проверяйте работу драйвера после обновления ядра, используя команды lsmod или nvidia-smi.

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

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

Самый простой способ — использовать утилиту nvidia-smi. В выведите на первой строке будет указан номер версии драйвера. Также можно использовать команду modinfo nvidia | grep version.

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

Это означает, что драйвер видеокарты не загружен или не работает. Система переключилась на программный рендеринг через процессор. Необходимо проверить загрузку модулей через lsmod и установить необходимые драйверы.

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

Однако система может загружать модули для разных карт (например, intel для встроенной графики и nvidia для дискретной). Но для одного и того же устройства в один момент времени активен только один драйвер.

Как проверить, работает ли Vulkan?

Установите утилиту vulkaninfo или vulkaninfo и запустите её. Если вывод показывает информацию о вашей видеокарте и поддерживаемых слоях, значит драйвер работает корректно.

Нужен ли драйвер для встроенной графики Intel?

Нет, драйверы для Intel встроены в ядро Linux (модуль i915 или xe). Вам не нужно ничего устанавливать вручную, достаточно обновлять ядро и пакет Mesa для новых функций.