PHC Undervolting Thread

buddabrod

New member
Themenstarter
Registriert
15 Juni 2007
Beiträge
3.749
Hallo zusammen,

da ich meine VIDs noch ein wenig gedrückt hatte, dachte ich es wäre eine gute Idee, einen Sammelthread was Installationsanleitungen angeht sowie vielleicht eine CPU Liste mit funktionierenden Spannungsstufen zu erstellen.

Vielleicht versinkt der Thread aber auch schon bald :D

Also erstmal für:

  • Fedora 14 (und auch Fedora 13)

Kernel 2.6.37 installieren (Stromsparender als der default 2.6.35)
Code:
mkdir -p PHC/kernel-2.6.37 && cd PHC/kernel-2.6.37

# Pakete von koji (fedora Buildserver) herunterladen

#### 32-bit ####

wget [url]http://kojipkgs.fedoraproject.org/packages/kernel/2.6.37/2.fc15/i686/kernel-2.6.37-2.fc15.i686.rpm[/url]
wget [url]http://kojipkgs.fedoraproject.org/packages/kernel/2.6.37/2.fc15/i686/kernel-devel-2.6.37-2.fc15.i686.rpm[/url]
wget [url]http://kojipkgs.fedoraproject.org/packages/kernel/2.6.37/2.fc15/i686/kernel-headers-2.6.37-2.fc15.i686.rpm[/url]
wget [url]http://kojipkgs.fedoraproject.org/packages/kernel/2.6.37/2.fc15/i686/perf-2.6.37-2.fc15.i686.rpm[/url]

#### 64-bit ####

wget [url]http://kojipkgs.fedoraproject.org/packages/kernel/2.6.37/2.fc15/x86_64/kernel-2.6.37-2.fc15.x86_64.rpm[/url]
wget [url]http://kojipkgs.fedoraproject.org/packages/kernel/2.6.37/2.fc15/x86_64/kernel-devel-2.6.37-2.fc15.x86_64.rpm[/url]
wget [url]http://kojipkgs.fedoraproject.org/packages/kernel/2.6.37/2.fc15/x86_64/kernel-headers-2.6.37-2.fc15.x86_64.rpm[/url]
wget [url]http://kojipkgs.fedoraproject.org/packages/kernel/2.6.37/2.fc15/x86_64/perf-2.6.37-2.fc15.x86_64.rpm[/url]

# Pakete installieren

yum install --nogpgcheck kernel*.rpm perf*.rpm

# System mit dem neuen kernel neustarten!
/sbin/reboot

PHC Module bauen und installieren (falls make etc nicht installiert sind: yum groupinstall "Development Tools")
Code:
cd PHC

wget [url]http://www.thinkpad-forum.de/index.php?page=Attachment&attachmentID=41606&h=7e18fabfa11f8be746f47c566809f9ffe1140bd1[/url]
unzip phc-intel-0.3.2-12-1.zip
cd phc-intel-3.2.12-1

./prepare.sh 2.6.37
make
make install

# Neustarten, damit die Module geladen werden können
/sbin/reboot

PHCTool herunterladen (svn muss installiert sein: yum install subversion)
Code:
cd PHC
svn co [url]http://phctool.googlecode.com/svn/trunk/[/url] phctool

cd phctool

# phctool patchen
wget [url]http://www.thinkpad-forum.de/index.php?page=Attachment&attachmentID=41607&h=85ebdfc6bcf82140494f24aee2373737048536ef[/url]
unzip cpuinfo.zip -d inc/libs/

# phctool starten
./phctool.py

Damit sollte alles erledigt sein.

Nun kann man mit den Spannungen experimentieren, wobei meine Vorgehensweise so aussieht:

Code:
cd PHC

#### 32-bit ####
wget [url]http://mersenneforum.org/gimps/mprime265.tar.gz[/url]

#### 64-bit ####
wget [url]http://mersenneforum.org/gimps/mprime265-linux64.tar.gz[/url]

tar xvf mprime*.tar.gz

./mprime
Dort 15 eingeben (für Options/Torture Test)
Thread nach CPU Core-Anzahl richten und Option 2 (In-place large FFTs) auswählen.

