Гібридні ноутбуки з Intel + NVIDIA в Linux можуть працювати дуже економно й дуже швидко — якщо правильно налаштувати PRIME/Optimus. У цій інструкції ви отримаєте зрозумілий план: як увімкнути on‑demand рендер (PRIME Render Offload), запускати важкі програми на дискретній карті й автоматично зберігати батарею, коли достатньо вбудованої графіки. ⚡️

Що таке PRIME/Optimus і як це працює

Optimus — технологія перемикання графіки (iGPU/dGPU) від NVIDIA. У Linux це реалізовано через PRIME: ви маєте енергоощадну Intel як основну, а NVIDIA підвантажується «за запитом» для важких задач (рендер, ігри). Режим On-Demand або Render Offload дозволяє додаткам використовувати dGPU лише коли це потрібно — і це найкращий баланс між автономністю та продуктивністю.

Покрокове налаштування (How‑to)

1) Перевірити обладнання й сесію

Спочатку переконайтеся, що система бачить обидві відеокарти. Зручно робити через термінал Linux.

lspci | egrep 'VGA|3D'
uname -r
# Опційно: перевірка OpenGL/Vulkan
sudo apt install -y mesa-utils  # Ubuntu/Debian
# sudo dnf install -y mesa-demos   # Fedora
# sudo pacman -S --needed mesa-demos  # Arch
glxinfo -B | egrep 'OpenGL vendor|renderer|device'

Якщо ви у GNOME/KDE, запишіть, чи використовуєте Xorg або Wayland (це видно на екрані входу або через echo $XDG_SESSION_TYPE).

2) Встановити пропрієтарний драйвер NVIDIA

Потрібні свіжі драйвери (440+; краще 535/545+). Команди залежать від дистрибутива:

# Ubuntu / Linux Mint / Pop!_OS
sudo apt update
sudo apt install -y nvidia-driver-535 nvidia-prime

# Fedora (RPM Fusion необхідний)
sudo dnf install -y \
rpmfusion-nonfree-release-tainted \
rpmfusion-nonfree-release
sudo dnf install -y akmod-nvidia xorg-x11-drv-nvidia-cuda switcheroo-control
sudo systemctl enable --now switcheroo-control

# Arch / Manjaro
sudo pacman -S --needed nvidia nvidia-utils nvidia-prime

Перезавантажтеся після встановлення, щоб модулі NVIDIA коректно піднялися.

3) Увімкнути режим On‑Demand (PRIME Render Offload)

У більшості систем достатньо перемкнути «on-demand» і запускати важкі програми через prime-run.

# Ubuntu/Pop!_OS (інструмент prime-select):
sudo prime-select on-demand

# Перевірка стану:
prime-select query

# Запуск додатка на dGPU:
prime-run glxinfo -B
prime-run steam

Альтернатива без prime-run — передати змінні середовища вручну (актуально для Xorg):

__NV_PRIME_RENDER_OFFLOAD=1 \
__GLX_VENDOR_LIBRARY_NAME=nvidia \
__VK_LAYER_NV_optimus=NVIDIA_only \
your-app-here

На Fedora/GNOME Wayland зазвичай доступне контекстне меню «Запустити з дискретною відеокартою», а switcheroo-control робить магію у фоновому режимі.

4) Перевірити, що програма реально працює на NVIDIA

# Паралельно з запущеним додатком на dGPU запустіть:
watch -n 1 nvidia-smi

# Або подивіться renderer у вікні додатка:
prime-run glxinfo -B | egrep 'renderer|device'

5) Увімкнути динамічне енергозбереження NVIDIA (опційно)

Нові драйвери підтримують відключення dGPU у простої. Якщо потрібно, додайте параметр модуля:

echo 'options nvidia NVreg_DynamicPowerManagement=0x02' | 
sudo tee /etc/modprobe.d/nvidia-pm.conf

# Оновити initramfs (Ubuntu/Debian):
sudo update-initramfs -u
sudo reboot

Після цього dGPU засинатиме, коли не використовується, — додаткова оптимізація продуктивності й батареї одночасно 💡.

