Come abilitare la funzione di gestione energetica dinamica di Radeon?


16

Di recente, sono stati rilasciati gli RC di Linux Kernel 3.11. Come forse saprai, questo nuovo kernel ha una gestione dinamica dell'alimentazione per gli utenti del driver Radeon open source. Poiché ho problemi di gestione dell'alimentazione con il kernel predefinito di Ubuntu 13.04, ho voluto provare questo.

Qualcuno sa come abilitare questa nuova funzionalità dopo che ho scaricato e installato l'ultimo kernel RC dal Kernel Testing PPA?

EDIT: Più specificamente, sto parlando di questo: http://www.phoronix.com/scan.php?page=news_item&px=MTM5NjE


3.11 non è stato ancora rilasciato e Ubuntu ha già un mirror ufficiale? Questo è nuovo Intendi forse il kernel testare PPA ?
mikewhatever,

Sì, è quello che intendo! Ho scaricato l'ultimo RC (rc2 al momento della scrittura) da lì.
Gladen,

1
@mikewhatever: modificata la domanda per renderla più chiara. A mio avviso questa domanda non è affatto fuori tema, sto parlando dell'installazione di un nuovo kernel nella versione CORRENTE di Ubuntu (13.04). Qualcuno può chiarire perché questa domanda è chiusa?
Gladen,

1
Hai ragione, questo dovrebbe essere riaperto. Ci scusiamo per il voto affrettato (errato) da chiudere.
Tom Brossman,

@Gladen - intendi tlp? Ciò comporta normalmente la gestione dell'alimentazione per l'accusa di notebook e gestisce anche l'utilizzo del potere.
dschinn1001,

Risposte:


14

Aggiornamento (8-05-2014): Come previsto, in Ubuntu 14.04 DPM è abilitato di default per tutte le moderne GPU AMD (da HD 4000 a HD serie 7000). Se si esegue questa versione insieme a una scheda grafica supportata, non è necessario fare nulla per utilizzare questa funzione.

Aggiornamento (28-11-2013): Ubuntu 13.10 viene fornito con il kernel 3.11 per impostazione predefinita. Quindi, se stai usando questa versione, tutto ciò che devi fare è aggiungere il parametro al kernel Linux. Ho aggiornato la guida di conseguenza. Inoltre, sembra che da Ubuntu 14.04, DPM sarà abilitato di default, quindi spero che questa guida sia obsoleta da allora! ;)

Ok, negli ultimi giorni ho sperimentato un po 'e l'ho abilitato! In realtà è davvero facile una volta che hai scoperto come farlo .. Per le persone che vogliono anche provarlo, ti spiego ogni passo. A partire dall'installazione del nuovo kernel.

Prima di tutto alcuni punti da considerare. Il supporto RPM DPM è solo per le schede grafiche serie Radeon HD 2000 (R600) e successive. Se si utilizza una scheda grafica ATI Radeon molto vecchia, il supporto per la gestione dell'alimentazione è già attivato sul driver open source.

Passaggi solo per Ubuntu 13.04 o precedenti:

Per utilizzare Radeon DPM è necessario il kernel Linux 3.11 o più recente. È possibile utilizzare il PPA del kernel mainline di Ubuntu e scaricare l'immagine del kernel Linux 3.11 stabile più recente da questa directory kernel.ubuntu.com . Anche eventuali futuri aggiornamenti del kernel vanno bene e possono anche essere trovati in questa directory.

L'uso della funzione di gestione dinamica dell'alimentazione richiede un firmware aggiornato per la scheda grafica. L'ultimo microcodice / firmware Radeon può essere scaricato da questa directory . Sono necessari i file * _smc.bin da giugno. Se non sei sicuro del tuo specifico nome in codice della scheda grafica, puoi generalmente trovarlo guardando l'output di lspci -v | less ... I file devono essere inseriti all'interno / lib / firmware / radeon . Se si tenta di utilizzare Radeon DPM senza il firmware, l'accelerazione verrà disabilitata per la GPU. Devi anche assicurarti di avere il firmware aggiornato in / lib / firmware / radeon prima di installare il kernel> 3.11 - verrà tirato automagicamente nell'immagine installata.

