Как определить, какая видеокарта активна на ноутбуке с Linux: пошаговое руководство

На ноутбуках под управлением 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.
📊 Какую видеокарту вы используете в ноутбуке?
Только интегрированную (Intel/AMD)
Дискретную (NVIDIA/AMD Radeon)
Гибридную систему (Optimus/DSG)
Не знаю

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 usbutils

6. Проверка через 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"

Это поможет выявить:

  • 🔌 Какая карта инициализировалась первой (обычно она и активна по умолчанию).
  • ⚡ Конфликты между драйверами (например, nouveau vs nvidia).
  • 🔄 Причины принудительного отключения дискретного 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. Проверьте:

  1. Запускаете ли вы игру с правильными переменными окружения (например, prime-run или __NV_PRIME_RENDER_OFFLOAD=1).
  2. Не блокирует ли bbswitch или acpi_call дискретную карту (проверьте через lsmod | grep bbswitch).
  3. Не используется ли software-rendering (проверьте через glxinfo на наличие llvmpipe).

Для Steam добавьте в параметры запуска игры:

prime-run %command%
❓ Можно ли полностью отключить интегрированную графику, чтобы всегда использовалась дискретная?

Технически да, но это не рекомендуется для ноутбуков по нескольким причинам:

  • 🔋 Резко сократится время работы от батареи (дискретные GPU потребляют в 3–5 раз больше энергии).
  • 🔌 На некоторых моделях (например, ASUS ROG) это может привести к перегреву из-за отсутствия балансировки нагрузки.
  • ⚡ Возможны артефакты или зависания, если драйвер дискретной карты нестабилен.

Если всё же нужно, отключите интегрированную графику в BIOS (опция Graphics DeviceDiscrete) или добавьте её в чёрный список модулей ядра:

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) или драйверов. Причины:

  1. Конфликт модулей: Старые модули драйверов (nvidia.ko, amdgpu.ko) не совместимы с новым ядром.
  2. Отсутствие DKMS: Проприетарные драйверы не пересобрались для нового ядра.
  3. Изменения в API: Новые версии ядра могут ломать поддержку старых GPU (актуально для AMD GCN 1.0 или NVIDIA Kepler).

Решения:

  1. Переустановите драйверы через DKMS:
    sudo apt install --reinstall nvidia-driver-525 nvidia-dkms
  2. Откат на старое ядро (в меню GRUB при загрузке выберите предыдущую версию).
  3. Проверьте логи на ошибки:
    journalctl -b | grep -i "nvidia\|amdgpu\|drm"