Wie aktiviere ich die dynamische Energieverwaltungsfunktion von Radeon?

16

Vor kurzem wurden die RCs von Linux Kernel 3.11 veröffentlicht. Wie Sie vielleicht wissen, enthält dieser neue Kernel ein dynamisches Power-Management für Benutzer des Open-Source-Radeon-Treibers. Da ich Probleme mit der Energieverwaltung des Standardkerns von Ubuntu 13.04 habe, wollte ich dies ausprobieren.

Weiß jemand, wie man diese neue Funktion aktiviert, nachdem ich den neuesten Kernel RC von der Kernel Testing PPA heruntergeladen und installiert habe?

EDIT: Genauer gesagt spreche ich darüber: http://www.phoronix.com/scan.php?page=news_item&px=MTM5NjE

Gladen
quelle
3.11 wurde noch nicht veröffentlicht und Ubuntu hat bereits einen offiziellen Mirror? Das ist neu. Meinen Sie vielleicht den Kernel, der PPA testet ?
Mikewhatever
Ja, das meine ich! Ich habe den neuesten RC (RC2 zum Zeitpunkt des Schreibens) von dort heruntergeladen.
Gladen
1
@mikewhatever: bearbeitete die Frage, um es klarer zu machen. Meiner Meinung nach ist diese Frage überhaupt nicht unbeantwortet, ich spreche von der Installation eines neuen Kernels in der CURRENT Ubuntu-Version (13.04). Kann jemand bitte klären, warum diese Frage geschlossen ist?
Gladen
1
Du hast recht, dies sollte wieder geöffnet werden. Entschuldigung für die voreilige (falsche) Abstimmung zum Abschluss.
Tom Brossman
@Gladen - meinst du tlp? Dies beinhaltet normalerweise das Power-Management für Notebooks und den Stromverbrauch.
Dschinn1001

Antworten:

14

Update (8-05-2014): Wie erwartet ist DPM in Ubuntu 14.04 standardmäßig für alle modernen AMD-GPUs (HD 4000 bis HD 7000) aktiviert. Wenn Sie diese Version zusammen mit einer unterstützten Grafikkarte ausführen, müssen Sie nichts tun, um diese Funktion zu verwenden.

Update (28-11-2013): Ubuntu 13.10 wird standardmäßig mit dem 3.11-Kernel ausgeliefert. Wenn Sie diese Version verwenden, müssen Sie lediglich den Parameter zum Linux-Kernel hinzufügen. Ich habe den Leitfaden entsprechend aktualisiert. Außerdem sieht es so aus, als wäre DPM in Ubuntu 14.04 standardmäßig aktiviert. Hoffentlich ist diese Anleitung dann veraltet! ;)

Ok, in den letzten Tagen habe ich ein bisschen experimentiert und es aktiviert! Es ist eigentlich ganz einfach, wenn Sie erst einmal herausgefunden haben, wie es geht. Für Leute, die es auch ausprobieren möchten, erkläre ich jeden Schritt. Beginnend mit der Installation des neuen Kernels.

Zunächst ein paar Punkte zu beachten. Die Radeon DPM-Unterstützung gilt nur für Grafikkarten der Radeon HD 2000 (R600) -Serie und höher. Wenn Sie eine sehr alte ATI Radeon-Grafikkarte verwenden, ist die Energieverwaltungsunterstützung für den Open-Source-Treiber bereits ausgeschöpft.

Schritte nur für Ubuntu 13.04 oder niedriger:

Um Radeon DPM nutzen zu können, benötigen Sie den Linux 3.11-Kernel oder neuer. Sie können den Ubuntu-Kernel-PPA verwenden und das neueste stabile 3.11-Linux-Kernel-Image aus diesem kernel.ubuntu.com-Verzeichnis herunterladen . Alle zukünftigen Kernel-Updates sind ebenfalls in Ordnung und können dann auch in diesem Verzeichnis gefunden werden.

