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.
 
mach lieber make dkms_mkdeb und installier die deb-datei. dann wird das modul bei jedem kernelupgrade entsprechend kompiliert. hast du den kernel bereits mit veränderter config rekompiliert?
 
hab genau das jetzt gemacht. dkms_mkdeb. hab die deb dann installiert. soweit ok.
jetzt ist aber noch was mit der konfiguration unklar.

cat /sys/devices/system/cpu/cpu0/cpufreq/phc_default_vids

gibt

cat: /sys/devices/system/cpu/cpu0/cpufreq/phc_default_vids: Datei oder Verzeichnis nicht gefunden

:confused:
 
kann das modul nicht laden
Error inserting phc_intel (/lib/modules/3.0.0-13-generic/updates/dkms/phc-intel.ko): Device or resource busy

hab ich da irgendwie nen denkfehler und nur die instalation des hc-intel driver in DKMS format reicht nicht ? muss noch mehr passieren ,? kernel rekompilieren oder sowas? kann ds modul ja auch nicht laden.
 
Zuletzt bearbeitet:
Du kannst zu dem Zweck den normalen Ubuntu-Kernel nicht verwenden, da das fragliche Modul dort fest einkompiliert ist.

Stattdessen brauchst Du einen 3.0er Kernel aus dem Linux PHC Testing PPA, bei dem sinnigerweise das Modul weggelassen wurde statt gleich ein gepatchtes einzubauen (frag bloß nicht was der Quatsch soll). Als letzten Schritt kannst Du das Modul übersetzen und installieren.

Die Lucid-Anleitung dazu müßte noch funktionieren (Achtung anderes PPA!): http://openmindedbrain.info/09/05/2010/undervolting-in-ubuntu-10-04-lucid-lts/
 
das ppa ist mir entgangen. somit hätte ich mir die kompiliererei wenigstens unter ubuntu ja sparen können.
danke, linrunner!
 
gut den phc.kernel 3.x.x habich jetzt drauf. in der tat stellt sich die frage warum der patch hier nicht schon einkompiliert wurde. rest versuche ich heute zu erledigen. mal sehen ob es klappt.
 
Also es klappt nicht. Habe den PHC-Kernel jetzt am laufen, aber das installieren des paches? Keine Chance!

hab probiert:
1) den offtree aus der Lucid Anleitung (0.3.2.10) von linrunner. make prepare bleibt hängen und nix passiert weiter.
2) den aktuelleren offtree 0.3.2-12-1 keine chance make meckert dass es nicht der richtige Kernel ist
3) den intel-phc-pack-dev3 aus dem post weiter oben, deb gemacht, installiert, ok, aber laufen tut es trotzdem nicht.

uname -r zeigt
3.0.0-13-generic-phc

aber
cat /sys/devices/system/cpu/cpu0/cpufreq/phc_default_vids
weiterhin
Datei oder Verzeichnis nicht gefunden

Was mache ich falsch? Weiß vielleicht jemand welche kombi hier läuft.
 
Zuletzt bearbeitet:
wenn das modul von einem anderen benötigt wird, wird es iirc trotz blacklisting geladen. genauso, wenn ein programm das modul lädt. wenn lsmod das modul auflistet ist es definitiv ein modul und nicht fest einkompiliert:
Code:
root@t400s:~# uname -a
Linux t400s 3.0.0-13-generic #22-Ubuntu SMP Wed Nov 2 13:27:26 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
root@t400s:~# lsmod | grep -i cpufreq
root@t400s:~#
 
so sieht das bei mir aus:
Code:
rob@rob-X61:~$ lsmod | grep -i cpufreq
cpufreq_stats          13172  0 
acpi_cpufreq           13203  1 
mperf                  12603  1 acpi_cpufreq

bin noch etwas ratlos was ich als nächstes mache :confused:
 
was sagt
Code:
sudo modprobe -v intel-phc
?
Sollte es nicht eigentlich
Code:
sudo modprobe -v phc-intel
heißen? Zumindest ist das bei mir der Fall. Da ich aber das Modul acpi_cpufreq nicht entfernen kann war folgende Ausgabe zu erwarten:
Code:
insmod /lib/modules/3.0.0-13-generic-phc/updates/dkms/phc-intel.ko 
FATAL: Error inserting phc_intel (/lib/modules/3.0.0-13-generic-phc/updates/dkms/phc-intel.ko): Device or resource busy
Folgende Module sind bei mir geladen: lsmod |grep -i cpufreq
Code:
 cpufreq_stats          13172  0 