Альтернативні способи

  • Performance Mode (тільки NVIDIA): якщо вам потрібен максимум FPS, увімкніть «performance» (через nvidia-settings або prime-select nvidia). Мінус — більша витрата батареї.
  • Intel Only: prime-select intel — коли пріоритет автономності і dGPU не потрібна.
  • MUX-перемикач у BIOS: якщо ноутбук має апаратний MUX, перемикання на dGPU дає стабільніший FPS і краще поводження зовнішніх моніторів.
  • Bumblebee: застарілий варіант — не рекомендую. PRIME Render Offload працює краще й простіше.

GUI-спосіб

  • NVIDIA Settings → PRIME Profiles: оберіть «On-Demand», «Performance» або «Intel». Застосуйте і перелогіньтесь.
  • GNOME/KDE: клацніть правою кнопкою на іконці програми → «Запустити з дискретною відеокартою». У GNOME це активується завдяки switcheroo-control.
  • Steam: у властивостях гри встановіть «Launch Options»: prime-run %command%.

Це чистий шлях для прихильників GUI Linux, коли не хочеться писати команди.

FAQ

Q: Wayland чи Xorg — що краще для Optimus?
A: На GNOME Wayland з новими драйверами перемикання працює дуже добре (через контекстне меню). На Xorg гнучкіше керувати через змінні середовища/prime-run. Спробуйте обидва.

Q: Як позбутися tearing на NVIDIA?
A: У nvidia-settings увімкніть «Force Composition Pipeline» (або «Full»). У KDE — VSync «Automatic (or Never)» + «Tearing Prevention».

Q: Зовнішній монітор не визначається в Intel-режимі.
A: Часто HDMI/DP підв’язані до dGPU. Перемкніться в Performance (NVIDIA) або використайте Wayland, де це обробляється краще. Перевірте MUX у BIOS.

Q: Як дізнатися, на якій карті працює конкретний процес?
A: Подивіться nvidia-smi під час запуску або перевірте renderer через glxinfo -B. Для Vulkan — vulkaninfo | grep GPU.

Q: Чому prime-run відсутній?
A: На деяких дистрибутивах його надає пакет nvidia-prime (Ubuntu) або простий alias. Створіть свій:

echo "alias prime-run='__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only'" \
>> ~/.bashrc
source ~/.bashrc

Q: Flatpak/Steam гра все одно використовує Intel.
A: Додайте prime-run у параметри запуску. Для Flatpak:

flatpak run --command=sh com.your.App \
-c "__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus=NVIDIA_only your-binary"

Q: Помилка «Failed to initialize NVML» чи «EGL vendor»?
A: Переконайтеся, що версії nvidia-driver і nvidia-utils збігаються, модулі завантажені (lsmod | grep nvidia), а також у вас встановлено libnvidia-egl-wayland (де доступно).

Порада від Kernelka

Щоб не возитися з кожним ярликом, зробіть універсальний лончер для ігор і важких застосунків. Наприклад, створіть скрипт ~/bin/dgpu і запускайте через нього будь-що:

mkdir -p ~/bin
cat <<'EOF' > ~/bin/dgpu
#!/usr/bin/env bash
__NV_PRIME_RENDER_OFFLOAD=1 \
__GLX_VENDOR_LIBRARY_NAME=nvidia \
__VK_LAYER_NV_optimus=NVIDIA_only \
"$@"
EOF
chmod +x ~/bin/dgpu
# Тепер:
~/bin/dgpu blender

Це маленький трюк з розділу «трюки Linux», але дуже рятує час.

Підсумок

  • Встановіть актуальні драйвери NVIDIA та інструменти (nvidia-prime, switcheroo-control).
  • Увімкніть режим On-Demand і запускайте ресурсоємні додатки через prime-run.
  • Перевіряйте використання dGPU через nvidia-smi і glxinfo -B.
  • Використовуйте GUI-опції в GNOME/KDE, якщо так зручніше.
  • Налаштуйте енергозбереження NVIDIA для кращої автономності.
  • Для стабільного FPS або зовнішніх моніторів тимчасово перейдіть у Performance Mode.

Якщо коротко: налаштували on-demand — і система сама обирає між Intel і NVIDIA, а ви отримуєте тишу, батарею та FPS саме там, де потрібно. 🙌