На ноутбуках под управлением Linux часто возникает путаница с видеокартами: интегрированная Intel HD Graphics или дискретная NVIDIA/AMD Radeon может быть активна в конкретный момент? Особенно это актуально для гибридных систем с технологией Optimus (NVIDIA) или Dynamic Switchable Graphics (AMD), где переключение происходит автоматически или вручную. Без правильной диагностики вы рискуете запускать ресурсоёмкие приложения на слабом видеоадаптере или тратить заряд батареи на ненужную дискретную графику.
В этой статье мы разберём 5 надёжных способов проверки активной видеокарты в Linux, включая консольные команды, графические утилиты и анализ системных логов. Методы подойдут для дистрибутивов на базе Ubuntu, Fedora, Arch Linux и других, а также учтут особенности драйверов nouveau, amdgpu и проприетарных решений от NVIDIA/AMD. Вы узнаете не только как идентифицировать текущий GPU, но и как принудительно переключиться между ними при необходимости.
1. Базовый метод: команда lspci для списка видеокарт
Самый универсальный способ — использовать утилиту lspci, которая выводит информацию о всех PCI-устройствах, включая видеокарты. Этот метод работает даже без установленных драйверов, но покажет только физически присутствующие адаптеры, а не активный в данный момент.
Откройте терминал (Ctrl+Alt+T) и выполните:
lspci -v | grep -A 12 "VGA\|3D"
В выводе вы увидите что-то вроде:
00:02.0 VGA compatible controller: Intel Corporation Alder Lake-P Integrated Graphics (rev 0c)
Subsystem: Dell Alder Lake-P Integrated Graphics
Flags: bus master, fast devsel, latency 0, IRQ 144
Memory at 6000000000 (64-bit, prefetchable) [size=16G]
...
01:00.0 VGA compatible controller: NVIDIA Corporation GA107M [GeForce RTX 3050 Mobile] (rev a1)
Subsystem: Dell GeForce RTX 3050 Mobile
Flags: bus master, fast devsel, latency 0, IRQ 145
Memory at 50000000 (32-bit, non-prefetchable) [size=16M]
...
- 🔍 Intel Alder Lake-P — интегрированная графика (обычно активна по умолчанию в режиме энергосбережения).
- 🎮 NVIDIA GA107M — дискретная видеокарта (может быть отключена для экономии батареи).
- ⚠️ Если в выводе только одна карта — либо вторая отключена на уровне BIOS, либо драйверы не загрузились.
⚠️ Внимание: На некоторых ноутбуках (например, Dell XPS или Lenovo ThinkPad) в BIOS может быть опцияGraphics Mode— если она установлена вDiscrete, интегрированная графика будет полностью отключена, иlspciпокажет только дискретный GPU.
2. Проверка активного GPU через glxinfo (для OpenGL)
Утилита glxinfo (из пакета mesa-utils) показывает, какой видеоадаптер в данный момент обрабатывает графику через OpenGL. Это актуально для большинства приложений, включая браузеры и лёгкие игры.
Установите пакет (если отсутствует):
sudo apt install mesa-utils # Для Debian/Ubuntu
sudo dnf install mesa-utils # Для Fedora
sudo pacman -S mesa-utils # Для Arch Linux
Затем выполните:
glxinfo | grep "OpenGL renderer"
Примеры выводов:
- 🖥️
OpenGL renderer string: Mesa Intel Graphics (ADL GT2)— активна интегрированная графика Intel. - 🎯
OpenGL renderer string: NVIDIA GeForce RTX 3050/PCIe/SSE2— используется дискретная NVIDIA. - 🔄
OpenGL renderer string: llvmpipe (LLVM 15.0.7, 256 bits)— software-rendering (видеокарта не используется, возможно, нет драйверов!).
Если вы видите llvmpipe, это значит, что система принудительно рендерит графику через CPU. Частая причина — отсутствие драйверов для дискретной карты или ошибки в конфигурации Xorg/Wayland.
3. Анализ через nvidia-smi (только для NVIDIA)
Для ноутбуков с гибридной графикой NVIDIA Optimus (например, GeForce GTX/RTX + Intel HD) утилита nvidia-smi покажет состояние дискретной карты. Она входит в состав проприетарного драйвера nvidia-driver.
Выполните в терминале:
nvidia-smi
Типичный вывод:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.85.12 Driver Version: 525.85.12 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
| 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 | 0MiB / 4096MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
Ключевые моменты:
- 🔋
P8в колонкеPerf— карта в режиме низкого энергопотребления (обычно не активна). - 🚀
P0илиP2— дискретный GPU задействован. - 🖼️
Disp.A = Off— карта не используется для вывода изображения (рендеринг может идти через Intel). - 📊
Memory-Usage— если значение > 0, то карта точно активна (например, для CUDA или Vulkan).
⚠️ Внимание: На некоторых дистрибутивах (например, Ubuntu 22.04+)nvidia-smiможет показывать дискретную карту как активную даже когда она простаивает. Для точной проверки комбинируйте этот метод сglxinfoилиDRI_PRIME=1 glxinfo.
4. Проверка через prime-select (для гибридных систем)
В дистрибутивах с поддержкой NVIDIA Prime (Ubuntu, Linux Mint) или AMD Dynamic Switchable Graphics есть утилита prime-select, которая показывает и управляет активным GPU. Она работает на уровне конфигурации Xorg/Wayland.
Узнать текущий активный адаптер:
prime-select query
Возможные ответы:
| Вывод команды | Значение | Пример ноутбуков |
|---|---|---|
intel | Активна интегрированная графика (Intel HD/Iris или AMD Radeon Vega) | Lenovo IdeaPad, HP Pavilion |
nvidia | Активна дискретная NVIDIA (высокое энергопотребление) | ASUS ROG Zephyrus, MSI GF63 |
on-demand | Гибридный режим: интегрированная графика по умолчанию, дискретная подключается по запросу | Dell XPS 15, Acer Swift X |
amd | Активна дискретная AMD Radeon (встречается реже) | Lenovo Legion с Radeon RX 6700M |
Чтобы принудительно переключиться (требуются права sudo):
sudo prime-select nvidia # Переключить на дискретную NVIDIA
sudo prime-select intel # Вернуться на интегрированную
После переключения обязательно перезагрузитесь или перезапустите графическую сессию:
sudo systemctl restart gdm # Для GNOME
sudo systemctl restart sddm # Для KDE Plasma
Установите проприетарные драйверы (nvidia-driver/amdgpu-pro)|Проверьте текущий GPU через prime-select query|Переключитесь командой sudo prime-select [intel/nvidia]|Перезагрузите систему или графический сервер|Проверьте результат через glxinfo или nvidia-smi-->
5. Проверка через inxi — универсальный системный анализ
Утилита inxi собирает детальную информацию о системе, включая сведения о видеокартах и их драйверах. Она часто предустановлена в дистрибутивах на базе Ubuntu или Manjaro, но при необходимости устанавливается одной командой:
sudo apt install inxi # Debian/Ubuntu
sudo dnf install inxi # Fedora
Запустите анализ графической подсистемы:
inxi -Gxx
Пример вывода для ноутбука с гибридной графикой:
Graphics:
Device-1: Intel Alder Lake-P Integrated Graphics vendor: Dell driver: i915 v: kernel
bus-ID: 00:02.0
Device-2: NVIDIA GA107M [GeForce RTX 3050 Mobile] vendor: Dell driver: nvidia
v: 525.85.12 bus-ID: 01:00.0
Device-3: Microdia Integrated_Webcam_HD type: USB driver: uvcvideo bus-ID: 3-6:3
Display: x11 server: X.Org v: 1.21.1.4 driver: X: loaded: modesetting,nvidia
unloaded: fbdev,nouveau,vesa gpu: i915 resolution: 1920x1080~144Hz
OpenGL: renderer: Mesa Intel Graphics (ADL GT2) v: 4.6 Mesa 23.0.4
Что здесь важно:
- 🔧
driver: i915— используется драйвер для интегрированной графики Intel. - 🎮
driver: nvidia— проприетарный драйвер для дискретной карты загружен, но не факт, что активен. - 🖥️
OpenGL: renderer: Mesa Intel Graphics— подтверждение, что рендеринг идёт через Intel. - 🔄
gpu: i915в секцииDisplay— текущий графический процессор для вывода изображения.
inxi также покажет температуру GPU (если поддерживается) и версии драйверов, что полезно для диагностики проблем с производительностью или перегревом.
Как установить inxi на минимальных системах (например, сервер без GUI)?
Сначала установите зависимости для detection hardware, затем саму утилиту:
sudo apt install dmidecode hddtemp lm-sensors mesa-utils pciutils usbutils -y
sudo apt install inxi -y
Для Arch Linux:
sudo pacman -S inxi dmidecode hddtemp lm_sensors mesa-utils pciutils usbutils6. Проверка через journalctl и логи системы
Если стандартные утилиты не дают однозначного ответа, можно проанализировать логи ядра и графической подсистемы. Это особенно полезно при проблемах с драйверами или когда видеокарта не определяется.
Посмотрите логи загрузки модулей ядра:
journalctl -b | grep -i "nvidia\|amdgpu\|i915\|drm"
Примеры полезных строк:
- 🔹
nvidia-modeset: Allocated GPU:0 (GPU-...) @ PCI:0000:01:00.0— дискретная NVIDIA инициализирована. - 🔹
i915 0000:00:02.0: [drm] Finished loading DMC firmware— интегрированная графика Intel готова к работе. - 🔹
amdgpu 0000:03:00.0: amdgpu: Fetched VBIOS from VFCT— обнаружен GPU AMD Radeon. - 🚨
nouveau: probe of 0000:01:00.0 failed with error -12— ошибка загрузки драйвера (возможно, конфликт сnvidia-driver).
Для более детального анализа используйте:
dmesg | grep -i "drm\|vga\|gpu"
Это поможет выявить:
- 🔌 Какая карта инициализировалась первой (обычно она и активна по умолчанию).
- ⚡ Конфликты между драйверами (например,
nouveauvsnvidia). - 🔄 Причины принудительного отключения дискретного GPU (например, из-за
bbswitchилиacpi_call).
⚠️ Внимание: На некоторых ноутбуках (например, с NVIDIA Optimus) дискретная карта может быть физически отключена для экономии энергии, даже если драйвер загружен. В этом случае в логах вы увидите сообщения вродеNVRM: GPU ... is not powered. Чтобы её "разбудить", запустите приложение с поддержкой CUDA/Vulkan или используйте__NV_PRIME_RENDER_OFFLOAD=1.
FAQ: Частые вопросы по определению активной видеокарты в Linux
❓ Как узнать, какая видеокарта используется в игре или 3D-приложении?
Для приложений на Vulkan (например, Dota 2, Proton-игры в Steam) используйте:
vulkaninfo | grep "GPU id"
Для OpenGL (например, Blender, GNOME Shell):
DRI_PRIME=1 glxinfo | grep "OpenGL renderer"
Если вывод показывает дискретную карту — она активна для этого приложения. Для принудительного использования дискретного GPU запускайте программу с префиксом:
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxgears
❓ Почему nvidia-smi показывает карту как активную, но игры работают медленно?
Это типичная ситуация для гибридных систем, где дискретная карта загружена, но приложение по-прежнему рендерит графику через интегрированный GPU. Проверьте:
- Запускаете ли вы игру с правильными переменными окружения (например,
prime-runили__NV_PRIME_RENDER_OFFLOAD=1). - Не блокирует ли
bbswitchилиacpi_callдискретную карту (проверьте черезlsmod | grep bbswitch). - Не используется ли software-rendering (проверьте через
glxinfoна наличиеllvmpipe).
Для Steam добавьте в параметры запуска игры:
prime-run %command%
❓ Можно ли полностью отключить интегрированную графику, чтобы всегда использовалась дискретная?
Технически да, но это не рекомендуется для ноутбуков по нескольким причинам:
- 🔋 Резко сократится время работы от батареи (дискретные GPU потребляют в 3–5 раз больше энергии).
- 🔌 На некоторых моделях (например, ASUS ROG) это может привести к перегреву из-за отсутствия балансировки нагрузки.
- ⚡ Возможны артефакты или зависания, если драйвер дискретной карты нестабилен.
Если всё же нужно, отключите интегрированную графику в BIOS (опция Graphics Device → Discrete) или добавьте её в чёрный список модулей ядра:
echo "blacklist i915" | sudo tee /etc/modprobe.d/blacklist-intel.conf
sudo update-initramfs -u
После этого система будет использовать только дискретный GPU, но может потерять поддержку сна/гибернации.
❓ Как проверить, какая видеокарта используется для вывода на внешний монитор?
Подключите внешний монитор и выполните:
xrandr --listproviders
Пример вывода:
Providers: number : 2
Provider 0: id: 0x45 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 4 outputs: 5 associated providers: 1 name:Intel
Provider 1: id: 0x24d cap: 0x2, Sink Output crtcs: 4 outputs: 1 associated providers: 1 name:NVIDIA-G0
Здесь:
Source Output— провайдер, который управляет выводом изображения (в примере это Intel).Sink Output— провайдер, который может принимать изображение для обработки (в примере NVIDIA-G0 используется как ускоритель).
Чтобы принудительно использовать дискретную карту для внешнего монитора, создайте конфиг для Xorg:
Section "OutputClass"
Identifier "NVIDIA"
MatchDriver "nvidia-drm"
Driver "nvidia"
Option "PrimaryGPU" "yes"
Option "AllowNVIDIAGPUScreens"
EndSection
Сохраните в /etc/X11/xorg.conf.d/10-nvidia.conf и перезагрузитесь.
❓ Почему после обновления ядра или драйверов видеокарта перестала определяться?
Это частая проблема при обновлении на новые версии ядра (например, с 5.15 на 6.2) или драйверов. Причины:
- Конфликт модулей: Старые модули драйверов (
nvidia.ko,amdgpu.ko) не совместимы с новым ядром. - Отсутствие DKMS: Проприетарные драйверы не пересобрались для нового ядра.
- Изменения в API: Новые версии ядра могут ломать поддержку старых GPU (актуально для AMD GCN 1.0 или NVIDIA Kepler).
Решения:
- Переустановите драйверы через DKMS:
sudo apt install --reinstall nvidia-driver-525 nvidia-dkms - Откат на старое ядро (в меню GRUB при загрузке выберите предыдущую версию).
- Проверьте логи на ошибки:
journalctl -b | grep -i "nvidia\|amdgpu\|drm"