Multiplattform-Undervolting mit TurionPowerControl
Verwendung unter Linux
Auf der Projektseite findet sich eine Downloadoption vorkompilierter Pakete für Ubuntu. Auf unserem Testsystem mit Debian liefen diese Pakete ebenfalls, für den dauerhaften Einsatz empfiehlt es sich allerdings, das Tool aus dem Quelltext zu kompilieren. Wir stellen beide Varianten vor:
Voraussetzungen erfüllen:
Die beiden Pakete CPUID und MSR-Tools müssen installiert und geladen sein. Dies erreicht ihr unter Debian und Ubuntu mit den folgenden Befehlen:
sudo apt-get install msr-tools cpuid
sudo modprobe msr
sudo modprobe cpuid
Nach Ausführen des Befehles “find /dev/cpu” sollten dann folgende Zeilen erscheinen:
find /dev/cpu
/dev/cpu
/dev/cpu/0
/dev/cpu/0/msr
/dev/cpu/0/cpuid
/dev/cpu/microcode
Wichtig sind die beiden hervorgehobenen Einträge. Nun fügen wir die beiden Pakete der Modules-Liste hinzu, damit sie immer geladen werden. Dazu öffnen wir die Datei /etc/modules mit Root-Rechten in einem Texteditor wie zum Beispiel Gedit.
gedit /etc/modules
Die Datei sieht auf einem frischen System wie folgt aus:
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with “#” are ignored.
Wir fügen nun msr und cpuid hinzu, das Ganze sollte dann wie folgt aussehen:
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with “#” are ignored.msr
cpuid
Außerdem sollte der folgende Eintrag gesucht werden:
find /proc/bus/pci/00/18.3
/proc/bus/pci/00/18.3
Nun kann es an die eigentliche Anwendung gehen.
Verwenden der fertigen Binärdatei
Der Aufruf erfolgt direkt über die Konsole. Man wechselt in das “bin”-Verzeichnis des Pakets und führt die Anwendung aus. Gibt man keine Optionen an, so gibt das Tool alle möglichen Einstellungen aus. Mit dem Präfix “-temp” können grundsätzliche Informationen über den Prozessor und die Diodentemperatur ausgelesen werden. In unserem Fall sieht das wie folgt aus:
./TurionPowerControl ‑temp
TurionPowerControl 0.44-rc2 (tpc‑0.44-rc2-r144)
Turion Power States Optimization and Control — by blackshardDetected processor: Family 10h Processor
Machine has 4 nodes
Processor has 6 cores
Processor has 5 p‑states
Processor has 0 boost states
Processor temperature slew rate:9.0°CTemperature table:
Node 0 C0:43 C1:43 C2:43 C3:43 C4:43 C5:43
Node 1 C0:43 C1:43 C2:43 C3:43 C4:43 C5:43
Node 2 C0:49 C1:49 C2:49 C3:49 C4:49 C5:49
Node 3 C0:49 C1:49 C2:49 C3:49 C4:49 C5:49Done.
Selbst kompilieren
Wir wechseln in das “src”-Verzeichnis und führen mit Root-Rechten die folgenden Befehle aus:
apt-get install build-essential ncurses-dev
make
make install
Sofern alles korrekt funktioniert hat, kann die Anwendung nun über “tpc” aufgerufen werden. Zur korrekten Funktion sind immer Root-Rechte erforderlich.
Anwendungsbeispiele
Im Folgenden wurden die Befehle dem Testsystem entsprechend gewählt. Bei normalen Desktopsystemen kann die Option “node all” weggelassen werden.
Absenken der Spannung
Um die Spannung zum Beispiel auf 1,0 V abzusenken, gibt man am einfachsten diesen Befehl ein:
tpc ‑set node all core all pstate 0 voltage 1.000
Ändern der Taktfrequenz
Zur Begrenzung des Takts auf 2 GHz dient jener Befehl:
tpc ‑set node all core all pstate 0 frequency 2000 voltage 1.000
Selbstverständlich können auch weitere P‑States und einzelne Cores angesprochen werden. Weitere Beispiele finden sich dazu im ausführlichen Readme des Tools.
Möchte man eine Einstellung dauerhaft im System verankern, kann der gewünschte Aufruf in die Datei “/etc/rc.local” eingetragen werden. Die dort eingetragenen Befehle werden immer mit Root-Rechten ausgeführt. Man sollte vorher ausgiebig testen, ob die gewählte Einstellung auch wirklich stabil läuft!