====== 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}}