[gelöst] CPU-Undervolting: PHC-Patch noch nötig?
[gelöst] CPU-Undervolting: PHC-Patch noch nötig?
Hallo,
Ich möchte gern die Kernspannung einer Notebook-CPU (Core2Duo T7600) reduzieren. Aus grauer Vorzeit erinnere ich mich an Linux-PHC zum Undervolting von CPUs unter Linux.
Ist das immer noch der bevorzugte Weg wie man sowas macht? Und falls ja, muss ich den Debian-Kernel (Wheezy bzw. Jessie) noch selbst patchen oder ist der inzwischen von Hause aus PHC-fähig?
Alles was ich dazu im Netz finde ist tendenziell ziemlich alt und teils widersprüchlich bezüglich Debian. Die Ubuntianer haben ihren Distributionskernel wohl diesbezüglich gepatcht[1] und vom Zeitpunkt her könnte das sogar noch gerade so für den Wheezy-Freeze gereicht haben falls man das hätte übernehmen wollen.
Hat dazu jemand Infos?
[1] https://bugs.launchpad.net/ubuntu/+sour ... bug/984288
Ich möchte gern die Kernspannung einer Notebook-CPU (Core2Duo T7600) reduzieren. Aus grauer Vorzeit erinnere ich mich an Linux-PHC zum Undervolting von CPUs unter Linux.
Ist das immer noch der bevorzugte Weg wie man sowas macht? Und falls ja, muss ich den Debian-Kernel (Wheezy bzw. Jessie) noch selbst patchen oder ist der inzwischen von Hause aus PHC-fähig?
Alles was ich dazu im Netz finde ist tendenziell ziemlich alt und teils widersprüchlich bezüglich Debian. Die Ubuntianer haben ihren Distributionskernel wohl diesbezüglich gepatcht[1] und vom Zeitpunkt her könnte das sogar noch gerade so für den Wheezy-Freeze gereicht haben falls man das hätte übernehmen wollen.
Hat dazu jemand Infos?
[1] https://bugs.launchpad.net/ubuntu/+sour ... bug/984288
Zuletzt geändert von hikaru am 02.04.2015 22:55:31, insgesamt 1-mal geändert.
Re: CPU-Undervolting: PHC-Patch noch nötig?
Ich löse mal auf:
Kernel patchen ist nicht nötig, nur das Modul muss man sich selbst bauen. Dazu muss man erstmal das passende finden, und zwar das tar.bz2 von hier [1]. (AMD-Nutzer nehmen wohl das erste von hier [2].)
Das Bauen ist (grundlegende Buildumgebung vorausgesetzt) denkbar einfach. Im README.1st steht dazu das:
Nachdem man das Paket installiert hat schmeißt man noch das acpi-cpufreq-Modul raus und lädt stattdessen phc-intel. Danach kann man fröhlich versuchen seine CPU an die Grenzen zu treiben.
Bei mir läuft zu dem Zweck gerade mprimes [3] Small-FFT-Test während ich die Spannung nach und nach absenke indem ich immer kleinere Werte nach /sys/devices/system/cpu/cpu*/cpufreq/phc_vids schreibe und dabei im Auge behalte ob mprime meckert.
Standardmäßig habe ich beim T7600 diese Anfangswerte:Nach der ersten halben Stunde scheint das bei meinem T7600 stabil zu sein:Die 34 für die zweithöchste Taktstufe würde ich später der Form halber natürlich auch noch anpassen, falls mprime bis morgen nicht meckert.
Die CPU-Temperatur ist im Vergleich zur Originaleinstellung um etwa 9°C von 84 auf 75°C gesunken.
[1] http://linux-phc.org/forum/viewtopic.php?f=7&t=267
[2] http://linux-phc.org/forum/viewtopic.php?f=13&t=2
[3] http://www.mersenne.org/download/
Kernel patchen ist nicht nötig, nur das Modul muss man sich selbst bauen. Dazu muss man erstmal das passende finden, und zwar das tar.bz2 von hier [1]. (AMD-Nutzer nehmen wohl das erste von hier [2].)
Das Bauen ist (grundlegende Buildumgebung vorausgesetzt) denkbar einfach. Im README.1st steht dazu das:
Als Debianer also beherzt ein make dkms_mkdeb abgesetzt und es entsteht ein schönes dkms-Debianpaket.3. Don't cheat your package management
make dkms_mkdeb
or
make dkms_mkrpm
Nachdem man das Paket installiert hat schmeißt man noch das acpi-cpufreq-Modul raus und lädt stattdessen phc-intel. Danach kann man fröhlich versuchen seine CPU an die Grenzen zu treiben.
Bei mir läuft zu dem Zweck gerade mprimes [3] Small-FFT-Test während ich die Spannung nach und nach absenke indem ich immer kleinere Werte nach /sys/devices/system/cpu/cpu*/cpufreq/phc_vids schreibe und dabei im Auge behalte ob mprime meckert.
Standardmäßig habe ich beim T7600 diese Anfangswerte:
Code: Alles auswählen
# cat /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
39 34 29 24 19
Code: Alles auswählen
# cat /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
31 34 29 24 19
Die CPU-Temperatur ist im Vergleich zur Originaleinstellung um etwa 9°C von 84 auf 75°C gesunken.
[1] http://linux-phc.org/forum/viewtopic.php?f=7&t=267
[2] http://linux-phc.org/forum/viewtopic.php?f=13&t=2
[3] http://www.mersenne.org/download/
Re: [gelöst] CPU-Undervolting: PHC-Patch noch nötig?
Nachtrag:
Ich bin jetzt zu diesem Ergebnis gekommen:
Die dazugehörigen Frequenzen sehen so aus:Im Ubuntuusers-Wiki [1] gibt es eine Umrechnungstabelle der VIDs in Spannungen:
U = 700.0 mV + VID * 16 mV
Damit komme ich also auf diese Spannungen in mV:
In Anbetracht des vergleichsweise enormen Spannungsbedarfs für 2,33GHz wäre also zu überlegen, die CPU auf 2GHz zu drosseln:
Die Grundspannung lässt sich bei Core2-CPUs nicht absenken. Zwar lassen sich niedrigere Werte schreiben, allerdings werden diese nicht umgesetzt. Zur Überprüfung gibt es ein Python-Script namens read_msr.py, welches ebenfalls im linux-phc-Forum verfübar ist. [2]
Die Ausgabe sieht bei mir aktuell so aus:Schön zu sehen ist, dass die TARGET-VID für cpu1 hier niedriger ist als die CURRENT-VID. Das liegt in dem Fall daran, dass ich versucht habe beide Kerne mit unterschiedlichen VIDs anzusprechen, was aber nicht funktioniert, da offenbar die Kerne nicht getrennt versorgt werden und so immer der Wert für cpu0 gilt.
Stellt man VIDs <19 ein ist das Bild ähnlich. Die TARGET-VID wird diesen Wert annehmen, die CURRENT_VID allerdings nicht.
Das führt wiederum zur Überlegung, die Minimalfrequenz auf 1,67GHz anzuheben:
Wenn niedrigere Frequenzen ohnehin genauso viel Strom verbrauchen, dann kann man auch den höheren Takt fahren um die CPU früher wieder in einen Sleep-State zu führen und somit insgesamt weniger Strom zu verbrauchen.
Meine CPU läuft idle mit dieser Einstellung bei 43°C. Vor der ganzen Undervolting-Aktion waren es etwa 55°C, beides ohne Lüfter.
[1] http://wiki.ubuntuusers.de/Archiv/Proze ... te-in-Volt
[2] http://www.linux-phc.org/forum/viewtopic.php?f=13&t=13
Ich bin jetzt zu diesem Ergebnis gekommen:
Code: Alles auswählen
# cat /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
31 22 19 19 19
Code: Alles auswählen
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
2333000 2000000 1667000 1333000 1000000
U = 700.0 mV + VID * 16 mV
Damit komme ich also auf diese Spannungen in mV:
Code: Alles auswählen
1196 1052 1023 1023 1023
Code: Alles auswählen
echo 2000000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
Die Ausgabe sieht bei mir aktuell so aus:
Code: Alles auswählen
# ./read_msr.py --readmsr
MSRTOOL V0.2pre-3 started...
[cpu0] [CURRENT] FID:14 HID:0 DID:0 VID:31
[cpu0] [TARGET] FID:14 HID:0 DID:0 VID:31
[cpu0] [HIGHEST] FID:14 (HID:0 DID:0) VID:39 (not sure if they exist here)
[cpu0] [LOWEST] FID:6 (HID:0 DID:0) VID:19 (not sure if they exist here)
[cpu0] [SLFM] FID:6 VID:19
[cpu0] [IDA] FID:14 VID:39
[cpu0] [CURRENTLY ACTIVE FEATURES] IDA:64 EIST:1
[cpu1] [CURRENT] FID:14 HID:0 DID:0 VID:31
[cpu1] [TARGET] FID:14 HID:0 DID:0 VID:30
[cpu1] [HIGHEST] FID:14 (HID:0 DID:0) VID:39 (not sure if they exist here)
[cpu1] [LOWEST] FID:6 (HID:0 DID:0) VID:19 (not sure if they exist here)
[cpu1] [SLFM] FID:6 VID:19
[cpu1] [IDA] FID:14 VID:39
[cpu1] [CURRENTLY ACTIVE FEATURES] IDA:64 EIST:1
Stellt man VIDs <19 ein ist das Bild ähnlich. Die TARGET-VID wird diesen Wert annehmen, die CURRENT_VID allerdings nicht.
Das führt wiederum zur Überlegung, die Minimalfrequenz auf 1,67GHz anzuheben:
Code: Alles auswählen
echo 1667000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
Meine CPU läuft idle mit dieser Einstellung bei 43°C. Vor der ganzen Undervolting-Aktion waren es etwa 55°C, beides ohne Lüfter.
[1] http://wiki.ubuntuusers.de/Archiv/Proze ... te-in-Volt
[2] http://www.linux-phc.org/forum/viewtopic.php?f=13&t=13
Re: [gelöst] CPU-Undervolting: PHC-Patch noch nötig?
Hi,
ich hab es jetzt auch mal zum testen nach der Anleitung von hikaru installiert.
Jedoch bomme ich bei cat /sys/devices/system/cpu/cpu0/cpufreq/phc_vids nur:
0 0 0 0 0 0 0 0 0 0 0 0 0
angezeigt.
Woran könnte das liegen. Bei mir läuft Jessie mit dem 4.3.0-0.bpo.1-amd64 Kernel.
ich hab es jetzt auch mal zum testen nach der Anleitung von hikaru installiert.
Jedoch bomme ich bei cat /sys/devices/system/cpu/cpu0/cpufreq/phc_vids nur:
0 0 0 0 0 0 0 0 0 0 0 0 0
angezeigt.
Woran könnte das liegen. Bei mir läuft Jessie mit dem 4.3.0-0.bpo.1-amd64 Kernel.
Re: [gelöst] CPU-Undervolting: PHC-Patch noch nötig?
Welche CPU läuft bei dir?
Re: [gelöst] CPU-Undervolting: PHC-Patch noch nötig?
Ein Intel I3 (4030U)
Re: [gelöst] CPU-Undervolting: PHC-Patch noch nötig?
PHC funktioniert nur bis zur Core2Duo-Generation, weil danach wohl die Schnittstellen für die Spannungsregulierung fehlen. [1]
Außerdem soll seit Sandy Bridge das Stromsparen von Hause aus gut funktionieren.
[1] http://linux-phc.org/forum/viewtopic.php?f=7&t=5196
Außerdem soll seit Sandy Bridge das Stromsparen von Hause aus gut funktionieren.
[1] http://linux-phc.org/forum/viewtopic.php?f=7&t=5196
Re: [gelöst] CPU-Undervolting: PHC-Patch noch nötig?
Schade. Ich hatte gedacht ich kann meinen Lüfter damit etwas leiser bekommen.
Danke dir für die Info.
Danke dir für die Info.
Re: [gelöst] CPU-Undervolting: PHC-Patch noch nötig?
Lenovo G70-70, Intel I3 4030U und NVIDIA-Grafik GeForce 820M.
Ich glaube nicht das es eine Möglichkeit gibt. Bei der Büchse funktioniert eigentlich nichts richtig. WLAN stürzt ständig ab. Ruhemodus geht mal, mal gehts nicht. Nvidia hab ich auch nicht an laufen gebracht, ich bin froh das es jetzt habwegs mit Nouveau funktioniert. Lenovo kommt mir definitiv nicht mehr ins Haus.
Ich glaube nicht das es eine Möglichkeit gibt. Bei der Büchse funktioniert eigentlich nichts richtig. WLAN stürzt ständig ab. Ruhemodus geht mal, mal gehts nicht. Nvidia hab ich auch nicht an laufen gebracht, ich bin froh das es jetzt habwegs mit Nouveau funktioniert. Lenovo kommt mir definitiv nicht mehr ins Haus.
Re: [gelöst] CPU-Undervolting: PHC-Patch noch nötig?
Hi, wollt mich nur mal fuer diesen Thread bedanken, funktioniert ja wunderbar unter Jessie, mein T8100 ist merklich kuehler, bzw. braucht den Luefter deutlich weniger.
Kleiner Hinweis noch: Wer TLP benutzt, kann dort die phc_controls auch direkt in /etc/default/tlp eintragen, dann sind die Einstellungen bei Neustart/Suspend/Resume erhalten.
LG
Kleiner Hinweis noch: Wer TLP benutzt, kann dort die phc_controls auch direkt in /etc/default/tlp eintragen, dann sind die Einstellungen bei Neustart/Suspend/Resume erhalten.
LG