Für die Verwendung der dynamischen Energieverwaltungsfunktion ist eine aktualisierte Firmware für die Grafikkarte erforderlich. Der neueste Radeon-Mikrocode / die neueste Radeon-Firmware kann aus diesem Verzeichnis heruntergeladen werden . Sie benötigen die * _smc.bin- Dateien ab Juni. Wenn Sie sich nicht sicher sind, welchen Codenamen Ihre Grafikkarte hat, können Sie diesen im Allgemeinen anhand der Ausgabe von lspci -v | ermitteln less ... Die Datei (en) müssen in / lib / firmware / radeon abgelegt werden . Wenn Sie versuchen, Radeon DPM ohne die Firmware zu verwenden, wird die Beschleunigung für die GPU deaktiviert. Sie müssen auch sicherstellen, dass Sie die aktualisierte Firmware in / lib / firmware / radeon haben, bevor Sie den> 3.11-Kernel installieren - er wird automatisch in das installierte Image gezogen.

Ubuntu 13.10 oder niedriger oder Benutzer von Radeon HD 3000 oder niedriger:

Die Radeon DPM-Unterstützung ist unter Linux-Kernel 3.13 oder für ältere GPUs standardmäßig nicht aktiviert. Sie müssen den Parameter radeon.dpm = 1 zum Linux-Kernel hinzufügen , um ihn in diesen Fällen zu aktivieren. Die Schritte dazu unter Ubuntu finden Sie im Ubuntu-Wiki über die verschiedenen Möglichkeiten.

Wenn der neue Kernel installiert, die Firmware aktualisiert und die Kernel-Parameter aktiviert sind, sollten Sie einsatzbereit sein. Sie müssen nun Ihr System neu starten und können überprüfen, ob danach alles funktioniert

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

Hinweis: @ luca992 wies darauf hin, dass sich die Datei radeon_pm_info in einem anderen Verzeichnis befinden könnte (z. B. in / sys / kernel / debug / dri / 1 / anstelle von dri / 64 /). Wenn Sie absolut sicher sind, dass Sie alle Schritte korrekt ausgeführt haben, können Sie prüfen, ob dies in Ihrer Situation der Fall sein könnte.

Sie sollten so etwas sehen:

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

Sie können DPM weiter konfigurieren, indem Sie /etc/rc.local öffnen und die folgende Zeile hinzufügen:

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

Wo "Parameter" sein kann:

  • Batterie (eine Reihe von Leistungsstufen für einen optimalen Batteriebetrieb)
  • ausgewogen (eine Reihe von Leistungsniveaus, die für einen optimalen täglichen Gebrauch ausgelegt sind)
  • Leistung (eine Reihe von Leistungsstufen, die auf die höchste GPU-Leistung abzielen)

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

Gladen
quelle
1
Muss sagen .. die Akkulaufzeit auf meinem Laptop ist jetzt genauso gut wie bei den proprietären Treibern. Außerdem sollte die Leistung ein bisschen besser sein, da bei höheren Lasten höhere Geschwindigkeiten erreicht werden können. Ich bin beeindruckt von den Ergebnissen!
Gladen
Wenn Sie bekommen command not found: glxinfo. Dann ist es nicht installiert. Zum Installieren machen Sie sudo apt-get install mesa-utils.
Meshy
Wie heißt das zu installierende apt-Paket?
Entea
"Wenn Sie diese Version zusammen mit einer unterstützten Grafikkarte ausführen, müssen Sie nichts tun, um diese Funktion zu verwenden." - Ausgenommen, die Standardeinstellung ist "Ausgeglichen". Wenn Sie den Stromverbrauch minimieren möchten, möchten Sie möglicherweise auf "Batterie" umschalten.
Otus
In 15.04 (Radeon HD 4850) /sys/class/drm/card0/device/power_methodheißt es profileund wird nur akzeptiert, dynamicwenn dies auch in der Kernel-Befehlszeile aktiviert ist.
Sam Brightman
6