acpi_cpufreq           13203  1 
mperf                  12603  1 acpi_cpufreq
und wie schon erwähnt kann ich die auch nicht unloaden: sudo modprobe -r cpufreq_stats acpi_cpufreq mperf
Code:
FATAL: Module acpi_cpufreq is in use.

Irgend welche Vorschläge? Gruß, Stefan
 
ok hab es zum laufen bekommen.

dazu hab ich in die blacklist acpi_cpufreq sowie cpufreq_stats eingetragen und dann in /etc/modules das phc-intel eingetragen um es automatisch beim boot zu starten. ein blick in die tlp stats zeigt dann:

Code:
/sys/devices/system/cpu/cpu0/cpufreq/phc_controls = 11:47 10:39 8:29 6:18 136:11 
/sys/devices/system/cpu/cpu1/cpufreq/phc_controls = 11:47 10:39 8:29 6:18 136:11

ich denke das wars jetzt, oder???
muss nun nochmal schauen wie ich die spannungen einstelle. ich glaube das sind die standardeinstellungen, also die normalen spannungen der c2d cpu die ich habe.
Code:
cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls

zeigt nun

Code:
11:47 10:39 8:29 6:18 136:11
 
andre frage. hat jemand sinnvolle parameter für nen C2D T7500 ? und was bedeutet die 136:11 hinten drann, die anderen Pärchen die davor stehen sind klar. taktstufe:spannung (712,5 mV + VID * 0.0125). aber die 136:11 ??? und es sind ein paar zu wenige oder? unter RMClock habe ich die möglichleit 7 spannungen einzustellen :confused:
 
cpus sind individuell. die passenden spannungen muss man sich selbst erarbeiten indem man die spannung etwas absenkt, einige stunden mprime laufen lässt. meldet mprime fehler, muss die spannung wieder etwas erhöht werden, läuft es dagegen beschwerdefrei mehrere stunden, kann man weiter absenken. die optimalen werte für alle fids zu finden ist langwierig und lästig. wenn man sich damit zufrieden gibt, dass die zwischenstufen, also alles außer höchst- und minimal-takt mit angepassten, aber nicht optimalen einstellungen läuft, kann man die spannungen für die minimale und maximale fid austesten und den rest linear interpolieren. meiner erfahrung nach ist das ein sicherer weg. rmclock hat das schon vor jahren gemacht.

die 136 ist die fid für die niedrigste stufe.die ist so komisch, weil bei ihr der fsb halbiert wird. nur so kommt die cpu runter bis 800 mhz, obwohl der niedrigste multiplikator, den intel-cpus unterstützen 6 ist und der fsb 200 mhz beträgt. ich vermute mal, dass sich die 136 zusammensetzt aus 128 (id für den speziellen modus mit halbiertem fsb) und 8 (dem tatsächlichen multiplikator).

edit:
mein x61 (t7300) läuft mit 11:24 10:20 8:13 6:11 136:9. so als grobe orientierung
 
Zuletzt bearbeitet:
Ahh ok danke. meiner läuft nun auh gut mit 11:24 10:20 8:13 6:11 136:09

Ach und nur falls wer nicht drann denkt. es müssen natürlich beide prozessorkerne umgestellt werden cpu0 und cpu 1, sonst läuft einer mit geringeren spannungen und der andere nicht! also:
Code:
echo "11:24 10:20 8:13 6:11 136:09" | sudo tee /sys/devices/system/cpu/cpu[SIZE=4]0[/SIZE]/cpufreq/phc_controls
und
Code:
echo "11:24 10:20 8:13 6:11 136:09" | sudo tee /sys/devices/system/cpu/cpu[SIZE=4]1[/SIZE]/cpufreq/phc_controls

:thumbsup:
wenn alles geht alles fest beim booten starten soll in die /etc/rc.local folgendes eingeben würde ich sagen:
Code:
echo "11:24 10:20 8:13 6:11 136:09" > /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
und
Code:
echo "11:24 10:20 8:13 6:11 136:09" > /sys/devices/system/cpu/cpu1/cpufreq/phc_controls
 
das kann dir schnell um die ohren fliegen. zugriffe auf /sys in startscripten scheitern oftmals an einem noch nicht gemountetem /sys. das liegt an den modernen parallelisierenden init-systemen wie upstart und systemd.

btw:
die cpu-kerne teilen sich afaik ein und dieselbe spannungsversorgung. unterschiedliche spannungen bei den kernen sind daher nicht möglich. setzen sollte man aber trotzdem beide, da es so eindeutig ist. wer weiß was in zukunft passiert, wenn 2 werte-tupel vorhanden sind.
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben