Определение версии установленного видеодрайвера в операционной системе Linux является фундаментальной задачей для любого системного администратора или энтузиаста. В отличие от графических интерфейсов Windows, где эта информация часто доступна в свойствах дисплея, в Linux взаимодействие с оборудованием происходит преимущественно через командную строку и специализированные утилиты.
Без точных данных о версии драйвера невозможно корректно настроить OpenGL, Vulkan или решить проблемы с совместимостью игр и профессионального программного обеспечения. Неверно определенный пакет может привести к отсутствию аппаратного ускорения, мерцанию экрана или невозможности запуска графической среды.
В этой статье мы разберем универсальные методы диагностики, а также специфические команды для владельцев карт NVIDIA и AMD. Вы научитесь отличать версию ядра модуля от версии пользовательского пространства, что критически важно при обновлении системы.
Универсальные методы диагностики через терминал
Первым шагом в любой процедуре диагностики является выяснение того, какой именно графический чип установлен в вашей системе. Это база, от которой отталкивается выбор дальнейших команд для проверки драйвера или прошивки.
Самый надежный способ получить список всех подключенных устройств PCI, включая видеоконтроллеры, — это использование утилиты lspci. Она просканирует шину данных и выведет список оборудования с подробными идентификаторами.
lspci -v | grep -i VGA
Для получения более полной информации, включая 3D-контроллеры (что актуально для современных карт NVIDIA и AMD), стоит использовать более развернутый запрос. Обратите внимание, что вывод команды может быть громоздким, поэтому фильтрация по ключевым словам обязательна.
lspci -k | grep -A 2 -i VGA
В выводе этой команды вы увидите строку Kernel driver in use (Драйвер ядра используется). Именно это поле указывает на то, какой модуль ядра (kmod) в данный момент обслуживает ваше устройство. Если вы видите там nvidia или nvidia_drm, значит проприетарный драйвер активен. В случае с AMD и Intel это будут amdgpu или i915 соответственно.
⚠️ Внимание: Если полеKernel driver in useпустое или отсутствует, это означает, что драйвер не загружен или не найден. В этом случае система работает в режиме базовых фреймбуферов (например,vesaилиllvmpipe), что делает невозможным использование аппаратного ускорения.
Иногда стандартные утилиты не выдают всей необходимой информации о версии пакета. В таких случаях помогает команда lshw, которая требует прав суперпользователя. Она отображает детальную конфигурацию оборудования в виде иерархической структуры.
sudo lshw -C display
В выводе вы найдете поле configuration, где будут перечислены параметры, включая версию драйвера (driver=nvidia, version=...). Это один из самых надежных способов, если у вас нет доступа к специализированным утилитам вендора.
Специфика проверки драйверов NVIDIA
Для владельцев видеокарт NVIDIA процесс проверки версии драйвера имеет свои особенности, так как использование открытого драйвера nouveau часто ограничивает функциональность. В большинстве случаев пользователи устанавливают проприетарный драйвер, который предоставляет мощную утилиту для мониторинга.
Ключевой командой здесь является nvidia-smi. Она выводит таблицу состояния GPU, включая температуру, загрузку памяти и, самое главное, версию драйвера в правом верхнем углу экрана.
nvidia-smi
Однако существует нюанс, который часто сбивает с толку новичков. Утилита nvidia-smi показывает версию пользовательского пространства (User Space) и версию ядра (Kernel Space). Если они не совпадают, это может указывать на проблему с обновлением или загрузкой модуля.
Для получения более детальной информации о версии конкретного загруженного модуля ядра можно использовать команду modinfo. Она покажет путь к файлу модуля, дату сборки и точную версию, включенную в пакет.
modinfo nvidia | grep version
Если вы хотите проверить версию Vulkan библиотек, которые часто вызывают конфликты при обновлении, используйте утилиту vulkaninfo. Она покажет список поддерживаемых расширений и версию реализаций драйвера.
vulkaninfo --summary | grep "API Version"
Почему nvidia-smi не запускается?
Если вы получаете ошибку "NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver", это означает, что модуль ядра не загружен. Попробуйте перезагрузиться или вручную загрузить модуль командой "modprobe nvidia".
Диагностика для карт AMD и Intel
Экосистема AMD и Intel в Linux исторически базируется на открытых драйверах, которые встроены непосредственно в ядро системы. Это означает, что версия драйвера часто синхронизирована с версией ядра Linux, хотя существуют и отдельные пакеты Mesa.
Для проверки версий Mesa, которые отвечают за реализацию API OpenGL и Vulkan, используется утилита glxinfo. Она показывает версию реализации OpenGL, версию драйвера и имя вендора.
glxinfo | grep "OpenGL version"
Более современная и удобная утилита — radeontop или clinfo для OpenCL, но для простой проверки лучше всего подходит clinfo или специализированные инструменты в пакете mesa-utils. Однако, самый точный способ узнать версию Mesa — это посмотреть версию пакета в менеджере пакетов.
В дистрибутивах на основе Debian/Ubuntu используйте:
dpkg -l | grep mesa
Для Fedora или Arch команда будет выглядеть иначе, но суть остается той же. Вы ищете пакеты, начинающиеся с mesa-. Версия этого пакета и есть версия вашего графического стека.
Важно отметить, что для карт AMD также существует утилита rocm-smi (аналог nvidia-smi), но она доступна только для профессиональных карт и специфических игровых моделей, поддерживающих ROCm.
☑️ Проверка стабильности графического стека
Использование графических интерфейсов и системных утилит
Не всем пользователям удобно работать в терминале, поэтому многие дистрибутивы предлагают графические интерфейсы для просмотра информации о системе. В среде GNOME или KDE Plasma эти данные доступны через стандартные настройки.
В GNOME достаточно открыть Настройки → О системе. Однако, эта информация часто бывает ограниченной и может не показывать точную версию драйвера, а лишь базовую модель устройства.
Более информативным инструментом является Hardinfo или neofetch. Эти программы выводят сводку о системе, включая графический контроллер и версию драйвера в удобном текстовом формате.
neofetch
Также популярна утилита lshw-gtk, которая представляет собой графическую оболочку для lshw. Она позволяет просматривать дерево устройств, выбирая графический адаптер и просматривая его свойства в удобном окне.
| Утилита | Тип | Точность версии драйвера | Сложность |
|---|---|---|---|
nvidia-smi |
CLI | Высокая (NVIDIA) | Низкая |
glxinfo |
CLI | Средняя (Mesa/OpenGL) | Средняя |
lspci -k |
CLI | Высокая (Модуль) | Низкая |
Hardinfo |
GUI | Низкая | Низкая |
⚠️ Внимание: Графические утилиты часто кэшируют информацию о системе. Если вы только что обновили драйвер, но интерфейс показывает старую версию, попробуйте перезагрузить компьютер или очистить кэш утилиты.
Решение частых проблем и конфликтов версий
Часто пользователи сталкиваются с ситуацией, когда система видит устройство, но драйвер не загружается корректно. Это может быть вызвано конфликтом версий ядра и модуля, особенно после обновления ядра Linux.
Если вы видите сообщение о том, что модуль nvidia не найден, проверьте наличие DKMS (Dynamic Kernel Module Support). Эта технология автоматически пересобирает модули драйверов при обновлении ядра, что критически важно для NVIDIA.
Для AMD проблема часто заключается в отсутствии обновленных библиотек Mesa. В старых дистрибутивах версии Mesa могут быть слишком низкими для новых карт серии Radeon RX 6000/7000 или Intel Arc.
Используйте команду lsmod | grep gpu, чтобы увидеть список всех загруженных графических модулей. Если вы видите несколько конфликтующих модулей (например, nouveau и nvidia одновременно), это верный признак ошибки конфигурации.
lsmod | grep -E "nvidia|amdgpu|i915"
В некоторых случаях требуется ручное отключение модулей, которые блокируют работу основного драйвера. Это делается через файл конфигурации modprobe.d.
Оптимизация и проверка совместимости
После того как вы проверили версию драйвера, следующим шагом часто является проверка его совместимости с конкретными задачами. Например, для рендеринга в Blender или машинного обучения (CUDA) минимальная версия драйвера строго регламентирована.
Проверьте документацию к вашему приложению. Если вам нужна версия CUDA 11.x, убедитесь, что версия драйвера nvidia-smi поддерживает эту версию CUDA. Это связано с тем, что драйвер часто поддерживает более новые версии CUDA, чем версия ядра.
Для проверки поддержки Vulkan и расширений используйте утилиту vulkaninfo с флагом --json для вывода в машиночитаемом формате, что удобно для автоматического анализа.
vulkaninfo --summary | grep "deviceType"
Не забывайте, что даже при наличии самого нового драйвера, некоторые функции могут быть отключены в ядре Linux из-за настроек конфигурации (например, nomodeset или параметры загрузки).
⚠️ Внимание: Если вы используете ноутбук с гибридной графикой (переключение между встроенной и дискретной), убедитесь, что драйвер загружается именно для той карты, которую вы проверяете. В противном случае вы можете получить информацию о встроенном GPU вместо дискретного.
В заключение, регулярная проверка версии драйвера помогает избежать внезапных сбоев и обеспечивает стабильную работу графической подсистемы. Используйте комбинацию команд lspci, nvidia-smi и glxinfo для получения полной картины.
Помните, что в мире Linux детально документированная конфигурация — это залог надежности системы. Не ленитесь проверять версии перед установкой критического программного обеспечения.
Часто задаваемые вопросы (FAQ)
Как узнать версию драйвера в Ubuntu без терминала?
В Ubuntu можно использовать программу "Системный монитор" или установить утилиту Hardinfo через магазин приложений. Однако, наиболее точная информация доступна в терминале.
Почему nvidia-smi показывает старую версию?
Если команда показывает старую версию, возможно, драйвер обновился, но модуль ядра еще не загружен. Перезагрузка системы обычно решает эту проблему и загружает новый модуль.
Как проверить версию драйвера Mesa?
Используйте команду glxinfo | grep "OpenGL version". Вы увидите строку, где указана версия OpenGL и имя драйвера (например, "Mesa 21.0.3").
Что делать, если драйвер не загружается после обновления ядра?
Вам нужно переустановить драйвер или убедиться, что пакет DKMS установлен и работает корректно. Для NVIDIA это часто решается командой sudo apt install --reinstall nvidia-driver-xxx.
Можно ли проверить версию драйвера в BIOS?
Нет, BIOS/UEFI не хранит информацию о драйверах операционной системы. Он может показать только версию VBIOS (прошивки самой видеокарты), но не драйвер ОС.