Как узнать свою видеокарту в Linux: от простых команд до продвинутых утилит

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

Ситуацию усложняет то, что в Linux видеокарта может отображаться по-разному в зависимости от установленных драйверов: как интегрированное решение Intel UHD Graphics, как дискретный GPU NVIDIA GeForce RTX 4090, или даже как виртуальный адаптер в случае использования протокола удалённого рабочего стола. К тому же, в ноутбуках часто присутствуют две видеокарты одновременно (например, Intel + NVIDIA Optimus), и стандартные команды могут показать только одну из них.

В этой статье мы разберём все актуальные методы — от элементарных команд в терминале до специализированных утилит вроде nvidia-smi или glxinfo. Вы узнаете, как получить не только название модели, но и информацию о драйвере, версии OpenGL/Vulkan, а также как отличить физическую видеокарту от виртуальной. Особое внимание уделим распространённым ошибкам, из-за которых пользователи получают неполные или некорректные данные.

1. Самый быстрый способ: команда lspci

Утилита lspci — это стандартный инструмент Linux для просмотра информации о всех устройствах, подключённых к шине PCI (а видеокарты как раз относятся к таким устройствам). Команда работает во всех дистрибутивах без дополнительной установки и показывает не только GPU, но и сетевые карты, звуковые адаптеры и другое оборудование.

Чтобы увидеть только видеокарты, используйте фильтр по классу устройств:

lspci -v | grep -A 12 "VGA\|3D"

В выводе вы получите что-то вроде:

01:00.0 VGA compatible controller: NVIDIA Corporation GA102 [GeForce RTX 3090] (rev a1)

Subsystem: ASUSTeK Computer Inc. Device 87c4

Flags: bus master, fast devsel, latency 0, IRQ 35, IOMMU group 1

Memory at f6000000 (32-bit, non-prefetchable) [size=16M]

Memory at e0000000 (64-bit, prefetchable) [size=256M]

...

Здесь ключевая строка — первая: она содержит название производителя (NVIDIA Corporation) и модель (GA102 [GeForce RTX 3090]). Цифры вроде 01:00.0 обозначают адрес устройства на шине PCI, а rev a1 — ревизию чипа.

⚠️ Внимание: Если в выводе lspci отображается только интегрированная графика (например, Intel HD Graphics 620), но вы точно знаете, что в системе есть дискретная видеокарта, это может означать, что она отключена в BIOS или не инициализирована драйвером. Проверьте настройки BIOS (опция Discrete Graphics или Hybrid Graphics) или установите проприетарные драйверы.
  • 🔍 Плюсы метода: работает без интернета, не требует прав суперпользователя, доступен в любом дистрибутиве.
  • ⚙️ Минусы: может не показать вторую видеокарту в системах с NVIDIA Optimus, не отображает информацию о драйвере.
  • 📌 Альтернативный вариант: для более компактного вывода используйте lspci | grep -i vga.
📊 Какой дистрибутив Linux вы используете?
Ubuntu/Debian
Arch Linux/Manjaro
Fedora/RHEL
OpenSUSE
Другой

2. Просмотр информации через glxinfo (для OpenGL)

Если вам нужно не только название видеокарты, но и данные о поддерживаемых ею возможностях OpenGL, используйте утилиту glxinfo из пакета mesa-utils. Она показывает версию OpenGL, расширения и даже название рендерера (которое часто содержит модель GPU).

Сначала установите пакет (если он ещё не установлен):

sudo apt install mesa-utils  # Для Debian/Ubuntu

sudo pacman -S mesa-utils # Для Arch Linux

sudo dnf install mesa-utils # Для Fedora

Затем запустите:

glxinfo | grep -i "renderer\|opengl"

Пример вывода для видеокарты AMD Radeon RX 6800 XT:

OpenGL renderer string: AMD Radeon RX 6800 XT (navi21, LLVM 15.0.7, DRM 3.49, 6.2.0-35-generic)

OpenGL version string: 4.6 (Compatibility Profile) Mesa 23.0.4-0ubuntu1~22.04.1

Здесь renderer string содержит модель GPU (Radeon RX 6800 XT) и кодовое имя архитектуры (navi21), а version string показывает версию OpenGL и используемый драйвер (Mesa).

⚠️ Внимание: Если вместо модели видеокарты вы видите строку вроде llvmpipe или softpipe, это означает, что система использует программный рендеринг (CPU вместо GPU). Такое происходит при отсутствии или неправильной настройке драйверов. Установите проприетарные драйверы для NVIDIA или AMD, либо проверьте работу открытого драйвера mesa.
Параметр в glxinfo Что означает Пример значения
OpenGL renderer string Модель GPU и используемый драйвер NVIDIA GeForce RTX 4070/PCIe/SSE2
OpenGL version string Версия OpenGL и название драйвера 4.6.0 NVIDIA 530.41.03
OpenGL vendor string Производитель GPU NVIDIA Corporation
OpenGL extensions Список поддерживаемых расширений GL_ARB_gl_spirv, GL_NVX_linked_gpu_multicast, ...

