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

Работа с графическим ускорителем в операционной системе Linux требует четкого понимания того, какое программное обеспечение управляет железом. В отличие от Windows, где драйверы часто устанавливаются "коробочным" решением, в дистрибутивах на базе ядра Linux взаимодействие с видеокартой может быть реализовано несколькими способами: открытыми модулями ядра, проприетарными драйверами производителя или встроенными средствами Mesa.

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

Базовая диагностика через утилиту lspci

Самым универсальным инструментом для обнаружения любого оборудования в системе является команда lspci. Она позволяет получить список всех подключенных устройств, подключенных к шине PCI Express. Для проверки видеокарты необходимо ввести команду с фильтром по ключевому слову VGA или 3D, чтобы отсечь лишние данные.

lspci | grep -i vga

Этот запрос покажет модель вашего графического адаптера, например, NVIDIA Corporation Device 1b80 или Intel Corporation UHD Graphics 630. Однако важно понимать, что lspci сообщает только о наличии самого устройства, но не о том, какой именно драйвер его обслуживает. Для получения полной информации о загруженном модуле нужно добавить флаг -k.

lspci -k | grep -A 2 -i vga

В выводе этой команды вы увидите строку Kernel driver in use. Это именно то, что вам нужно. Если здесь написано nvidia — проприетарный драйвер активен. Если i915 — работает открытый модуль для Intel. Отсутствие этой строки или указание Kernel modules без активного использования может сигнализировать о проблеме с загрузкой модуля.

⚠️ Внимание: Если вы видите в выводе только список модулей (Kernel modules), но нет строки Kernel driver in use, это означает, что система обнаружила карту, но не может или не хочет загрузить драйвер. Это частая проблема при конфликте версий ядра.
📊 Какой тип видеокарты установлен в вашем ПК?
NVIDIA
AMD
Intel integrated
Встроенная графика ноутбука

Поиск драйверов проприетарного типа NVIDIA

Для владельцев графических ускорителей NVIDIA ситуация сложнее, так как они используют закрытый проприетарный драйвер, который часто конфликтует с открытым драйвером Nouveau. Убедиться в корректности установки можно с помощью утилиты nvidia-smi, которая входит в пакет драйверов. Это стандартный инструмент мониторинга, доступный по умолчанию после успешной установки.

nvidia-smi

Если команда выполняется успешно, вы увидите таблицу со списком процессов, температурой, загрузкой GPU и, самое главное, версией драйвера в правом верхнем углу. Строка Driver Version покажет точную цифру, например, 535.104.05. Отсутствие такой таблицы или сообщение command not found говорит о том, что проприетарный драйвер не установлен или не загружен.

В некоторых случаях, особенно на ноутбуках с гибридной графикой, может потребоваться переключение между режимами. Для этого существуют утилиты вроде nvidia-settings. Запустив её, вы сможете увидеть детальную информацию о текущем режиме работы: On-Demand или Performance, что критично для управления энергопотреблением.

⚠️ Внимание: Утилита nvidia-smi может не работать, если установлен только открытый драйвер Nouveau. В этом случае система будет использовать базовые возможности вывода, но не сможет задействовать мощности видеокарты для вычислений.

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

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

Определение драйверов для AMD и Intel

Графические ускорители AMD и Intel в современной экосистеме Linux практически всегда используют открытые драйверы, интегрированные непосредственно в ядро системы. Для AMD это драйверы amdgpu (для современных карт) или radeon (для старых моделей), а для Intel — модуль i915 или его наследник xe.

Проверка через lspci -k здесь работает идеально. Если вы видите Kernel driver in use: amdgpu, значит, система использует современный стек. Для получения более детальной информации о поддержке функций можно использовать утилиту glxinfo, которая покажет версию OpenGL и драйвера Mesa.

glxinfo | grep "OpenGL version"

Эта команда покажет строку, содержащую название драйвера и версию API. Например: OpenGL version string: 4.6 (Compatibility Profile) Mesa 23.2.1. Наличие Mesa в названии подтверждает использование открытого драйвера. Для карт AMD также полезно проверить наличие пакета libgl1-mesa-dri, который содержит необходимые библиотеки для работы.

