21 settembre 2015

NVIDIA e Linux: Impostare manualmente il livello di performance del PowerMizer




Disclaimer: questa guida è per utenti medio esperti che sanno cosa stanno facendo, utente avvisato, blogger salvato 

La gestione dei driver video sui sistemi operativi GNU/Linux è sempre una incognita. Questo purtroppo è un dato di fatto: c'è chi ha la fortuna di avere una scheda pienamente supportata (dagli open o dai proprietari) e chi invece si ritrova con delle schede video non pienamente supportate.
Io sono uno di quegli sfigati.
La mia scheda Nvidia GT 545 soffre di svariati problemi sotto Linux: il primo di questi riguarda il tearing durante la riproduzione dei video (problema che fortunatamente sono riuscito a risolvere su quasi tutti i DE con questa guida), l'altro riguarda l'eccessivo calore sprigionato durante l'uso e il conseguente rumore della ventola della scheda video che è costretta (poverina) a lavorare a pieno regime. Ovviamente tutto questo non accade quando riavvio il sistema sulla partizione equipaggiata con Windows dove il tutto è gestito in maniera ottimale (oltretutto su Windows posso usare gli ultimi driver nvdia, su Linux son costretto ad usare i 304 legacy).
Voi non ci crederete, ma negli scorsi giorni sono arrivato anche a 91 gradi centigradi subito dopo aver installato Antergos e son stato costretto a spegnere il PC per cercare di raffreddare il tutto (oltre che per dare ristoro alle mie povere orecchie).

Da cosa dipende tutto questo? Dalla gestione del PowerMizer, una tecnologia sviluppata da NVIDIA che gestisce in maniera dinamica l'alimentazione della GPU. Tale tecnologia è pensata per ridurre lo spreco di energia sui notebook.
Cosa accade però sul mio fisso con Linux? A causa del PowerMizer la scheda parte subito con le impostazioni massime del Clock per poi iniziare un balletto infinito fra i tre livelli preimpostati di clock; questo balletto continuo fa surriscaldare la scheda video che, in condizioni di utilizzo medio (navigazione e visione di video) può arrivare a toccare anche i 91 °C con una temperatura media di 75 °C e la ventola della GPU sempre in funzione al massimo dei giri.
Capirete bene che a lungo andare questo sia uno stress sia per la scheda video che per le nostre orecchie.
La soluzione che ho trovato per risolvere questo problema è quella di impostare manualmente il livello del PowerMizer fissandolo perennemente (sempre sia lodato il forum di ArchLinux). Grazie a questo escamotage, impostando il tutto al livello medio, le temperature di esercizio si mantengono sui 61 °C con picchi massimi di 67 °C. Oltre a questo la ventola torna ad essere silenziosa ai livelli di Windows.


Vediamo dunque come fare. La prima cosa da fare è generare il file di configurazione di Xorg. Da terminale diamo:

sudo nvidia-xconfig

Il file verrà generato automaticamente. Ora dobbiamo andare a modificarlo aggiungendo alcune righe. Andiamo ad aprirlo con il nostro editor di testo preferito.
Nel mio caso, visto che sono su GNOME, ho utilizzato Gedit

sudo gedit /etc/X11/xorg.conf

(ovviamente vi basterà sostituire gedit con il nome dell'editor che volete utilizzare).
Andiamo ad individuare la stringa Section "Device". All'interno di essa e prima della relativa voce EndSection, andiamo ad aggiungere la seguente stringa




Option "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x2222; PowerMizerLevel=0x2; PowerMizerDefault=0x2; PowerMizerDefaultAC=0x2"

salviamo il tutto e riavviamo il sistema. 
La stringa che abbiamo appena aggiunto ci consentirà di impostare al livello medio il PowerMizer (Performance Level 1).


Se volete cambiare il settaggio e impostare al livello 0 le performance vi basterà impostare la stringa come segue:

Option "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x2222; PowerMizerLevel=0x3; PowerMizerDefault=0x3; PowerMizerDefaultAC=0x3"

Viceversa, se siete masochisti e volete stressare la vostra GPU impostandola sempre al massimo dovrete impostare la stringa nel seguente modo:

Option "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x2222; PowerMizerLevel=0x1; PowerMizerDefault=0x1; PowerMizerDefaultAC=0x1"

Caso particola su Fedora che non ha il file xorg.conf

Fedora non fa uso del file Xorg.conf, per questo motivo sarà necessario crearlo manualmente. Nel mio caso ne ho fatto uno al volo copiando il contenuto del file /etc/X11/nvidia-xorg.conf aggiungendo uno delle suddette righe. Agite nel seguente modo.
Da terminale date

sudo gedit /etc/X11/xorg.conf

e nel file xorg mettete le righe che avete copiato dal file /etc/X11/nvidia-xorg.conf aggiungendo il resto. Nel mio caso diventa

Section "Device"
Identifier  "Videocard0"
Driver      "nvidia"
        Option "RegistryDwords" "PowerMizerEnable=0x1; PerfLevelSrc=0x2222; PowerMizerLevel=0x2; PowerMizerDefault=0x2; PowerMizerDefaultAC=0x2"
EndSection


Caso particola su Manjaro che non ha il file xorg.conf

Se ci troviamo su Manjaro dovremo andare a modificare il file /etc/X11/xorg.conf.d/90-mhwd.conf con il nostro editor di testo preferito. Ad esempio se ci troviamo su Manjaro KDE possiamo dare:

sudo kate /etc/X11/xorg.conf.d/90-mhwd.conf

Nessun commento:

Posta un commento

Licenza
Licenza Creative Commons

Quest' opera è distribuita con licenza Creative Commons Attribuzione - Non commerciale - Non opere derivate 3.0 Unported. Questo blog non rappresenta una testata giornalistica, in quanto viene aggiornato senza alcuna periodicità. Non può, pertanto, considerarsi un prodotto editoriale, ai sensi della legge n. 62 del 7/03/2001

Disclaimer immagini

Le immagini utilizzate in questo blog appartengono ai loro rispettivi autori e sono utilizzati per scopi educativi, personali e senza scopo di lucro. Ogni eventuale violazione del copyright non è intenzionale, ma se si riconosce un'immagine protetta da copyright, fatemelo sapere qui, e sarò lieto di aggiungere i credits o modificarla o rimuoverla.

Disclaimer images

Images used on this blog belong to their respective authors and are used for educational, personal and no profit purposes. Any eventual copyright infringement is not intentional, but if you recognize a copyrighted image, please let me know here, and I'll happily provide to add the right credits or modify or remove it.