3. Утилита nvidia-smi для видеокарт NVIDIA

Если ваша система оснащена видеокартой NVIDIA и установлены проприетарные драйверы, самый надёжный способ получить информацию — использовать утилиту nvidia-smi (NVIDIA System Management Interface). Она показывает не только модель GPU, но и температуру, загрузку, версию драйвера и даже список запущенных процессов, использующих видеокарту.

Просто введите в терминале:

nvidia-smi

Типичный вывод:

+-----------------------------------------------------------------------------+

| NVIDIA-SMI 530.41.03 Driver Version: 530.41.03 CUDA Version: 12.1 |

|-------------------------------+----------------------+----------------------+

| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |

| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |

|===============================+======================+======================|

| 0 NVIDIA GeForce ... Off | 00000000:01:00.0 Off | N/A |

| N/A 45C P8 N/A / N/A | 123MiB / 24576MiB | 0% Default |

+-------------------------------+----------------------+----------------------+

В первой строке отображается версия драйвера (Driver Version) и CUDA, а в таблице — модель GPU (например, NVIDIA GeForce RTX 4080), температура (Temp), использование памяти и нагрузка. Если в системе несколько видеокарт, они будут перечислены в отдельных строках.

  • 🔥 Температура: если значение превышает 80°C в простое, проверьте систему охлаждения.
  • 💾 Память: Memory-Usage показывает, сколько VRAM занято в данный момент.
  • Нагрузка: GPU-Util отображает загрузку GPU в процентах. В простое должно быть 0%.
⚠️ Внимание: Если команда nvidia-smi выдаёт ошибку command not found, это означает, что проприетарные драйверы NVIDIA не установлены. Установите их через менеджер пакетов вашего дистрибутива или официальный репозиторий NVIDIA. Например, для Ubuntu:
sudo apt install nvidia-driver-535

Установить проприетарные драйверы|Перезагрузить систему|Проверить вывод nvidia-smi|Обновить драйвер при необходимости-->

4. Графические утилиты: hardinfo и neofetch

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

Neofetch — это консольная утилита, которая выводит краткую информацию о системе вместе с логотипом дистрибутива. Установите её:

sudo apt install neofetch  # Debian/Ubuntu

sudo pacman -S neofetch # Arch Linux

Затем запустите:

neofetch

В выводе будет строка GPU с названием вашей видеокарты. Например:

GPU: AMD Radeon RX 6700 XT (navi22 LLVM 15.0.7)

Hardinfo — это графическая утилита с подробными отчётами. Установите её:

sudo apt install hardinfo

Запустите через меню приложений или командой hardinfo, затем перейдите в раздел Devices → PCI Devices. Там вы найдёте список всех PCI-устройств, включая видеокарту с детальной информацией о производителе и модели.

Что делать, если neofetch показывает неверную модель GPU?

Если neofetch отображает некорректную информацию (например, вместо RTX 3060 пишет llvmpipe), это связано с тем, что утилита берёт данные из переменных окружения, которые могут быть неверно настроены. Проверьте вывод glxinfo или lspci — они дадут более точную информацию. Также убедитесь, что в системе установлены правильные драйверы.

5. Проверка через /sys/class/drm (продвинутый метод)

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

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

ls /sys/class/drm/ | grep -E 'card[0-9]-' | cut -d '-' -f 1 | xargs -I {} sh -c 'echo "Card {}"; cat /sys/class/drm/{}/device/uevent'

В выводе вы увидите что-то вроде:

Card card0

DRIVER=nvidia

PCI_ID=10DE:2204

PCI_SUBSYS_ID=1043:87C4

PCI_SLOT_NAME=0000:01:00.0

...

Здесь:

  • PCI_ID=10DE:2204 — идентификатор производителя и устройства. Первые четыре цифры (10DE) обозначают NVIDIA, а вторые (2204) — конкретную модель. Чтобы расшифровать 2204, воспользуйтесь базой данных PCI ID: https://pci-ids.ucw.cz/.
  • PCI_SLOT_NAME=0000:01:00.0 — адрес устройства на шине PCI (совпадает с выводом lspci).

Этот метод особенно полезен в серверных сборках Linux без GUI или при восстановлении системы, когда другие утилиты недоступны.

6. Диагностика в системах с двумя видеокартами (NVIDIA Optimus, AMD + Intel)

Ноутбуки с гибридной графикой (например, Intel UHD Graphics + NVIDIA GeForce) часто вызывают путаницу: стандартные команды вроде lspci могут показать обе карты, но как узнать, какая из них используется в данный момент? Для этого есть несколько специализированных методов.

Для систем с NVIDIA Optimus:

  • 🖥️ Проверьте активный GPU через prime-select query (для Ubuntu). Вывод nvidia означает, что используется дискретная карта, intel или on-demand — интегрированная.
  • 🔄 Чтобы принудительно переключиться на NVIDIA, выполните:
sudo prime-select nvidia

sudo reboot