Важно отметить, что для новых архитектур AMD (серии RDNA) критична поддержка ядра. Если вы используете старый дистрибутив, вам, возможно, придется обновить ядро, чтобы получить полноценную поддержку через драйвер amdgpu. Без этого карта может работать, но без аппаратного ускорения видео или в низком разрешении.

Что такое Mesa и зачем она нужна?

Mesa — это реализация графических API (OpenGL, Vulkan, OpenCL) с открытым исходным кодом. В Linux она выступает посредником между приложениями и драйверами видеокарты. Без Mesa графические приложения не смогут работать, даже если драйвер железа загружен правильно.

Использование графических утилит мониторинга

Если работа с терминалом кажется слишком сложной, большинство дистрибутивов предоставляют графические инструменты для мониторинга. Утилита HardInfo или neofetch часто показывают модель GPU и версию драйвера в удобном текстовом виде. Однако для профессиональной диагностики лучше использовать GPU Viewer или настройки системы.

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

Для пользователей окружения GNOME или KDE существуют специализированные виджеты, например, GNOME System Monitor, который может показывать загрузку GPU, но редко указывает точную версию драйвера. Поэтому сочетание графического интерфейса и консольных команд остается золотым стандартом диагностики.

Сравнение версий драйверов и доступных опций

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

Производитель Основные драйверы Команда проверки версии Примечание
NVIDIA nvidia (проприетарный), nouveau nvidia-smi Требует установки пакета драйверов
AMD amdgpu, radeon lspci -k Интегрирован в ядро, Mesa обновляет API
Intel i915, xe lspci -k Работает "из коробки" в большинстве случаев
VIA/S3 openchrome glxinfo Редкие карты, специфичная поддержка

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

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

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

Иногда система сообщает об установке драйвера, но он не загружается. В этом случае необходимо проверить логи ядра. Команда dmesg | grep -i drm покажет сообщения ядра, связанные с графической подсистемой. Ошибки, начинающиеся с [drm], часто указывают на проблемы с загрузкой модуля.

Если вы видите сообщения о невозможности найти модуль, возможно, модуль заблокирован Secure Boot. В этом случае потребуется отключить безопасную загрузку в BIOS или подписать модуль драйвера собственным ключом. Это сложная процедура, требующая глубоких знаний о системе безопасности Linux.

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

⚠️ Внимание: Изменение параметров загрузки ядра (например, добавление nomodeset) может временно решить проблему с загрузкой, но отключит аппаратное ускорение. Используйте это только как временную меру для доступа к системе.

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

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

Попробуйте выполнить команду nvidia-smi. Если она возвращает таблицу с информацией о GPU и версии драйвера, значит, проприетарный драйвер установлен и активен. Если команда не найдена или выдает ошибку, скорее всего, используется драйвер Nouveau.

Можно ли узнать версию драйвера через графический интерфейс?

Да, в большинстве дистрибутивов это можно сделать в разделе "Дополнительные драйверы" (Additional Drivers) или в настройках системы. Однако точную версию, как правило, проще узнать через терминал с помощью команды glxinfo или nvidia-smi.

Почему lspci показывает драйвер, но он не работает?

Это может быть связано с конфликтом версий ядра, блокировкой через Secure Boot или отсутствием необходимых модулей. Проверьте логи dmesg на наличие ошибок загрузки модуля drm.

Какое ядро лучше для работы с драйверами AMD?

Для современных карт AMD рекомендуется использовать ядра версии 5.15 и выше, так как они содержат стабильный драйвер amdgpu с полной поддержкой архитектуры RDNA. На старых ядрах поддержка может быть ограничена.

Нужно ли вручную обновлять драйверы Intel в Linux?

Обычно нет. Драйверы Intel обновляются вместе с ядром Linux. Для обновления версий Mesa (которые предоставляют API OpenGL/Vulkan) достаточно обновить пакеты из репозиториев вашего дистрибутива.