Как проверить видеокарту в Linux: полное руководство

Введение в диагностику GPU под управлением Linux

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

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

Базовая информация о подключенном оборудовании

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

Чтобы отфильтровать длинный список устройств и найти именно видеокарту, используйте фильтр -k (показать ядро, управляющее устройством) и -v (подробный вывод). Это покажет не только модель, но и то, какой драйвер Linux использует для работы с GPU.

lspci -vv | grep -i vga

В выводе вы увидите строку, содержащую название производителя (например, NVIDIA, AMD или Intel) и модель чипа. Важным параметром здесь является статус драйвера. Если после названия устройства указано "Kernel driver in use: nouveau" или "amdgpu", значит система загрузила нужный модуль. Отсутствие такой строки часто указывает на проблему с установкой проприетарных драйверов.

Иногда система может видеть карту, но не загружать для неё драйвер по умолчанию. В таких случаях в строке вывода вы увидите только "Kernel modules: nouveau", но не "Kernel driver in use". Это сигнал к тому, что необходимо вручную перенастроить параметры загрузки ядра или установить пакет драйверов через менеджер пакетов.

Мониторинг температуры и состояния в реальном времени

После идентификации оборудования необходимо убедиться, что система охлаждения работает корректно. Перегрев видеокарты — одна из самых частых причин нестабильности работы. В отличие от Windows, где используются сторонние программы вроде MSI Afterburner, в Linux для этих целей чаще всего используется утилита nvtop для карт NVIDIA или radeontop для карт AMD.

Утилита nvtop является аналогом популярного htop, но специализируется на видеокартах. Она показывает графики нагрузки, температуру, использование видеопамяти и список процессов, потребляющих ресурсы GPU. Для установки в большинстве дистрибутивов достаточно выполнить sudo apt install nvtop или использовать dnf для Fedora.

Для карт AMD и Intel отличным решением будет утилита radeontop или более современная rocm-smi. Эти инструменты позволяют отслеживать тактовую частоту и температуру ядра без необходимости графического интерфейса. Если утилита не показывает данные, убедитесь, что у вас установлен пакет с открытыми драйверами и ядро поддерживает чтение сенсоров.

⚠️ Внимание: Некоторые видеокарты требуют установки дополнительных драйверов для корректного отображения температуры в Linux. Без этого вы увидите значение "N/A" или 0 градусов.

Если вы используете карты NVIDIA, убедитесь, что установлен пакет nvidia-smi, который входит в состав проприетарных драйверов. Это стандартный инструмент для мониторинга, доступный по умолчанию после установки драйверов. Команда nvidia-smi выводит таблицу с текущим состоянием всех установленных GPU.

📊 Какую видеокарту вы используете?
NVIDIA
AMD
Intel
Служебная карта
Утилита Поддержка GPU Основные функции
nvidia-smi NVIDIA Мониторинг, управление вентиляторами, проверка памяти
radeontop AMD Анализ нагрузки на ядра, просадки частот
nvtop NVIDIA, Intel, AMD Визуализация нагрузки, список процессов
lspci Все Идентификация оборудования, проверка драйверов

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

Запуск стресс-тестов и проверка стабильности

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

Одним из самых популярных инструментов является glmark2. Это кроссплатформенный бенчмарк OpenGL, который нагружает GPU в 3D-сцене. Установка осуществляется стандартным способом: sudo apt install glmark2. Запуск команды glmark2 --fullscreen сразу же начнет тестирование производительности.

glmark2 --fullscreen --window-size 1920,1080

Для более глубокой проверки, особенно если вы подозреваете проблемы с памятью GPU, существует утилита clinfo или специализированные тесты OpenCL. Они нагружают вычислительные ядра, а не только графические, что позволяет проверить вычислительную мощность карты. Если карта поддерживает CUDA (у NVIDIA), можно использовать cuda-memcheck для поиска ошибок в памяти.

☑️ Подготовка к стресс-тесту

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

Если во время теста glmark2 вы увидите артефакты на экране (визуальные искажения) или система полностью зависнет, это верный признак неисправности GPU или драйверов.

⚠️ Внимание: Некоторые утилиты для стресс-тестов могут вызывать троттлинг (снижение частоты) при достижении критической температуры. Если тест останавливается раньше времени, проверьте систему охлаждения.

Для оценки производительности в задачах принятия решений (AI) или рендеринга часто используются специализированные скрипты, написанные на Python с использованием библиотек PyTorch или TensorFlow. Они создают реальную нагрузку, имитируя рабочую нагрузку пользователя, и позволяют проверить, удерживает ли карта заявленные частоты под длительной нагрузкой.

Проверка драйверов и версий ядра

Часто проблемы с производительностью или отсутствием распознавания карты связаны не с железом, а с программным обеспечением. В Linux существует два типа драйверов: открытые (open-source) и проприетарные. Для карт NVIDIA проприетарные драйверы обычно обеспечивают лучшую производительность в играх и специфических задачах.

Чтобы проверить версию установленного драйвера, введите команду lspci -k | grep -A 2 -i vga. Обратите внимание на строку "Kernel driver in use". Если там указан nouveau, система использует открытый драйвер, который может быть нестабилен для новых моделей карт. В этом случае рекомендуется установить официальный драйвер из репозитория дистрибутива.

Для карт AMD ситуация иная: современные карты (серии RX 5000 и новее) требуют открытого драйвера amdgpu, который встроен прямо в ядро Linux. Установка дополнительных проприетарных драйверов от AMD для этих карт обычно не требуется и даже может навредить. Проверка версии ядра осуществляется командой uname -r, и она должна быть актуальной для поддержки вашего оборудования.

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

Часто проблема кроется в настройках Secure Boot в BIOS. Отключите Secure Boot или подпишите свой модуль драйвера ключом, если не хотите отключать защиту системы полностью.

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

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

Диагностика ошибок и логирование

Если видеокарта ведет себя странно, но визуальных признаков поломки нет, необходимо обратиться к системным логам. Файлы журнала Linux хранят информацию обо всех событиях, включая ошибки драйверов и сообщения ядра. Самый простой способ просмотреть последние сообщения — использовать команду dmesg | grep -i drm.

Команда drm фильтрует сообщения, связанные с Direct Rendering Manager — подсистемой ядра, отвечающей за работу с графикой. Здесь вы можете увидеть сообщения о сбоях инициализации, проблемах с загрузкой прошивки или ошибках памяти. Если видите сообщения "GPU hung" или "Xid error", это серьезный сигнал о некорректной работе видеокарты.

dmesg | grep -i "error\|fail\|GPU"

Также полезно проверить логи X-сервера или Wayland, если у вас есть графическая оболочка. Файлы обычно находятся в /var/log/Xorg.0.log. Поиск по ключевым словам "EE" (Error) или "WW" (Warning) поможет найти конкретные проблемы с конфигурацией или драйверами.

Для карт NVIDIA также существует возможность просмотра логов драйвера через nvidia-bug-report.sh, который генерирует подробный отчет о состоянии системы. Этот отчет часто требуется техподдержке для анализа сложных случаев. Однако для быстрой диагностики достаточно стандартных системных утилит.

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

Вопросы и ответы (FAQ)

Как проверить, работает ли видеокарта в режиме PCIe x16?

Для проверки ширины шины используйте команду lspci -vv | grep -i vga -A 12. Найдите строку "LnkSta" (Link Status). Там будет указано текущая скорость (например, "Speed 8GT/s") и ширина канала (например, "Width x16"). Если там указано x8 или x4, возможно, карта не вставлена до конца или слот поврежден.

Почему команда nvidia-smi не находит видеокарту?

Это может означать, что драйвер не установлен, не загружен, или карта физически не определена системой. Сначала проверьте lspci. Если карта видна там, но nvidia-smi ничего не показывает, попробуйте перезагрузить модуль драйвера: sudo modprobe -r nvidia; sudo modprobe nvidia.

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

Да, большинство консольных утилит (lspci, nvtop, glmark2, dmesg) работают в текстовом режиме. Это позволяет диагностировать и тестировать карту даже на серверах без монитора, используя только SSH-подключение.

Как проверить видеопамять на ошибки в Linux?

Стандартного простого аналога MemTest86 для видеопамяти в Linux нет. Однако можно использовать утилиты типа clpeak или запустить интенсивные вычисления, которые нагружают память. Для карт NVIDIA иногда используются специальные утилиты из пакета CUDA, но это требует глубоких знаний.

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