ubuntuusers.de

cpupowerd: CPU-Undervoltingtool für (Ubuntu-)Linux

Status: Ungelöst | Ubuntu-Version: Ubuntu 7.10 (Gutsy Gibbon)
Antworten |

smax3

(Themenstarter)

Anmeldungsdatum:
24. Mai 2008

Beiträge: 29

fb schrieb:

smax3 schrieb:

Kannst du das etwas genauer erläutern? Funktioniert das Schlafen legen nicht mehr, das Aufwachen oder das Undervolting nach dem Aufwachen?

Das Aufwachen. Der PC startet kurz, der Monitor bleibt aber schwarz. Das gleiche Problem hatte ich vorher auch schon, konnte es aber beheben, indem ich die Anweisungen im Wiki zur nvidia-Karte befolgt habe.

Dann probiere mal das schlafen legen ohne cpupowerd. Wenn das noch funktioniert, dann starte weiteren test, indem du cpupowerd mittels "killall cpupowerd" im suspend script stoppst bevor du den Rechner schlafen legst. Nach dem stoppen von cpupowerd ist der normale CPU-Zustand wiederhergestellt und der Rechner sollte sich ohne Probleme schlafen legen lassen. Wenn das Aufwachen dannach noch immer normal funktioniert, dann wiederholst du den letzten Test, nur nach dem Aufwecken des Rechners startest du cpupowerd im suspend script wieder.

Avalon666 schrieb:

Hi!

bei mir reicht es, den Einzeiler in /etc/rc.local einzufügen

grml, geht bei mir auch nicht. Kann man irgendwie raus bekommen ob beim Booten ein anderer Powermanager dazwischen funkt? Hätte den von Gnome in verdacht. Da von Hand gestartet alles funktioniert.

Der Gnome-Power-Manager ist wirklich der Hauptverdächtigte. Mir ist bei meiner Ubuntuinstallation aufgefallen, das z.B. der powernowd im Runlevel 2 mit S20powernowd gestartet wird, wenn jedoch Gnome läuft, finde ich keinen powernowd prozess mehr. Mir kommt vor, das der Gnome-Power-Manager den powernowd irgendwie killt und die Frequenz-/Spannungssteuerung der CPU übernimmt. Wenn der Gnome-Power-Manager die Steuerung übernimmt, verstellt er den Governor auf ondemand und damit beendet sich auch cpupowerd aus Sicherheitsgründen, weil dieser unbedingt den Governor userspace benötigt. Wahrscheinlich wird die neue 0.2.0 Version von cpupowerd nicht mehr aussteigen, sondern den Governor wieder zurückstellen. Ein weiterer Verdächtiger könnte auch noch der "hald-addon-cpufreq" sein, denn müsste man auch mal probeweise killen.

Diese oben angeführten Probleme machen es etwas schwierig ein allgemeines Startscript zu erstellen. Eine Abhilfe könnte ich mir derzeit folgendermassen vorstellen (ungetestet):

* cpupowerd möglichst spät starten damit der gnome-power-manager und hald-addon-cpufreq sicher schon laufen: S99z_cpupowerd ist okay

* im startscript "killall gnome-power-manager" hinzufügen

* im startscript "killall hald-addon-cpufreq" hinzufügen

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#! /bin/sh

case "$1" in
  start)
        # hier könnte man die Kernelmodule laden wie bei powernowd
        killall gnome-power-manager
        killall hald-addon-cpufreq
        cpupowerd -d -c /etc/cpupowerd.conf
        ;;
 stop)
        killall cpupowerd
        ;;
 restart)
        $0 stop
        sleep 1
        $0 start
        ;;
 *)
        echo "Usage: $0 {start|stop|restart}" >&2
        exit 3
        ;;
esac

Avalon666

Anmeldungsdatum:
7. Oktober 2007

Beiträge: 304

Wohnort: Dresden

Hi!

Mit dem Startscript von smax3 funktioniert es momentan. Mal weiter beobachten.

mfg

smax3

(Themenstarter)

Anmeldungsdatum:
24. Mai 2008

Beiträge: 29

