Определение модели видеокарты в 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.
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-ускорения. Решение:
- Удалите текущие драйверы:
sudo apt purge xserver-xorg-video-nouveau(для NVIDIA). - Установите проприетарные драйверы из официального репозитория или с сайта производителя.
- Перезагрузите систему.
После этого проверьте вывод 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).