Ubuntu 13.10 o versioni precedenti o utenti di Radeon HD 3000 o versioni precedenti:

Il supporto RPM DPM non è abilitato per impostazione predefinita al di sotto del kernel 3.13 di Linux o per GPU precedenti. È necessario aggiungere il parametro radeon.dpm = 1 al kernel Linux per abilitarlo in questi casi. Per i passaggi per farlo su Ubuntu, consultare il Wiki Ubuntu sui diversi modi.

Con il nuovo kernel installato, il firmware aggiornato e il parametro Kernel abilitato dovresti essere pronto. Ora devi riavviare il sistema e puoi controllare se tutto funziona dopo

cat / sys / kernel / debug / dri / 64 / radeon_pm_info

Nota: @ luca992 ha sottolineato che il file radeon_pm_info potrebbe trovarsi in una directory diversa (ad esempio in / sys / kernel / debug / dri / 1 / anziché dri / 64 /). Se sei assolutamente sicuro di aver seguito correttamente tutti i passaggi, puoi verificare se questo potrebbe essere il caso nella tua situazione.

Dovresti vedere qualcosa del genere:

uvd    vclk: 0 dclk: 0
power level 0    sclk: 22000 mclk: 25000 vddc: 900

È possibile configurare ulteriormente DPM aprendo /etc/rc.local e aggiungendo la seguente riga:

echo parameter > /sys/class/drm/card0/device/power_dpm_state

Dove "parametro" può essere:

  • batteria (una serie di livelli prestazionali mirati per un funzionamento ottimale della batteria)
  • bilanciato (un insieme di livelli prestazionali mirati per un uso quotidiano ottimale)
  • performance (un insieme di livelli di performance mirati per le massime prestazioni della GPU)

Fonti: http://www.botchco.com/agd5f/?p=57


1
Devo dire che la durata della batteria del mio laptop ora è buona come quella dei driver proprietari. Inoltre, le prestazioni dovrebbero essere un po 'migliori come effetto collaterale della capacità di ripristinare le velocità più elevate su carichi più pesanti. Sono impressionato dai risultati!
Gladen,

Se ottieni command not found: glxinfo. Quindi non è installato. Per installare, fare sudo apt-get install mesa-utils.
meshy

Qual è il nome del pacchetto apt che deve essere installato?
Entea,

"Se si esegue questa versione insieme a una scheda grafica supportata, non è necessario fare nulla per utilizzare questa funzione." - Tranne che l'impostazione predefinita è "bilanciata", quindi potresti voler passare a "batteria" se vuoi ridurre al minimo il consumo di energia.
otus,

Nel 15.04 (Radeon HD 4850) /sys/class/drm/card0/device/power_methoddice profilee non accetterà dynamicse non abilitato anche dalla riga di comando del kernel.
Sam Brightman,

6

Ok, partirò dalla presunzione che tu abbia già il kernel 3.11-GIT e abbia una scheda ATI r6xx-SI o più recente. Da lì in poi, devi solo aggiungereradeom.dpm=1 come parametro del modulo del kernel e DPM dovrebbe essere attivato.

Potrebbe essere nel parametro GRUB, nella /etc/default/grubscrittura del file

GRUB_CMDLINE_LINUX_DEFAULT="quiet radeon.dpm=1"
sudo update-grub

O in un .conffile nella tua /etc/modprobedirectory:

sudo su -
touch /etc/modprobe.d/radeon-dpm.conf
echo options radeon dpm=1 > /etc/modprobe.d/radeon-dpm.conf 
cat /etc/modprobe.d/radeon-dpm.conf 
# will output "options radeon dpm=1"

Citazione dalle fonti:

Il driver AMD Radeon ha finalmente il supporto dinamico per la gestione dell'alimentazione! Per le GPU Radeon, il core clock e i memory clock si regolano dinamicamente (insieme alle tensioni) in base al carico, questo funziona per configurazioni multi-monitor ed è quasi alla pari con ciò che viene fornito da PowerPlay e le funzionalità del driver AMD Catalyst. Questa è una grande vittoria per il risparmio di energia / batteria quando si utilizza il driver open source Radeon Linux e offre prestazioni migliori per le GPU più recenti che hanno una velocità di avvio inferiore alle loro frequenze nominali. Questo supporto risale alle GPU Radeon HD 2000 (R600) ma al momento non è abilitato per impostazione predefinita ma richiede l'impostazione di radeon.dpm = 1.

