====== Problemele Nvida pe Linux și rezolvarea lor ======
===== Cuprins =====
- [[#introducere_si_diagnostic_initial|Introducere și diagnostic inițial]]
- [[#problema_1_black_screen_dupa_suspend_resume|Problema 1: Black screen după suspend/resume]]
- [[#problema_2_fps-uri_slabe_in_jocuri_nvidia_optimus_prime|Problema 2: FPS-uri slabe în jocuri (NVIDIA Optimus/Prime)]]
- [[#problema_3_supraincalzire_si_thermal_throttling|Problema 3: Supraîncălzire și thermal throttling]]
- [[#problema_4_driver-ul_nvidia_nu_se_incarca_conflict_cu_nouveau|Problema 4: Driver-ul NVIDIA nu se încarcă (conflict cu nouveau)]]
- [[#problema_5_wayland_vs_x11|Problema 5: Wayland vs X11]]
- [[#problema_6_secure_boot_si_dkms|Problema 6: Secure Boot și DKMS]]
- [[#verificare_si_diagnostic|Verificare și diagnostic]]
- [[#resurse_utile|Resurse utile]]
----
===== Introducere și Diagnostic Inițial =====
==== De ce NVIDIA pe Linux e problematic? ====
* Drivere **proprietare** - cod închis, doar NVIDIA poate face update-uri
* **NVIDIA Optimus** (laptop-uri cu dual GPU) - suport limitat până recent
* **Power management** complicat - GPU-ul consumă mult când nu e folosit
* Documentație hardware incompletă pentru community
==== Verificări de bază ====
# Verifică ce GPU ai
lspci | grep -i vga
lspci | grep -i nvidia
# Verifică ce driver folosești
lsmod | grep nvidia
lsmod | grep nouveau
# Verifică versiunea driver NVIDIA
nvidia-smi
# Verifică ce GPU renderează acum
glxinfo | grep "OpenGL renderer"
----
===== Problema 1: Black Screen după Suspend/Resume =====
==== Simptome ====
* După suspend, la wake-up ecranul rămâne negru
* Sistem funcțional (accesibil prin SSH), dar fără output video
* Nu poți accesa TTY (Ctrl+Alt+F2)
* Trebuie să forțezi restart (long press power button)
==== Cauze ====
* NVIDIA driver nu păstrează corect VRAM la suspend
* Probleme cu NVIDIA Optimus/Prime la comutare GPU
* Servicii nvidia-suspend/resume nu sunt activate
* Parametri kernel lipsă
==== Rezolvare 1: Activează parametri kernel și servicii (recomandat) ====
**Pasul 1: Adaugă parametri kernel**
# Editează GRUB
sudo nano /etc/default/grub
# Modifică linia GRUB_CMDLINE_LINUX_DEFAULT:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia.NVreg_PreserveVideoMemoryAllocations=1 nvidia-drm.modeset=1"
# Salvează (Ctrl+O, Enter, Ctrl+X)
# Update GRUB
sudo update-grub # Ubuntu/Debian/Zorin
# SAU
sudo grub2-mkconfig -o /boot/grub2/grub.cfg # Fedora/RHEL
sudo reboot
**Pasul 2: Activează servicii NVIDIA pentru suspend**
# Verifică dacă serviciile există
systemctl list-unit-files | grep nvidia
# Activează serviciile
sudo systemctl enable nvidia-suspend.service
sudo systemctl enable nvidia-hibernate.service
sudo systemctl enable nvidia-resume.service
# Verifică status
systemctl status nvidia-suspend.service
==== Rezolvare 2: Workaround nvidia-sleep.sh (dacă Rezolvarea 1 nu merge) ====
Sursă: Linux Mint Forums, NVIDIA Developer Forums
# Editează scriptul nvidia-sleep.sh
sudo nano /usr/bin/nvidia-sleep.sh
# Adaugă la ÎNCEPUTUL fișierului (după shebang):
exit 0
# Salvează și reboot
**⚠️ ATENȚIE:** Acest workaround e suprascris la fiecare update de driver! Trebuie reapplicat după fiecare update NVIDIA.
==== Rezolvare 3: Dezactivează complet hibernarea (dacă suspend tot nu merge) ====
# Dezactivează hibernate (suspend la RAM merge în continuare)
sudo systemctl mask hibernate.target hybrid-sleep.target
# Verifică
systemctl status hibernate.target
**Context:** Hibernate (suspend-to-disk) e problematic pe Linux chiar și pe AMD. Suspend (suspend-to-RAM) e mult mai stabil.
==== Resurse ====
* [[https://wiki.archlinux.org/title/NVIDIA#Suspend_and_hibernate|Arch Wiki - NVIDIA Suspend/Hibernate]]
* [[https://forums.linuxmint.com/viewtopic.php?t=427202|Linux Mint Forum - Black screen after suspend]]
* [[https://github.com/linuxmint/linuxmint/issues/792|GitHub Issue - Suspend/Resume black screen]]
----
===== Problema 2: FPS-uri Slabe în Jocuri (NVIDIA Optimus/Prime) =====
==== Simptome ====
* Jocuri rulează mult mai slab pe Linux decât pe Windows
* GPU NVIDIA nu pare folosit (nvidia-smi arată 0% usage)
* Consum energetic ridicat chiar când GPU nu e folosit
* Ambele GPU-uri (Intel/AMD + NVIDIA) active simultan
==== Cauze ====
* Jocurile rulează pe **iGPU** (Intel/AMD) în loc de GPU dedicat NVIDIA
* NVIDIA Optimus/Prime nu e configurat corect
* Driver-ul nu știe când să folosească GPU dedicat
==== Rezolvare 1: Verifică ce GPU folosești acum ====
# Verifică ce GPU renderează
glxinfo | grep "OpenGL renderer"
# Ar trebui să vezi:
# "NVIDIA GeForce RTX 3050" → GPU dedicat (bun!)
# "Intel" sau "AMD" → iGPU (rău pentru gaming!)
# Verifică dacă PRIME e disponibil
prime-select query # Ubuntu/Debian
# SAU
optimus-manager --print-mode # Arch/Manjaro
==== Rezolvare 2: Activează NVIDIA Prime Render Offload ====
Sursă: Arch Wiki PRIME, Debian Wiki NVIDIA Optimus
**Metoda A: On-demand (rulează app-uri specifice pe NVIDIA)**
# Pentru OpenGL
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxinfo | grep "OpenGL renderer"
# Pentru jocuri în Steam - adaugă în Launch Options:
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia %command%
# Pentru Vulkan
__NV_PRIME_RENDER_OFFLOAD=1 vulkaninfo
# Creează alias pentru confort
echo 'alias prime="__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia"' >> ~/.bashrc
source ~/.bashrc
# Acum poți rula: prime
**Metoda B: Permanent NVIDIA (tot timpul pe GPU dedicat)**
# Ubuntu/Debian/Zorin
sudo prime-select nvidia
sudo reboot
# Verifică
prime-select query
# Pentru a reveni la iGPU (economie energie):
sudo prime-select intel
**Metoda C: Optimus Manager (Arch/Manjaro)**
# Instalează
yay -S optimus-manager optimus-manager-qt
# Comută la NVIDIA
optimus-manager --switch nvidia
# Verifică modul curent
optimus-manager --print-mode
# Moduri disponibile: intel, nvidia, hybrid
==== Rezolvare 3: Activează D3 Power Management (pentru laptopuri RTX 30+) ====
Sursă: Arch Wiki PRIME, NVIDIA Documentation
**Pentru GPU-uri Ampere (RTX 30xx) și mai noi:**
# Creează fișier de configurare
sudo nano /etc/modprobe.d/nvidia-power-management.conf
# Adaugă:
options nvidia NVreg_DynamicPowerManagement=0x02
# Pentru Ampere și mai nou, folosește:
options nvidia NVreg_DynamicPowerManagement=0x03
# Salvează și reboot
**Verifică dacă GPU se oprește când nu e folosit:**
# Verifică starea power
cat /sys/bus/pci/devices/0000:01:00.0/power/runtime_status
# Ar trebui să vezi:
# "suspended" → GPU oprit (economie energie) ✅
# "active" sau "running" → GPU pornit
==== Resurse ====
* [[https://wiki.archlinux.org/title/NVIDIA_Optimus|Arch Wiki - NVIDIA Optimus]]
* [[https://wiki.archlinux.org/title/PRIME|Arch Wiki - PRIME]]
* [[https://wiki.debian.org/NVIDIA%20Optimus|Debian Wiki - NVIDIA Optimus]]
* [[https://download.nvidia.com/XFree86/Linux-x86_64/535.54.03/README/primerenderoffload.html|NVIDIA Official - PRIME Render Offload]]
----
===== Problema 3: Supraîncălzire și Thermal Throttling =====
==== Simptome ====
* GPU atinge 90-100°C în câteva minute
* FPS-uri variabile/instabile în jocuri
* Clock-uri GPU scad brusc (de la 1800MHz la 300MHz)
* nvidia-smi arată "Thermal Slowdown" sau "SW Thermal Slowdown"
* Ventilatorul nu se învârte sau rămâne la speed constant redus
==== Cauze ====
* Ventilatorul nu e controlat automat de driver
* Power limit prea mare pentru cooling disponibil
* Ambele GPU-uri (iGPU + dGPU) active → căldură dublă
* Thermal paste vechi (pe laptop-uri >2-3 ani)
==== Rezolvare 1: Verifică thermal throttling ====
# Monitorizează GPU în timp real
watch -n 1 nvidia-smi
# Verifică dacă face throttling
nvidia-smi -q -d PERFORMANCE
# Caută după:
# "Clocks Throttle Reasons"
# "SW Thermal Slowdown: Active" → PROBLEMĂ!
# "HW Thermal Slowdown: Active" → GPU prea fierbinte fizic
# Monitorizare detaliată
nvidia-smi -q -d CLOCK | grep -i throttle
==== Rezolvare 2: Activează control manual ventilator (Coolbits) ====
Sursă: Arch Wiki NVIDIA, Linux Mint Forums
# Creează fișier xorg.conf pentru NVIDIA
sudo nano /etc/X11/xorg.conf.d/20-nvidia.conf
# Adaugă:
Section "Device"
Identifier "NVIDIA Card"
Driver "nvidia"
Option "Coolbits" "4"
EndSection
# Salvează, logout și login (sau restart X)
sudo systemctl restart display-manager
**Acum poți controla manual ventilatorul:**
# Instalează GreenWithEnvy (GUI pentru control fan)
# Fedora:
sudo dnf install gwe
# Ubuntu/Debian:
sudo apt install gwe
# Arch:
yay -S gwe
# Sau manual cu nvidia-settings (X11 only):
nvidia-settings -a "[gpu:0]/GPUFanControlState=1"
nvidia-settings -a "[fan:0]/GPUTargetFanSpeed=80"
==== Rezolvare 3: Reduce power limit ====
Sursă: justin.palpant.us, NVIDIA Developer Forums
# Verifică power limit actual și range-ul acceptat
nvidia-smi -q -d POWER
# Output exemplu:
# Power Limit : 95.00 W
# Min Power Limit : 60.00 W
# Max Power Limit : 115.00 W
# Setează un power limit mai mic (exemplu: 75W)
sudo nvidia-smi -pl 75
# Verifică efectul asupra temperaturii
watch -n 1 nvidia-smi
**Pentru a face permanent, creează serviciu systemd:**
sudo nano /etc/systemd/system/nvidia-power-limit.service
# Adaugă:
[Unit]
Description=Set NVIDIA Power Limit
After=nvidia-persistenced.service
[Service]
Type=oneshot
ExecStart=/usr/bin/nvidia-smi -pl 75
[Install]
WantedBy=multi-user.target
# Salvează, apoi:
sudo systemctl enable nvidia-power-limit.service
sudo systemctl start nvidia-power-limit.service
==== Rezolvare 4: Asigură-te că doar GPU dedicat e activ când joci ====
# Dezactivează iGPU în BIOS (dacă e posibil)
# SAU
# Folosește Prime pentru a dezactiva iGPU software
# Ubuntu/Debian:
sudo prime-select nvidia
# Verifică:
prime-select query # Ar trebui "nvidia"
==== Resurse ====
* [[https://justin.palpant.us/monitor-and-maximize-nvidia-gpu-performance-on-linux/|Maximizing NVIDIA GPU Performance on Linux]]
* [[https://wiki.archlinux.org/title/NVIDIA/Tips_and_tricks#Manual_fan_control|Arch Wiki - Manual Fan Control]]
* [[https://forums.linuxmint.com/viewtopic.php?t=273500|Linux Mint Forum - GPU Overheating]]
----
===== Problema 4: Driver-ul NVIDIA Nu Se Încarcă (Conflict cu Nouveau) =====
==== Simptome ====
* Ai instalat driver NVIDIA, dar nvidia-smi dă eroare
* ''lsmod | grep nvidia'' nu arată nimic
* ''lsmod | grep nouveau'' ARATĂ module nouveau
* Performance foarte slab (nouveau e mult mai slab decât NVIDIA proprietar)
==== Cauze ====
Driver open-source **nouveau** se încarcă în loc de driver proprietar NVIDIA.
==== Rezolvare: Blacklist Nouveau ====
Sursă: Arch Wiki NVIDIA, Gentoo Wiki
# Creează fișier blacklist
sudo nano /etc/modprobe.d/blacklist-nouveau.conf
# Adaugă:
blacklist nouveau
options nouveau modeset=0
# Salvează
# Update initramfs
# Ubuntu/Debian/Zorin:
sudo update-initramfs -u
# Fedora/RHEL:
sudo dracut --force
# Arch:
sudo mkinitcpio -P
# Reboot
sudo reboot
# Verifică după reboot:
lsmod | grep nouveau # NU trebuie să apară nimic!
lsmod | grep nvidia # Ar trebui să vezi nvidia, nvidia_drm, etc.
==== Resurse ====
* [[https://wiki.archlinux.org/title/NVIDIA#Installation|Arch Wiki - NVIDIA Installation]]
* [[https://wiki.gentoo.org/wiki/NVIDIA|Gentoo Wiki - NVIDIA]]
----
===== Problema 5: Wayland vs X11 =====
==== Simptome ====
* Screen tearing (imagine ruptă la scroll/gaming)
* Performance slab pe Wayland
* Aplicații nu pornesc sau crash-uiesc
* PRIME Render Offload nu funcționează
==== Context ====
NVIDIA pe Wayland e **încă problematic în 2026**, chiar și cu GBM support. X11 e mult mai stabil.
==== Rezolvare: Forțează X11 în loc de Wayland ====
# Pentru GDM (GNOME)
sudo nano /etc/gdm3/custom.conf # Ubuntu/Debian
# SAU
sudo nano /etc/gdm/custom.conf # Fedora
# Decomentează (șterge #):
WaylandEnable=false
# Salvează, logout și login
# Verifică că folosești X11:
echo $XDG_SESSION_TYPE # Ar trebui "x11"
**Pentru SDDM (KDE Plasma):**
KDE Plasma pe Wayland cu NVIDIA e OK din 2024+, dar dacă ai probleme:
La login screen, selectează "Plasma (X11)" în loc de "Plasma (Wayland)"
==== Resurse ====
* [[https://wiki.archlinux.org/title/GDM#Use_Xorg_backend|Arch Wiki - GDM Force Xorg]]
----
===== Problema 6: Secure Boot și DKMS =====
==== Simptome ====
* Driver NVIDIA nu se încarcă după boot
* Eroare: "Required key not available" în dmesg
* nvidia-smi: "NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver"
==== Cauze ====
**Secure Boot** blochează module kernel nesemnate (inclusiv NVIDIA).
==== Rezolvare 1: Dezactivează Secure Boot (cel mai simplu) ====
- Restart laptop/PC
- Intră în BIOS/UEFI (F2, F12, Delete - depinde de laptop)
- Caută "Secure Boot" în Security sau Boot menu
- Setează la "Disabled"
- Save & Exit
- Boot în Linux
==== Rezolvare 2: Semnează modulele NVIDIA pentru Secure Boot (avansat) ====
Sursă: Arch Wiki NVIDIA, Ubuntu Wiki SecureBoot
**Pe Ubuntu/Debian:**
# La instalarea driver-ului, MOK (Machine Owner Key) va fi generat automat
# Vei vedea un prompt să setezi o parolă pentru MOK
# La următorul boot:
# 1. Vei vedea ecran MOK Manager
# 2. Selectează "Enroll MOK"
# 3. Continuă și introdu parola setată
# 4. Reboot
# Verifică:
mokutil --sb-state # Ar trebui "SecureBoot enabled"
lsmod | grep nvidia # Modulele ar trebui încărcate
**Pe Fedora:**
Similar cu Ubuntu - DKMS va cere automat să înregistrezi key-ul la primul boot.
**Pe Arch:**
# Instalează dkms și generează keys
sudo pacman -S dkms
sudo dkms autoinstall
# Urmează ghidul de pe Arch Wiki pentru signing
==== Resurse ====
* [[https://wiki.archlinux.org/title/NVIDIA#DRM_kernel_mode_setting|Arch Wiki - NVIDIA DRM Mode Setting]]
* [[https://ubuntu.com/blog/how-to-sign-things-for-secure-boot|Ubuntu - How to Sign Things for Secure Boot]]
----
===== Verificare și Diagnostic =====
==== Comenzi utile pentru diagnostic ====
# === INFORMAȚII GENERALE ===
# GPU-uri disponibile
lspci | grep -i vga
lspci | grep -i nvidia
# Driver-e încărcate
lsmod | grep nvidia
lsmod | grep nouveau
# Versiune driver NVIDIA
nvidia-smi
cat /proc/driver/nvidia/version
# === NVIDIA OPTIMUS/PRIME ===
# Ce GPU renderează acum
glxinfo | grep "OpenGL renderer"
vulkaninfo | grep "deviceName"
# Status Prime (Ubuntu/Debian)
prime-select query
# Status Optimus Manager (Arch)
optimus-manager --print-mode
# === POWER MANAGEMENT ===
# Status GPU (suspended = oprit, active = pornit)
cat /sys/bus/pci/devices/0000:01:00.0/power/runtime_status
# Monitorizare detaliată
nvidia-smi -q -d PERFORMANCE
nvidia-smi -q -d POWER
nvidia-smi -q -d CLOCK
# === THERMAL ===
# Monitorizare live
watch -n 1 nvidia-smi
# Throttling reasons
nvidia-smi -q -d CLOCK | grep -i throttle
# === LOGS ===
# Errors NVIDIA în kernel
dmesg | grep -i nvidia
# Journal pentru nvidia services
journalctl -b | grep -i nvidia
# Xorg errors
cat /var/log/Xorg.0.log | grep -i error
cat /var/log/Xorg.0.log | grep -i nvidia
# === SUSPEND/RESUME ===
# Verifică servicii nvidia
systemctl status nvidia-suspend.service
systemctl status nvidia-resume.service
# Verifică parametri kernel
cat /proc/cmdline | grep nvidia
----
===== Resurse Utile =====
==== Documentație Oficială ====
* [[https://download.nvidia.com/XFree86/Linux-x86_64/535.54.03/README/|NVIDIA Linux Driver README]]
* [[https://us.download.nvidia.com/XFree86/Linux-x86_64/535.54.03/README/powermanagement.html|NVIDIA Power Management Documentation]]
==== Wiki-uri ====
* [[https://wiki.archlinux.org/title/NVIDIA|Arch Wiki - NVIDIA]]
* [[https://wiki.archlinux.org/title/NVIDIA_Optimus|Arch Wiki - NVIDIA Optimus]]
* [[https://wiki.archlinux.org/title/PRIME|Arch Wiki - PRIME]]
* [[https://wiki.gentoo.org/wiki/NVIDIA|Gentoo Wiki - NVIDIA]]
* [[https://wiki.debian.org/NVIDIA%20Optimus|Debian Wiki - NVIDIA Optimus]]
==== Forumuri și Community ====
* [[https://forums.linuxmint.com/|Linux Mint Forums]]
* [[https://bbs.archlinux.org/|Arch Linux Forums]]
* [[https://forums.developer.nvidia.com/c/gpu-graphics/linux/148|NVIDIA Developer Forums - Linux]]
* [[https://www.reddit.com/r/linux_gaming/|Reddit - r/linux_gaming]]
* [[https://www.reddit.com/r/archlinux/|Reddit - r/archlinux]]
==== Tool-uri Utile ====
* [[https://gitlab.com/leinardi/gwe|GreenWithEnvy (GWE)]] - GUI pentru control NVIDIA fan/overclock
* [[https://github.com/Askannz/optimus-manager|Optimus Manager]] - Switch între Intel/NVIDIA pe Arch
* [[https://github.com/Syllo/nvtop|nvtop]] - htop pentru GPU-uri NVIDIA
* [[https://github.com/wimpysworld/nvidia-prime-select|nvidia-prime-select]] - Switch GUI pentru Ubuntu
----
===== Concluzie =====
Problemele NVIDIA pe Linux sunt reale și datorate în mare parte naturii proprietare a driver-elor și suportului limitat pentru tehnologii hybrid graphics (Optimus). Cu toate acestea, **majoritatea problemelor au soluții** documentate în community.
==== Cele mai comune probleme și rezolvările lor rapide ====
^ Problemă ^ Rezolvare Rapidă ^
| Black screen după suspend | nvidia.NVreg_PreserveVideoMemoryAllocations=1 + nvidia-suspend.service |
| FPS-uri slabe | PRIME Render Offload sau prime-select nvidia |
| Supraîncălzire | Coolbits pentru fan control + nvidia-smi -pl |
| Driver nu se încarcă | Blacklist nouveau + Dezactivează Secure Boot |
| Wayland probleme | Forțează X11 |
**Pentru cei care vor stabilitate maximă:** Consideră [[https://pop.system76.com/|Pop!_OS]] - are propriul sistem de management NVIDIA (System76) care rezolvă majoritatea acestor probleme out-of-the-box.
{{tag>nvidia optimus noveau driver}}