Um die einzelnen VIDs anzupassen, wird z.B. der cpufreq-set der Takt manuell begrenzt: für 1.6GHz sieht das so aus:
cpufreq-set -u 1.6G (evtl. muss man beide Cores einzeln setzen, dann jeweils mit -c0 bzw. -c1 etc anhängen).

Vorher per "yum install cpufrequtils" entsprechendes Paket installieren.

Für jede Takstufe VIDs reduzieren, dabei immer mprime einige Minuten laufen lassen und hoffen, dass mprime keine Fehler zeigt bzw. das System nicht abschmiert ;)

Nebenbei überwache ich die Temperatur in einem zweiten Terminal: watch -n1 cat /proc/acpi/ibm/thermal



Für meinen T7500 ergaben sich somit folgende Werte:
  • T7500
Code:
Frequenz -- VID -- Spannung -- Urspr. Spannung

2201MHz -- 28 -- 1.0625V -- 1.2750V  (Turbo Modus, nutze ich aber nicht)
2200MHz -- 26 -- 1.0375V -- 1.2500V
1600MHz -- 13 -- 0.8750V -- 1.0625V
1200MHz -- 12 -- 0.8625V -- 0.9375V
 800MHz -- 11 -- 0.8500V -- 0.8500V (nicht konfigurierbar)

Die entsprechenden VIDs setze ich beim Booten per /etc/rc.local:
Code:
echo "28 26 13 12 11" > /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
echo "28 26 13 12 11" > /sys/devices/system/cpu/cpu1/cpufreq/phc_vids
ACHTUNG: Wenn die Werte zu niedrig sind, kann es sein, dass das System nicht richtig bootet! Dann muss z.B. ein anderer kernel ohne PHC gebootet werden und die Werte nach oben korrigiert werden.


So, jetzt bin ich erstmal fertig.

Bitte um Vorschläge, Kritik etc.
 
FIDs Anzeigen

Hallo,

wie kann ich mir die FIDs einer CPU anzeigen lassen oder wo finde ich diesen?

cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
77:35 76:34 10:30 8:27 6:23 136:17
cat /sys/devices/platform/smapi/BAT0/power_now
-12579

---> FIDs 77 76 10 8 6 136

Kann ich die irgendwie besser rausfinden?
Können die FIDs auch geändert werden?


Auch der Hinweis Yaptu, veranlaßt es mich nochmals Undervolting zu überdenken ob diese Spielereien Sinn machen. Spaßt macht es ja. :-)
Aber wirklich nütztlch? *grübel

MfG

xsid
 
die fids können nicht geändert werden. lediglich bei den topmodellen der desktop-cpu, den "extreme editions" kann man den multiplikator der höchsten taktstufe und somit dessen fid ändern. mehr geht nicht. bei den cpus in unseren thinkpads also ein aussichtsloses unterfangen.
sinn macht undervolting durchaus, gerade wenn das gerät öfters mal unter erhöhter last betrieben wird, da durch undervolting der akku etwas länger hält und vor allem die cpu weniger wärme erzeugt und der lüfter somit leiser seinen dienst verrichtet. allerdings sollte man lieber den aufwändigen weg gehen um fiese fehler im "produktiv"-betrieb zu vermeiden.
 
Aufwändiger Weg

Hallo Yaptu,

was ist für dich der aufwändige Weg?

Die Lösung mit mprime oder was meinst Du?

Wie ist der Befehl um die FIDs auszulesen, d. h. ohne weitere Informationen?

MfG

xsid
 
der aufwändige weg ist für mich der mit jeweils mehreren stunden mprime als stabilitätstest. ich kenne keinen anderen weg als den bereits von dir genannten um die fids herauszubekommen.
 
Die Watts finden sich

Hallo Stromsparer,

jetzt habe ich wieder ein wenig gebastelt.

at /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
77:28 76:26 10:13 8:12 6:11 136:17

das ergibt

cat /sys/devices/platform/smapi/BAT0/power_now
-10395

Wlan u. BT aus, Helligkeit geringste Stufe.

