Проверка версии драйвера NVIDIA в Linux: полное руководство

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

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

Использование утилиты nvidia-smi

Самый быстрый и распространенный способ получить информацию — это использование утилиты nvidia-smi. Эта программа входит в состав пакета драйверов и предоставляет детальную информацию о состоянии видеокарты. Запуск происходит в терминале и возвращает структурированные данные сразу после выполнения команды.

Для проверки введите команду

nvidia-smi
. В первой строке таблицы, которая появится в выводе, будет указана версия драйвера и версия CUDA. Обратите внимание, что это номер версии именно драйверного модуля, а не версии приложения CUDA Toolkit, хотя они часто идут в комплекте.

⚠️ Внимание: Утилита nvidia-smi может не отобразить информацию, если драйвер не загружен или если система работает в режиме open-source (Nouveau). В таком случае вы получите сообщение об ошибке "NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver".

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

📊 Какой метод проверки версии вы используете чаще?
Команда nvidia-smi
Утилита NVIDIA Settings
Проверка через dmesg
Не знаю как проверять

Анализ данных через NVIDIA Settings GUI

Если вы работаете в графической оболочке, визуальный метод может быть более понятным. Утилита NVIDIA X Server Settings (часто называемая nvidia-settings) предоставляет графический интерфейс для мониторинга параметров. Этот способ удобен, когда терминал не вызывает доверия или требуется детальный просмотр параметров без синтаксического анализа текста.

Для запуска откройте меню приложений и введите nvidia-settings в строке поиска. После запуска окна перейдите на вкладку Information или Summary. Здесь в поле Driver Version будет четко прописан номер версии установленного модуля.

Интерфейс также позволяет увидеть текущую версию OpenGL и CUDA, которые поддерживаются драйвером. Это полезно для проверки совместимости с конкретным программным обеспечением для 3D-моделирования. Однако стоит помнить, что графическая утилита может быть недоступна, если сервер X11 или Wayland не запущен.

Проверка через параметры ядра и модули

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

Выполните команду

cat /proc/driver/nvidia/version
. Этот файл содержит уникальную информацию о версии ядра, для которого был скомпилирован драйвер, и его собственный номер. Это особенно важно при отладке проблем с обновлением Linux, когда модуль мог не пересобираться автоматически.

Также можно использовать команду modinfo для получения информации о самом модуле nvidia.ko. Вывод команды

modinfo nvidia | grep version
покажет версию модуля, встроенную в ядро. Это фундаментальный метод, который не зависит от сервисов управления драйверами.

Что делать, если модуль не загружен?

Если команды nvidia-smi и чтение /proc не работают, проверьте, загружен ли модуль командой lsmod | grep nvidia. Если вывод пуст, значит, драйвер не активен или возник конфликт с ядром.

Использование системных утилит и логов

Иногда драйвер не загружается, и стандартные утилиты отказываются работать. В этом случае на помощь приходят системные логи. Файл /var/log/Xorg.0.log хранит историю запуска графического сервера, где часто содержится информация об инициализации драйвера.

Для поиска версии в логе используйте команду

grep -i "NVIDIA" /var/log/Xorg.0.log | grep -i "version"
. Это отфильтрует строки, содержащие упоминание версии драйвера в момент старта. Это полезно при диагностике проблем с загрузкой графической оболочки.

Важно различать версию драйвера, которую вы видите в менеджере пакетов, и версию, которая реально работает. В дистрибутивах с собственными репозиториями пакет может называться nvidia-driver-550, но в системе может быть загружен модуль другой версии из-за конфликтов обновлений.

Сравнение методов проверки

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

Метод Требования Точность Особенности
nvidia-smi Работающий драйвер Высокая Показывает версию CUDA и состояние GPU
nvidia-settings Графический интерфейс Высокая Удобный визуальный интерфейс
/proc/driver/nvidia/version Доступ к файлам Максимальная Показывает версию ядра и модуля
dpkg/rpm Права администратора Средняя Показывает установленный пакет, не всегда загруженный модуль
⚠️ Внимание: В современных дистрибутивах Linux (например, Fedora или Arch) версии драйверов могут обновляться еженедельно. Убедитесь, что данные в системных логах соответствуют текущей сессии, а не остаткам от предыдущей загрузки.

☑️ Алгоритм проверки версии

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

Особенности работы в различных дистрибутивах

Поведение драйверов NVIDIA может различаться в зависимости от того, какой дистрибутив вы используете. В Ubuntu и Mint драйверы часто устанавливаются через центр приложений, что скрывает детали от пользователя. В то время как в Arch Linux или Gentoo сборка происходит вручную из исходников или через AUR.

В дистрибутивах с динамическими модулями ядра, таких как Fedora, версия драйвера может быть привязана к конкретной версии ядра. Если вы обновили ядро, но не пересобрали драйвер, утилита nvidia-smi может показать ошибку, хотя пакет драйвера установлен. В этом случае необходимо проверить версию загруженного модуля через modinfo.

Для пользователей систем с Wayland (например, новые версии Ubuntu или KDE Plasma) работа драйверов имеет свои нюансы. Старые версии драйверов могут не поддерживать Wayland корректно, что приведет к некорректному отображению информации в графических утилитах. В таких случаях всегда проверяйте версию через консольные команды nvidia-smi.

Некоторые дистрибутивы предлагают обезличенные (open-source) драйверы Nouveau по умолчанию. Они не поддерживают все функции карт NVIDIA и не предоставляют доступа к утилите nvidia-smi. Чтобы увидеть версию проприетарного драйвера, его необходимо установить вручную или через репозитории производителя.

Чем отличается Nouveau от проприетарного драйвера?

Драйвер Nouveau — это бесплатный проект с открытым кодом. Он работает на большинстве карт, но не поддерживает аппаратное ускорение видео, разгон и точную диагностику температуры, доступную в драйверах NVIDIA.

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

Иногда при попытке узнать версию драйвера пользователи сталкиваются с ошибками. Одна из самых частых проблем — сообщение "command not found". Это означает, что пакет с утилитами управления не установлен, даже если сам драйвер загружен. В этом случае необходимо установить пакеты nvidia-utils или nvidia-driver-utils.

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

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

⚠️ Внимание: Если вы используете Laptop Mode или переключатель графики (Optimus), убедитесь, что вы проверяете драйвер именно на дискретной карте. В некоторых случаях утилита может показывать данные встроенной графики, если переключение не настроено корректно.

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

Почему nvidia-smi показывает старую версию драйвера?

Это может произойти, если драйвер не был обновлен после установки нового пакета. Попробуйте перезагрузить систему, чтобы загрузить новый модуль ядра, или используйте команду sudo modprobe -r nvidia для удаления старого модуля вручную перед перезагрузкой.

Как проверить версию драйвера без прав root?

Практически все команды проверки (nvidia-smi, чтение /proc) доступны обычным пользователям. Вам не требуются права суперпользователя для просмотра информации о версии, только для установки или удаления драйверов.

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

Да, это возможно. Используйте команду cat /proc/driver/nvidia/version или modinfo nvidia. Эти методы работают на серверах и в режиме восстановления, где графический сервер не запущен.

Что означает версия CUDA в выводе nvidia-smi?

Это версия API, который поддерживается установленным драйвером. Это не версия программного обеспечения CUDA Toolkit, установленного в системе, а максимальная версия, с которой может работать текущий драйвер для компиляции и запуска задач на GPU.

Почему в разных утилитах разные номера версий?

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