Ok, ich gehe davon aus, dass Sie bereits den Kernel 3.11-GIT und eine r6xx-SI oder neuere ATI-Karte haben. Von da an müssen Sie nur noch radeom.dpm=1 einen Kernelmodul-Parameter hinzufügen und DPM sollte aktiviert sein.

Dies kann entweder im GRUB-Parameter oder in der /etc/default/grubDatei write erfolgen

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

Oder in einer .confDatei unter Ihrem /etc/modprobeVerzeichnis:

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"

Zitat aus den Quellen:

Der AMD Radeon-Treiber hat endlich Unterstützung für dynamisches Power-Management! Bei Radeon-GPUs passen sich der Kerntakt und der Speichertakt (zusammen mit den Spannungen) dynamisch an die Last an. Dies funktioniert bei Konfigurationen mit mehreren Monitoren und entspricht nahezu den Funktionen von PowerPlay und den Funktionen des AMD Catalyst-Treibers. Dies ist ein großer Gewinn für die Einsparung von Energie / Batterie bei Verwendung des Open-Source-Treibers Radeon Linux und bietet eine bessere Leistung für neuere GPUs mit einer Boot-Taktrate, die niedriger ist als ihre Nennfrequenzen. Diese Unterstützung geht auf Radeon HD 2000 (R600) -GPUs zurück, ist jedoch derzeit nicht standardmäßig aktiviert, erfordert jedoch die Einstellung von radeon.dpm = 1.

Quellen:

Braiam
quelle
nicht vergessen: 'sudo update-grub' nach 'GRUB_CMDLINE_LINUX_DEFAULT = "quiet radeon.dpm = 1"'
Frank
Alter, Sie haben keine Ahnung, wie hilfreich dies für mich war, um eine ATI HD 4890-Grafikkarte auf Manjaro zu reparieren. DANKE.
TheFrack
1

Falls TLP Ihren Vorstellungen entspricht:

sudo add-apt-repository ppa: linrunner / tlp

sudo apt-get update

sudo apt-get install tlp tlp-rdw

Für Thinkpads ist es:

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

Wenn ich nicht falsch liege - tlp ist nicht direkt von der Kernel-Version abhängig - hängt es mehr von der Hardware ab. Zwischen Kernel 3.11 und Kernel 3.10 gibt es keine gravierenden Unterschiede.

In Artikel von Phoronix ist über die neuen Änderungen in Kernel 3.11 aufgeführt:

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

In 3.11 gibt es jedoch keine Änderungen bezüglich der Energieverwaltung im Allgemeinen.

Ich denke, die dynamischen Power-Management-Änderungen für Radeon wirken sich nur auf die Unterstützung bei der Stromversorgung der Grafikkarte aus.

Nach der Installation soll tlp beginnen mit:

sudo tlp start

dschinn1001
quelle
1
Danke für die Antwort! Aber genau das meine ich nicht. Es gibt tatsächlich Power - Management , wie Sie in diesem Artikel auf Phoronix zu lesen: phoronix.com/scan.php?page=news_item&px=MTM5NjE
Gladen
1

Zusätzlich zu Gladens Antwort dachte ich, ich würde mich zusätzlich dazu verpflichten, zu überprüfen, ob dpm funktioniert, um anderen ein wenig Frust zu ersparen.

In meinem Fall

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

existiert nicht, also dachte ich, dpm würde nicht funktionieren.

Anscheinend befindet sich diese Datei jedoch nur in verschiedenen Ordnern für mich.

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

oder

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

beide existieren und listen die gleichen Informationen auf.

luca992
quelle
es ist jetzt/sys/kernel/debug/dri/0/amdgpu_pm_info
brauliobo
0

Als ich die Antwort von @Gladen weiterverfolgte, fand ich das

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

hat nicht funktioniert. Ein kurzer ls -l /sys/class/drm/Blick zeigte mir, dass sich card0 auf die integrierte Karte und card1 auf die diskrete Karte bezieht. So funktioniert bei mir auf card1 folgendes:

$ 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
# 
Danimal
quelle