fonti:


non dimenticare: 'sudo update-grub' dopo aver eseguito 'GRUB_CMDLINE_LINUX_DEFAULT = "quiet radeon.dpm = 1"'
Frank,

amico, non hai idea di quanto sia stato utile per me riparare una scheda grafica ATI HD 4890 su Manjaro. GRAZIE.
TheFrack il

1

Nel caso in cui tlp soddisfi le tue intenzioni:

sudo add-apt-repository ppa: linrunner / tlp

sudo apt-get update

sudo apt-get install tlp tlp-rdw

Per i thinkpad è:

sudo apt-get install tp-smapi-dkms acpi-call-tools

Quando non sbaglio - tlp non dipende immediatamente dalla versione del kernel - dipende più dall'hardware. Tra il kernel 3.11 e il kernel 3.10 non ci sono differenze selvagge.

Nell'articolo di phoronix sono elencati i nuovi cambiamenti nel kernel 3.11:

http://www.phoronix.com/scan.php?page=news_item&px=MTQwODk

Ma in 3.11 non ci sono cambiamenti sulla gestione del potere in generale.

Penso che i cambiamenti dinamici di gestione dell'alimentazione per Radeon influenzino solo il supporto con l'alimentazione della scheda grafica.

Dopo l'installazione tlp deve iniziare con:

sudo tlp start


1
Grazie per la risposta! Ma non è esattamente quello che intendo. Esiste effettivamente la gestione del risparmio energetico, come puoi leggere in questo articolo su Phoronix: phoronix.com/scan.php?page=news_item&px=MTM5NjE
Gladen,

1

Oltre alla risposta di Gladen, ho pensato di impegnarmi di più sulla verifica del funzionamento di dpm per risparmiare un po 'di frustrazione agli altri.

Nel mio caso

cat /sys/kernel/debug/dri/64/radeon_pm_info

non esiste quindi ho pensato che dpm non funzionasse.

Comunque apparentemente quel file è solo in diverse cartelle per me.

cat /sys/kernel/debug/dri/65/radeon_pm_info

o

cat /sys/kernel/debug/dri/1/radeon_pm_info

entrambi esistono ed elencano le stesse informazioni.


è ora/sys/kernel/debug/dri/0/amdgpu_pm_info
brauliobo

0

In seguito alla risposta di @Gladen, l'ho scoperto

echo parameter > /sys/class/drm/card0/device/power_dpm_state

non ha funzionato. Un rapido ls -l /sys/class/drm/mi ha mostrato che card0 si riferisce alla scheda integrata e card1 alla scheda discreta. Quindi il seguente funziona per me su card1:

$ sudo -i

# cat /sys/class/drm/card1/device/power_dpm_state
balanced
# cat /sys/class/drm/card1/device/power_dpm_force_performance_level  
auto
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 15700 mclk: 20000 vddc: 900 vddci: 0
#
# echo "battery" > /sys/class/drm/card1/device/power_dpm_state
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 15700 mclk: 20000 vddc: 900 vddci: 0
#
# echo "low" > /sys/class/drm/card1/device/power_dpm_force_performance_level  
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 15700 mclk: 20000 vddc: 900 vddci: 0
# echo "performance" > /sys/class/drm/card1/device/power_dpm_state
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 15700 mclk: 20000 vddc: 900 vddci: 0
# echo "high" > /sys/class/drm/card1/device/power_dpm_force_performance_level  
-bash: echo: write error: Invalid argument
# # Not sure why the above happened!?
#
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 2    sclk: 75000 mclk: 80000 vddc: 1120 vddci: 0
# echo "high" > /sys/class/drm/card1/device/power_dpm_force_performance_level  
#
# echo "battery" > /sys/class/drm/card1/device/power_dpm_state
# cat /sys/kernel/debug/dri/1/radeon_pm_info
uvd    vclk: 0 dclk: 0
power level 0    sclk: 15700 mclk: 20000 vddc: 900 vddci: 0
# 
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.