Для систем с AMD + Intel:

  • 📊 Используйте DRI_PRIME=1 glxinfo | grep "OpenGL renderer", чтобы запустить приложение на дискретной карте AMD.
  • 🔧 Проверьте переменную окружения echo $DRI_PRIME. Если она равна 1, то по умолчанию используется дискретный GPU.

Также полезна утилита inxi, которая показывает обе видеокарты и текущий используемый драйвер:

inxi -G

Graphics:

Device-1: Intel UHD Graphics 620 driver: i915 v: kernel

Device-2: NVIDIA TU117M [GeForce GTX 1650 Mobile] driver: nvidia v: 530.41.03

Display: x11 server: X.Org v: 1.21.1.4 driver: X: loaded: modesetting,nvidia

OpenGL: renderer: Mesa Intel UHD Graphics 620 (CFL GT2) v: 4.6 Mesa 23.0.4

В этом примере видно, что:

  • В системе две видеокарты: интегрированная Intel UHD Graphics 620 и дискретная NVIDIA GeForce GTX 1650 Mobile.
  • Текущий рендерер OpenGL — Intel, то есть используется интегрированная графика.
  • Драйвер для NVIDIA установлен (driver: nvidia), но не активен.

7. Проверка поддержки Vulkan и других API

Если вы планируете запускать современные игры или приложения, использующие Vulkan, OpenCL или CUDA, недостаточно знать только модель видеокарты. Нужно убедиться, что система правильно распознаёт эти API и драйверы поддерживают их.

Для Vulkan: установите утилиту vulkan-tools и запустите:

vulkaninfo | grep "GPU id"

Пример вывода:

GPU id : 0 (AMD Radeon RX 6800 XT (RADV NAVI21))

Для OpenCL: установите clinfo:

sudo apt install clinfo

И запустите:

clinfo | grep "Device Name"

Пример:

Device Name: gfx1030

Здесь gfx1030 — кодовое имя архитектуры AMD RDNA 2 (соответствует Radeon RX 6000).

Для CUDA (только NVIDIA): проверьте доступность через:

nvcc --version

Если команда выдаёт ошибку, установите CUDA Toolkit с официального сайта NVIDIA.

FAQ: Частые вопросы о определении видеокарты в Linux

Почему lspci показывает видеокарту, но игры не запускаются?

Это типичная ситуация, когда в системе установлены драйверы по умолчанию (например, nouveau для NVIDIA), которые не обеспечивают полной поддержки 3D-ускорения. Решение:

  1. Удалите текущие драйверы: sudo apt purge xserver-xorg-video-nouveau (для NVIDIA).
  2. Установите проприетарные драйверы из официального репозитория или с сайта производителя.
  3. Перезагрузите систему.

После этого проверьте вывод glxinfo | grep "OpenGL renderer" — он должен содержать название вашей видеокарты, а не llvmpipe.

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

В системах с гибридной графикой (например, Intel + NVIDIA) текущий GPU можно определить так:

  • Для NVIDIA Optimus: prime-select query (вывод nvidia означает дискретную карту).
  • Для AMD + Intel: DRI_PRIME=0 glxinfo | grep "OpenGL renderer" (интегрированная) или DRI_PRIME=1 glxinfo | grep "OpenGL renderer" (дискретная).
  • Универсальный способ: inxi -Gxx — покажет обе карты и текущий используемый драйвер.

Также можно использовать утилиту nvidia-offload для принудительного запуска приложений на NVIDIA:

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxinfo | grep "OpenGL renderer"
Можно ли определить видеокарту без прав суперпользователя?

Да, большинство команд не требуют прав root:

  • lspci -v | grep -A 12 "VGA" — работает без sudo.
  • glxinfo | grep "OpenGL renderer" — не требует повышенных прав.
  • neofetch или inxi -G — также работают в пользовательском режиме.

Исключение — команды, которые считывают данные из /sys или устанавливают драйверы. Например, nvidia-smi требует, чтобы драйверы были установлены системно, но сама команда запускается без sudo.

Как проверить температуру и нагрузку на видеокарту?

Для мониторинга состояния GPU используйте:

  • NVIDIA: nvidia-smi (показывает температуру, загрузку и использование памяти).
  • AMD: radeontop (установите через sudo apt install radeontop). Запуск: sudo radeontop.
  • Intel: intel_gpu_top (входит в пакет intel-gpu-tools).
  • Универсально: sensors (установите lm-sensors и запустите sensors).

Пример вывода sensors для AMD Radeon:

amdgpu-pci-0100

Adapter: PCI adapter

vddgfx: +0.75 V

fan1: 980 RPM

temp1: +45.0°C (crit = +94.0°C, hyst = +90.0°C)

Что делать, если команда glxinfo выдаёт ошибку "command not found"?

Ошибка означает, что пакет mesa-utils не установлен. Решение:

  • Для Debian/Ubuntu: sudo apt install mesa-utils.
  • Для Arch Linux: sudo pacman -S mesa-utils.
  • Для Fedora: sudo dnf install mesa-utils.

Если после установки glxinfo по-прежнему не работает, проверьте, что у вас установлены базовые драйверы для видеокарты (например, mesa для AMD/Intel или nvidia-driver для NVIDIA).