Macht es Sinn, auf Grund der Seagate Momentus 7200 weiter zu versuchen auf bessere Werte zu kommen?
Oder ist so vermutlich das Maximum erreicht?

Es wurde zu meiner Freude der niedrigste Wert (10,3 Watt) genommen, der Wert pendelt.

buddabrod hat geschrieben:

Welche Displayhelligkeit? Auf minimal komme ich auf 9,5W mit Intel Grafik, wenn ich noch optisches Laufwerk etc. deaktiviere, komme ich so auf 9W.

Wie deaktiviere ich meine optisches Laufwerk? Wenn ich es aus dem Ultrabay ziehe haben ich keine Änderung des Verbrauchs.

Hinsweis: Um auf die 10,3 Watt zu kommen habe ich auch ein wenig mit powertop parallel gespielt.

Ein praktischer Wert sind die 10,3 Watt sicherlich nicht.

buddabrod hat eine WD 500GB Platte hat nur 5400rpm, mein Thinkpad eine Seagate Momentus 500 GB 7200rpm. Ob da 1,3 Watt Unterschied liegen?

Zusätzlich hat buddabrod einen neueren Kernel.


MfG

xsid
 
Nochmal: auf der niedrigsten Taktstufe bringt untervolten nichts, weil du die nicht ändern kannst.

Ansonsten: schick die Festplatte schlafen und mess dann. Dann weißt du, wieviel die Platte braucht.
Wie gesagt, ab 2.6.37 gab es bei mir eine doch spürbare Verringerung des Verbrauchs, das dürfte bei mir auch geholfen haben.

Ein praktischer Wert ist das definitiv nicht, da hast du recht. Aber wenn man sparsam rumtipst, kann man mit Wlan 12W hier rechnen, und damit läuft die Kiste ne ganze Weile. Ansonsten bin ich bei 13-14W Verbrauch mit brauchbarer Displayhelligkeit.
 
unterste Taktstufe

Hallo Stromsparer und buddabrod,

Zitat buddabrod:

Nochmal: auf der niedrigsten Taktstufe bringt untervolten nichts, weil du die nicht ändern kannst.

Was ist genau die unterste Taktstufe?

Es sieht bei mir wie folgt per Default aus:

Default VIDs;
cat /sys/devices/system/cpu/cpu0/cpufreq/phc_vids
41 34 30 27 23 17


2.50 GHz, 2.50 GHz, 2.00 GHz, 1.60 GHz, 1.20 GHz, 800 MHz
--41----------- 34-----.....------ 30----------27--------- 23---------- 17----- VIDs

cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
77:41 76:34 10:30 8:27 6:23 136:17

analog cpu1

Mit Undervolting 10,3 Watt


VIDs 28 26 13 12 11 17

cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
77:28 76:26 10:13 8:12 6:11 136:17

Wo ist die unterste Taktstufe?
Für mich war bisher 800 Mhz die niedrigste Taktstufe.

Ist folgede Tabelle bezüglich der Zuordnung der FIDs falsch?


2.50 GHz, 2.50 GHz, 2.00 GHz, 1.60 GHz, 1.20 GHz, 800 MHz
---77-------- 76------------ 10----------------- 8--------- 6------------ 136--------- FIDs


MfG

xsid
 
T6570 - Undervolting

Habe mich jetzt auch mal an das Undervolten gewagt und bin begeistert.

Es handet sich dabei um ein SL510 mit 2x2.1GHz C2D T6570 CPU und Ubuntu 10.10.
Code:
uname -r
2.6.35-27-generic-phc

cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls 
11:4 74:4 8:4 6:4 

cat /sys/devices/system/cpu/cpu0/cpufreq/phc_vids 
4 4 4 4 

cat /sys/devices/system/cpu/cpu1/cpufreq/phc_vids 
4 4 4 4

Unter Volllast ohne GDM-Anmeldung im Terminal mit WLAN und max. Helligkeit von 30,4W runter auf 25,5W. Das sind -4,9W oder -16% Verbrauch.
Bei selben Bedingungen im Idle 11,5W, mit Helligkeit 10 sinds 8,3W und bei 0 sind es 7,3W.
(Die Werte stammen von powertop im Batteriemodus. CPU-Last wude mit burnMMX erzeugt.)