Hier http://www.meisterkuehler.de/forum/linux-unix/20124-cpupowerd-ein-tool-fuers-cpu-undervolten-unter-linux-2.html#post324733 gibts einen kleinen Ausblick, was die kommenden Versionen von cpupowerd können werden.

jo-we

Anmeldungsdatum:
30. Juni 2008

Beiträge: 302

Hi, nach der Eingabe von

sudo cpupowerd -l

bekomm ich die Meldung:

MSR-File </dev/cpu/0/msr> doesn't exist, please load the msr kernel module!
Initialisation failed!

fb

Avatar von fb

Anmeldungsdatum:
24. September 2006

Beiträge: 580

Wohnort: OL

Du musst die in der Anleitung und im README angegebenen Kernelmodule laden. http://www.meisterkuehler.de/forum/linux-unix/20124-cpupowerd-ein-tool-fuers-cpu-undervolten-unter-linux.html Falls Du nicht weißt, wie das geht, findest Du im Wiki die Anleitung dazu.

jo-we

Anmeldungsdatum:
30. Juni 2008

Beiträge: 302

Danke dir, hab die Zeile wohl irgendwie überlesen.

fb

Avatar von fb

Anmeldungsdatum:
24. September 2006

Beiträge: 580

Wohnort: OL

Das ist bei mir merkwürdig. Ich habe den Link in

sudo ln -s /etc/init.d/cpupowerd /etc/rc2.d/S99z_cpupowerd

geändert, aber trotzdem wird cpupowerd nicht automatisch gestartet. Das von max geschriebene Startscript verwende ich auch und habe es in /etc/init.d/ eingefügt.

Erst wenn ich

cpupowerd -d -c /etc/cpupowerd.conf

nach dem Systemstart im Terminal ausführe, klappt das Undervolting auch.

Ich verstehe das nicht. Wo liegt der Fehler?

Avalon666

Anmeldungsdatum:
7. Oktober 2007

Beiträge: 304

Wohnort: Dresden

Hi!

Hast du mal geschaut ob noch andere Powermanager installiert sind und bei den Diensten aktiv?

mfg

smax3

(Themenstarter)

Anmeldungsdatum:
24. Mai 2008

Beiträge: 29

fb schrieb:

Das ist bei mir merkwürdig. Ich habe den Link in

sudo ln -s /etc/init.d/cpupowerd /etc/rc2.d/S99z_cpupowerd

geändert, aber trotzdem wird cpupowerd nicht automatisch gestartet. Das von max geschriebene Startscript verwende ich auch und habe es in /etc/init.d/ eingefügt.

Erst wenn ich

cpupowerd -d -c /etc/cpupowerd.conf

nach dem Systemstart im Terminal ausführe, klappt das Undervolting auch.

Ich verstehe das nicht. Wo liegt der Fehler?

Vielleicht ist die Verlinkung mit S99z nicht ausreichend und es muss noch eine Pause (von z.B. 20 Sekunden) gemacht werden. Probiere mal vor der Zeile "killall gnome-power-manager" im Start-Teil folgendes einzufügen: "sleep 20"

Dieses Startscript ist aber nur ein (brutaler 😳) Workaround, werde mich vielleicht nach der Veröffentlichung von Version 0.2.0 mal an einem Startscript für Ubuntu versuchen.

nisita

Anmeldungsdatum:
11. Februar 2006

Beiträge: 259

ich nutze cpupowerd mit der folgenden config:

1
2
3
4
5
6
7
sudo cat /etc/cpu
cat: /etc/cpu: No such file or directory
[markus@jessie ~]$ sudo cat /etc/cpupowerd.conf
1000 0.8000
1800 1.0000
2000 1.0500
2100 1.1000

und wenn ich dann das programm starte mittels sudo cpupowerd -f -c /etc/cpupowerd.conf läuft es auch, und zeigt mir via cpupowerd -s auch 0.8v an. allerdings verändert sich nichts im verbrauch weshalb ich nicht so richtig denn sinn sehe. oder mach ich irgendwas falsch? natürlich verändert sich was, allerdings kein unterschied als wenn ich cpufreq benutzen würde, das ja nur die frequenz ändert. dabei müsste doch das untervolten von 1v auf 0.8v sich bemerkbar machem...

