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

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

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

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

Понимание архитектуры драйверов AMD в Linux

Прежде чем вводить команды, важно осознать, что в Linux нет понятия"драйвер видеокарты" в привычном понимании. Вы управляете двумя основными слоями: модулем ядра и библиотеками Mesa. Модуль ядра, часто называемый AMDGPU, отвечает за низкоуровневое взаимодействие с железом и управление памятью.

Библиотеки Mesa, в свою очередь, реализуют OpenGL, Vulkan и OpenCL API. Именно версии Mesa определяют, какие современные функции рендеринга доступны вашим приложениям и играм. Часто пользователи обновляют ядро, но забывают обновить пакеты Mesa, что приводит к отсутствию поддержки новых стандартов графики даже на свежем оборудовании.

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

⚠️ Внимание: Использование устаревших версий Mesa на новейших картах серии RDNA 3 может привести к артефактам изображения или полному отказу работы 3D-ускорения, даже если модуль ядра.latest.

Проверка версии через утилиту lspci

Самый базовый способ получить информацию об оборудовании — использовать команду lspci. Она показывает список всех устройств PCI, подключенных к системе, включая видеоадаптеры. Эта утилита присутствует в любом дистрибутиве и не требует дополнительной установки. Она полезна, чтобы убедиться, что система вообще видит вашу видеокарту.

Для вывода подробной информации о графическом адаптере используйте флаг -v или -vv. Команда lspci -v покажет базовые данные, но часто не содержит конкретной версии драйвера, который загружен в текущий момент. Однако, в строке Kernel Driver в окне вывода вы увидите имя модуля, который активен.

Чтобы отфильтровать только видеокарты, добавьте фильтр -k для просмотра задействованных драйверов. Это позволит вам мгновенно понять, используется ли модуль amdgpu или устаревший radeon. Для карт серии Radeon RX обычно используется именно первый вариант.

lspci -k | grep -A 3 -i vga

В выводе вы увидите строку"Kernel driver in use: amdgpu". Это подтверждает, что система использует современный драйвер. Однако сам по себе lspci не покажет номер версии драйвера (например, 23.2.1), он лишь подтверждает наличие модуля. Для получения цифр версии нужно переходить к более специализированным инструментам.

📊 Какой дистрибутив Linux вы используете чаще всего?
Ubuntu/Debian
Arch Linux/Manjaro
Fedora/openSUSE
CentOS/RHEL
Linux Mint

Получение деталей через утилиту glxinfo

Утилита glxinfo является стандартом для проверки поддержки OpenGL и версии драйвера Mesa. Она входит в пакет mesa-utils, который часто не установлен по умолчанию на минимальных системах. Если команда не найдена, ее необходимо установить через системный менеджер пакетов, например, sudo apt install mesa-utils для Debian-подобных систем.

После установки выполните команду glxinfo | grep"OpenGL version". Эта команда выведет строку с версией OpenGL и полным названием драйвера. Обратите внимание на формат вывода: часто он выглядит как"3.0 Mesa 23.2.1". Цифры после слова Mesa и являются версией пользовательского компонента драйвера.

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

☑️ Проверка статуса драйвера через glxinfo

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

Точная диагностика через amdgpu-info

Если вам нужна информация именно о состоянии модуля ядра amdgpu, используйте утилиту amdgpu-info. Это мощнейший инструмент, который предоставляет данные о температуре, частотах, версии прошивки (VBIOS) и версии самого драйвера ядра. Он требует прав суперпользователя, поэтому запускается с префиксом sudo.

Выполните команду sudo amdgpu-info в терминале. Вывод будет разбит на секции. Ищите блок"Driver version" или"Kernel driver version". Здесь вы увидите точную версию, которая зависит от вашего ядра Linux. Часто эта версия совпадает с номером сборки ядра, если драйвер встроен в него.

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

Почему amdgpu-info требует sudo?

Утилита обращается к системным файлам в /sys/class/drm, которые имеют ограниченные права доступа для обычных пользователей. Для чтения версий драйвера и информации о памяти необходимо elevated privileges.

Использование radeon-info для старых карт

Для пользователей старшего поколения карт Radeon (серии GCN до RDNA) может потребоваться утилита radeon-info. Она аналогична amdgpu-info, но работает с модулем radeon. Современные карты (RX 5000 и новее) не поддерживают этот драйвер, поэтому если у вас новее 2019 года выпуска, эта команда может не сработать или вернуть ошибку.

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

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

Сравнение версий в зависимости от дистрибутива

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