Im Alltag komme ich mit einem 6Zeller jetzt etwa 45min länger aus als vorher. :thumbup:
 
die unterste taktstufe ist die niedrigste frequenz, auf die sich die cpu heruntertakten kann. es ist, welche überraschung, die frequenz mit der niedrigsten fid. da man diese nicht ändern kann, kann man auch die niedrigste taktstufe nicht ändern. zusätzlich hat intel irgendwann angefangen eine undervolting-sperre bei der niedrigsten vid einzubauen. daher kann man die vid der niedrigsten fid nicht mehr reduzieren. man kann zwar niedrigere spannungen "anfordern" oder "anordnen", die cpu wird aber immer mit mindestens der ab werk eingestellten vid der niedrigsten fid betrieben. daher kann man mit undervolting keinen einfluss auf die maximal idle-laufzeit nehmen. lediglich den leistungshunger bei höheren taktungen kann man so reduzieren.
 
Hat von euch jemand nen core i3/5/7 untervoltet? Mir gehts im speziellen um das X220 - ich stoße hier auf das Problem, dass die phc_vids nur den Inhalt "0 0 0 0" hat und ich scheinbar auch keine Änderungen (trotz Root) an den phc_controls machen kann.
 
Leider kann man die Intel i-CPUs nicht undervolten. Ich hoffe auch, das es irgendwann gehen wird.
 
... zusätzlich hat intel irgendwann angefangen eine undervolting-sperre bei der niedrigsten vid einzubauen. daher kann man die vid der niedrigsten fid nicht mehr reduzieren ...
Ich hatte das ebenso wie von Yatpu beschrieben in Erinnerung. Soweit ich das beurteilen kann, ist es mit LinuxPHC nicht moeglich die default VID der niedrigsten FID zu unterschreiten. Das gilt zumindest fuer meine T2400 in einem T60.

Folgende Behauptungen machen mich jedoch stutzig. Sowohl 'quaentchen' als auch 'qwali' behaupten mit RMClock die Spannung ihrer CPUs weiter absenken zu koennen.
Oh doch. Diese VID Untergrenze zeigt RMClock in den drop-down Boxen der Dialoge an. Ich erinnere es auch deshalb, weil die Minimalwerte sowohl einer T7400 als auch der T7600 auf 0,95 lagen.
Du musst in den Optionen den CPU auf Mobil setzen - dann darfst du bis 0,95V runter.
Ist dieser Wert also nur gesetzt ohne dass er die Spannung der CPU beeinflusst oder ist die VID Einschraenkung nur durch LinuxPHC bedingt?

Gruss, Stefan
 
Die Sperre ist in Hardware realisiert und wurde mit dem Core-Reihe (Core Solo/Duo) eingeführt.

Eine Quelle sagt dazu:
The VID that is applied for the lowest available frequency on a Core(2) CPU is also the lwoest possible for every higher frequency. This value seems to be hardware-fixed.
 
Zuletzt bearbeitet:
Hi linrunner,

besten Dank fuer den Link. Hab das auch schon mal gelesen.
The VID that is applied for the lowest available frequency on a Core(2) CPU is also the lwoest possible for every higher frequency.
Fuer mich heisst das lediglich, dass die VID_0, der die niedrigsten FID_0 zugeordnet ist, ein untere Schranke fuer alle anderen VIDs setzt. So wie ich das jedoch interpretiere steh da nicht, dass die VID_0 nicht absenken werden kann.
This value seems to be hardware-fixed.
Sehr vage ...

Zur Klaerung werde ich mich mal bei LinuxPHC und evt. auch bei RMClock anfragen. Mal sehen was dabei raus kommt.

Gruss, Stefan
 
Die Info kommt direkt von nem Intel Kernel Menschen, die Sperre für VID 0 ist nicht änderbar und stellt das Minimum dar.

Wie schon gesagt: die ULV CPUs sind technisch identisch mit den anderen, nur sind da alle auf Funktionsfähigkeit bei der Spannung getestet. Da aber viele ungetestete CPUs auch diese Spannung vertragen und ULVs teurer sind, will man sich da die eigene Konkurrenz aus dem Weg schaffen.