liebe grüße und danke schonmal

smax3

(Themenstarter)

Anmeldungsdatum:
24. Mai 2008

Beiträge: 29

cpupowerd setzt in der CPU bestimmte Register, darauffolgend bekommt der Spannungsreglerchip den Befehl, die CPU-Spannung zu ändern. Ob die Spannung verstellt wurde oder nicht, darüber hat cpupowerd keine Informationen, mir ist aber kein Fall bekannt, wo die Spannung nicht geändert wird.

Als ersten Schritt könntest du mit lm-sensors kontrollieren, welche Spannung wirklich an der CPU anliegt. Dafür liest lm-sensors die Werte über den SuperI/O-Chip aus - bei diesen Chip liegt die CPU-Spannung an und die kann dann über einen Analog/Digital Wandler ausgelesen werden.

Als zweiten Schritt kannst du dein Messgerät überprüfen. Billige Geräte messen komplett falsche Werte bei elektronischen Schaltnetzteilen. Als tauglich und günstig (um die 20.- €) haben sich ELV EM600 und das Conrad Energy Check 3000 erwiesen.

Undervolting von 1.0 auf 0.8V sollte sich mit mindestens 2 Watt Ersparnis bemerkbar machen. Welches Mainboard verwendest du?

nisita

Anmeldungsdatum:
11. Februar 2006

Beiträge: 259

hej danke erstmal. also lm-sensors misst immer noch 1.050V, so wie es im bios eingestellt ist. cpupowerd -s gibt aber 0.8v an. spricht das programm funktioniert bei mir nicht, oder woran kann das liegen?

das strommessgerät war eins für >50euro von conrad, sollte also schon nicht soo falsch rechnen.

danke schonmal ☺ lg nisita

smax3

(Themenstarter)

Anmeldungsdatum:
24. Mai 2008

Beiträge: 29

nisita schrieb:

hej danke erstmal. also lm-sensors misst immer noch 1.050V, so wie es im bios eingestellt ist. cpupowerd -s gibt aber 0.8v an.

Hast du einen fixen Wert im Bios eingestellt(?) - wenn ja dann stelle mal auf AUTO. Cool'nQuiet muss auch enabled sein. Welches Mainboard verwendest du nun?

nisita

Anmeldungsdatum:
11. Februar 2006

Beiträge: 259

hi, es war ein fester wert eingestellt. nun funktioniert die umstellung auch. sind zwar nur ~2,5watt die es bringt, aber naja.. erstmal schauen ob das so stabil läuft. viele dank, lg nisita

PS: war übringens ein asus m2a-vm hdmi -anscheinend nicht das board zum stromsparen..

smax3

(Themenstarter)

Anmeldungsdatum:
24. Mai 2008

Beiträge: 29

Soeben habe ich die Version 0.2.0 released.

Hauptänderungen:

* Startscript für Linux, das alle benötigten Kernelmodule ladet, hinzugefügt (tools/cpupowerd.sh).

* Logging über stdout oder syslogd (neuer Übergabeparameter -m).

* Einzelnen Frequenzen können nun im Konfigfile auskommentiert bzw. gelöscht werden.

* Wenn ein anderes Tool den Governor (und die Frequenz) verstellt, wird wieder auf cpupowerd-Werte zurückgestellt. Werden die Werte 10x mal in einer Stunde verstellt, beendet sich cpupowerd wieder aus Sicherheitsgründen. Dies sollte nun die Probleme mit den Suspend2Ram/Suspend2Disk und hald-addon-cpufreq/gnome-power-manager beseitigen.

* FreeBSD Unterstützung eingebaut.

Mehr Infos über cpupowerd gibts unter http://www.meisterkuehler.de/forum/linux-unix/20124-cpupowerd-ein-tool-fuers-cpu-undervolten-unter-linux.html, downloaden kann man das Tool unter http://sourceforge.net/projects/cpupowerd/.

Getestet habe ich unter Ubuntu 7.10, 8.04, 8.10, Xubuntu 8.04 und Slackware 12.1.

Für die nächste Hauptversion ist nun die Unterstützung von weiteren Prozessoren geplant.