Дистрибутив Тип репозитория Ожидаемая версия Mesa Комментарий
Arch Linux Rolling Release Самая новая (24.x+) Обновляется сразу после релиза
Ubuntu LTS Stable Стабильная (22.x - 23.x) Медленные обновления, требуется PPA
Fedora Workstation Bleeding Edge Близко к новой (23.x - 24.x) Хороший баланс стабильности и свежести
Debian Stable Very Stable Старая (21.x - 22.x) Рекомендуется для серверов, не для игр

Если вы используете дистрибутив с фиксированным релизом, например, Debian Stable или Ubuntu LTS, версия драйвера может быть отставать от актуальной на несколько лет. В таких случаях пользователи часто добавляют сторонние репозитории, такие как Oibaf PPA или Kisak PPA, чтобы получить более свежие версии Mesa.

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

⚠️ Внимание: Использование сторонних репозиториев (PPA) для обновлений драйвера может привести к конфликтам библиотек. Перед обновлением создайте точку восстановления или резервную копию важных данных.

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

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

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

Специализированные утилиты, такие как HardInfo или Neofetch, также могут выводить эту информацию. neofetch — популярный инструмент для терминала, который красиво оформляет информацию о системе, включая версию драйвера. Однако он также зависит от наличия установленных утилит в системе.

neofetch

Вывод neofetch покажет строку"GPU" с названием карты и часто версию драйвера рядом. Это отличный способ быстро получить сводку для поста на форуме. Если вы видите там только название карты без версии, значит, утилита не может получить доступ к данным о драйвере без дополнительных прав.

⚠️ Внимание: Графические утилиты могут не обновлять информацию в реальном времени. Если вы только что обновили ядро, перезагрузите систему перед проверкой, иначе данные могут быть устаревшими.

Решение при проверке версий

Иногда при выполнении команд вы можете получить ошибки доступа или пустой вывод. Это часто происходит, если модуль драйвера не загружен. Проверьте это командой lsmod | grep amdgpu. Если вывод пуст, значит, драйвер не активен, и система, вероятно, использует базовый драйвер DRM или Nouveau (для NVIDIA, но принцип тот же).

Другая частая проблема — несоответствие версий ядра и модулей. Если вы обновили ядро вручную, но не собрали модули заново, драйвер может не загрузиться. В этом случае посмотрите логи ядра через dmesg | grep -i amdgpu для поиска ошибок инициализации.

Если вы используете гибридную графику (например, AMD + NVIDIA), система может по умолчанию загружать драйвер NVIDIA. В этом случае проверьте, какой драйвер используется для конкретного приложения, используя переменную окружения GALLIUM_DRIVER или NVIDIA.

Как сменить драйвер по умолчанию?

Иногда система может загружать не тот драйвер. В файле /etc/modprobe.d можно создать конфигурационный файл, чтобы блокировать загрузку ненужных модулей и принудительно загружать нужный драйвер при старте системы.

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

Определение версии драйвера в Linux — это процесс, требующий понимания разницы между модулем ядра и библиотеками Mesa. Использование комбинации команд glxinfo, amdgpu-info и lspci дает наиболее полную картину. Это позволяет точно диагностировать проблемы совместимости и оптимизировать работу системы.

Для большинства пользователей достаточно использовать glxinfo для проверки версий OpenGL и Vulkan. Если вы занимаетесь низкоуровневой разработкой или настройкой производительности, обязательно проверяйте версию ядра через amdgpu-info. Не забывайте, что актуальность информации зависит от версии вашего дистрибутива.

Самый надежный способ узнать точную версию — это выполнить команду glxinfo | grep"OpenGL version" в терминале, так как она показывает именно ту версию Mesa, которая используется при рендеринге прямо сейчас. Регулярная проверка этих данных поможет вам вовремя обновлять систему и избегать проблем с производительностью в играх и профессиональных приложениях.

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

В Ubuntu 22.04 используйте команду glxinfo | grep"OpenGL version". Если драйвер не установлен, система может использовать базовый драйвер. Для получения более свежих версий рекомендуется добавить PPA Oibaf или Kisak.

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

Это может означать, что пакет mesa-utils не обновлялся или вы используете старый дистрибутив. Проверьте наличие обновлений через менеджер пакетов или добавьте более свежий репозиторий.

В чем разница между версиями драйвера ядра и Mesa?

Версия драйвера ядра (Kernel) отвечает за управление железом и низкоуровневые операции. Версия Mesa отвечает за API (OpenGL, Vulkan) и рендеринг в пользовательском пространстве. Both must be updated for optimal performance.

Нужно ли перезагружать систему после обновления драйвера?

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

Как проверить версию драйвера в Arch Linux?

В Arch Linux используйте команду pacman -Q mesa для проверки установленной версии. Также можно использовать glxinfo для получения информации о версии в контексте OpenGL.