Evtl. kann man durch nen Pinmod oder ne Modifikation am Board niedrigere Spannungen erreichen, aber das ist erstmal aufwändig herauszufinden.
 
Wie sieht es aus mit PHC für den 3.0er kernel unter ubuntu? wirds das geben? wer weiß was?:confused:
 
möglich ist es. hab mir gerade mit hilfe der anleitung im uu-wiki nen neuen kernel gebaut und das phc-modul. ersteres dauerte ewig. :mad: nächstes mal muss ich wohl den desktop dafür einspannen. denn 4 * 3 ghz >> 2 * 2,4 ghz und/oder ich passe die config an mein system an.

aber wann die jungs des phc-ppas tätig werden... wer weiß das schon?
 
aber wann die jungs des phc-ppas tätig werden... wer weiß das schon?
Ich hab bei denen vor zwei Wochen oder so mal per Launchpad angefragt => keine Antwort

Irgendwie kann ich die Abneigung Ubuntus gegenüber Linux-PHC schon verstehen. Das Linux-PHC Forum als Anlaufstelle ist eine absolute Katastrophe. Und ebenso wenig kann man sich auf die Entwicklung und/oder das Erscheinen der Patches verlassen. => Da muss sich was Ändern sonst wird das nie was!

Gibt es denn zu c2ctl (http://www.ztex.de/misc/c2ctl.e.html) Erfahrungen. Evt. eine verlässlichere Alternative, sofern man versteht was da vor sich geht.
 
guten abend,

will meinen senf auch mal dazu geben :rolleyes:

habe mein system mal komplett neu aufgesetzt und habe die gelegenheit genutzt phc und tlp einzurichten.... hardware ist ein x200 mit 2,4ghz cpu und 4gb ram sowie ner 1tb samsung hdd.
system ist ein oss 12.1 mit original 3.1.0 kernel.
phc-intel habe ich hier runtergeladen und es ganz normal wie hier und im file-readme beschrieben installiert.

ein
Code:
cat /sys/devices/system/cpu/cpu0/cpufreq/phc_default_vids
ergibt ein
Code:
39 34 23 17

meine einstellungen sind nun nach langsam nach unten bewegen
Code:
cat /sys/devices/system/cpu/cpu1/cpufreq/phc_vids
zeigt
Code:
26 24 18 17

diese fügte ich in der tlp conf datei ein
Code:
PHC_CONTROLS="73:26 9:24 6:18 134:17"

ein test ohne netzteil ergab mit mprime einen unterschied von 5w bei 2.4ghz und bei 1.6ghz immerhin noch 3w was im endeffekt sicherlich einen längeren akku ausmacht.

alles funktioniert problemlos ohne freeze und andere "schlimme" dinge...

wollte nurmal so kurz hier reinplätschern, dass das auch mit nem 3.x.x funktioniert
schöne grüße, zwennie
 
hallo,
interessante sache, aber bekomme das nicht intalliert. hab ein kubuntu 11.10 mit 3.0.0-13 kernel.

hier ist die ausgabe nach sudo make:
Preparing build area for phc-intel-0.3.2:
searching for patch directory... using inc/3.0
copying files
patching file phc-intel.c
SUCCESS. Build area ready.

make -C /lib/modules/`uname -r`/build SUBDIRS= modules
make[1]: Betrete Verzeichnis '/usr/src/linux-headers-3.0.0-13-generic'
HOSTCC scripts/basic/fixdep
scripts/basic/fixdep.c:106:23: schwerwiegender Fehler: sys/types.h: Datei oder Verzeichnis nicht gefunden
Kompilierung beendet.
make[3]: *** [scripts/basic/fixdep] Fehler 1
make[2]: *** [scripts_basic] Fehler 2
make[1]: *** Keine Regel vorhanden, um das Target »include/config/auto.conf«,
benötigt von »include/config/kernel.release«, zu erstellen. Schluss.
make[1]: Verlasse Verzeichnis '/usr/src/linux-headers-3.0.0-13-generic'
make: *** [phc-intel.ko] Fehler 2
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben