Processor Hardware Control: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
Fs4000 (Diskussion | Beiträge)
KKeine Bearbeitungszusammenfassung
Boenki (Diskussion | Beiträge)
K anstatt <pre> einfach den code einrücken ;)
Zeile 6: Zeile 6:
==Installation==
==Installation==
===Intel-CPU===
===Intel-CPU===
Es gibt ein Paket im AUR, das man sich selbst kompilieren kann: http://aur.archlinux.org/packages.php?ID=18310<br>
Es gibt ein Paket im AUR, das man sich selbst kompilieren kann: http://aur.archlinux.org/packages.php?ID=18310
Testweise gibt es dieses Modul für Kernel 2.6.29: http://aur.archlinux.org/packages.php?ID=24980<br>
 
Testweise gibt es dieses Modul für Kernel 2.6.29: http://aur.archlinux.org/packages.php?ID=24980
 
Falls nicht schon geschehen, trägt man acpi_cpufreq unter MODULES in der /etc/rc.conf ein.
Falls nicht schon geschehen, trägt man acpi_cpufreq unter MODULES in der /etc/rc.conf ein.
<pre>MODULES=( ... acpi_cpufreq)</pre>
MODULES=( ... acpi_cpufreq)
Anschließend muss man sein System rebooten.
Anschließend muss man sein System rebooten.


===AMD-CPU===
===AMD-CPU===
Es gibt ein Paket, das man auf eigene Gefahr testen kann: http://aur.archlinux.org/packages.php?ID=22953<br>
Es gibt ein Paket, das man auf eigene Gefahr testen kann: http://aur.archlinux.org/packages.php?ID=22953
 
Falls nicht schon geschehen, trägt man powernow-k8 unter MODULES in der /etc/rc.conf ein.
Falls nicht schon geschehen, trägt man powernow-k8 unter MODULES in der /etc/rc.conf ein.
<pre>MODULES=( ... powernow-k8)</pre>
MODULES=( ... powernow-k8)
Anschließend muss man sein System rebooten.
Anschließend muss man sein System rebooten.


Zeile 23: Zeile 26:
===Intel-CPU===
===Intel-CPU===
Bei Intel Prozessoren findet man das entscheidende Konfigurations-Interface unter /sys/devices/system/cpu/cpu0/cpufreq/phc_controls.
Bei Intel Prozessoren findet man das entscheidende Konfigurations-Interface unter /sys/devices/system/cpu/cpu0/cpufreq/phc_controls.
<pre>
 
# cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
# cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
12:43 10:35 8:27 6:19
12:43 10:35 8:27 6:19
</pre>
 
Dies sind die Standard-Werte der CPU (im Beispiel ein Intel Pentium Dual-Core T2330). Man sieht mehrere Wertepaare getrennt durch einen Doppelpunkt. Der erste Wert ist die Frequenz-ID, der zweite die Spannungs-ID. Die Frequenz-IDs dürfen nicht geändert werden, die Spannungs-IDs sollten schrittweise für jede Frequenz einzeln herabgesetzt werden. Die Frequenzen bekommt man mit
Dies sind die Standard-Werte der CPU (im Beispiel ein Intel Pentium Dual-Core T2330). Man sieht mehrere Wertepaare getrennt durch einen Doppelpunkt. Der erste Wert ist die Frequenz-ID, der zweite die Spannungs-ID. Die Frequenz-IDs dürfen nicht geändert werden, die Spannungs-IDs sollten schrittweise für jede Frequenz einzeln herabgesetzt werden. Die Frequenzen bekommt man mit
<pre>
 
# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
1600000 1333000 1067000 800000
1600000 1333000 1067000 800000
</pre>
 
Um die Frequenz selbst bestimmen zu können lädt man den userspace-Governor.
Um die Frequenz selbst bestimmen zu können lädt man den userspace-Governor.
<pre>echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor</pre>
echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Dann setzt man die CPU unter Vollast:
Dann setzt man die CPU unter Vollast:
<pre>dd if=/dev/zero of=/dev/null &</pre>
dd if=/dev/zero of=/dev/null &
und beginnt z.B. mit der höchsten Frequenz:
und beginnt z.B. mit der höchsten Frequenz:
<pre>echo 1600000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed</pre>
echo 1600000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
Nun verringert man die Spannungs-ID der höchsten Frequenz, bis der Rechner ein ungewöhliches Verhalten zeigt oder einfriert.
Nun verringert man die Spannungs-ID der höchsten Frequenz, bis der Rechner ein ungewöhliches Verhalten zeigt oder einfriert.
<pre>echo 12:30 10:35 8:27 6:19 > /sys/devices/system/cpu/cpu0/cpufreq/phc_controls</pre>
echo 12:30 10:35 8:27 6:19 > /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
Sollte der Rechner abstürzen, muss man erneut den userspace-Governor laden und dd starten.<br>
Sollte der Rechner abstürzen, muss man erneut den userspace-Governor laden und dd starten.
 
Hat man die passende Spannung für jede Frequenz gefunden, schreibt man diese z.B. in die /etc/rc.local:
Hat man die passende Spannung für jede Frequenz gefunden, schreibt man diese z.B. in die /etc/rc.local:
<pre>echo 12:20 10:15 8:10 6:5 > /sys/devices/system/cpu/cpu0/cpufreq/phc_controls</pre>
echo 12:20 10:15 8:10 6:5 > /sys/devices/system/cpu/cpu0/cpufreq/phc_controls


===AMD-CPU===
===AMD-CPU===

Version vom 25. März 2009, 22:23 Uhr

Mit dem Processor Hardware Control-Patch kann man Intel- und AMD-CPUs undervolten, also mit geringerer Spannung betreiben, um Strom zu sparen.

Voraussetzung

Man benötigt einen Prozessor, der entweder das acpi_cpufreq-Modul oder das powernow-k8-Modul unterstützt.

Installation

Intel-CPU

Es gibt ein Paket im AUR, das man sich selbst kompilieren kann: http://aur.archlinux.org/packages.php?ID=18310

Testweise gibt es dieses Modul für Kernel 2.6.29: http://aur.archlinux.org/packages.php?ID=24980

Falls nicht schon geschehen, trägt man acpi_cpufreq unter MODULES in der /etc/rc.conf ein.

MODULES=( ... acpi_cpufreq)

Anschließend muss man sein System rebooten.

AMD-CPU

Es gibt ein Paket, das man auf eigene Gefahr testen kann: http://aur.archlinux.org/packages.php?ID=22953

Falls nicht schon geschehen, trägt man powernow-k8 unter MODULES in der /etc/rc.conf ein.

MODULES=( ... powernow-k8)

Anschließend muss man sein System rebooten.

Konfiguration

Während der Konfiguration sollte man keine weiteren Arbeiten machen, der Rechner könnte instabil werden oder sogar einfrieren. Am Besten startet man den Rechner im Single-User-Modus. Dazu hängt man ein S an die Kernel-Zeile in Grub. Wenn du mehrere einzelne (!) Prozessoren in deinem Computer hast, musst du die Konfiguration für jede CPU durchführen. Bei Dual- oder Quad-Core Prozessoren ist dies nicht notwendig.

Intel-CPU

Bei Intel Prozessoren findet man das entscheidende Konfigurations-Interface unter /sys/devices/system/cpu/cpu0/cpufreq/phc_controls.

# cat /sys/devices/system/cpu/cpu0/cpufreq/phc_controls
12:43 10:35 8:27 6:19

Dies sind die Standard-Werte der CPU (im Beispiel ein Intel Pentium Dual-Core T2330). Man sieht mehrere Wertepaare getrennt durch einen Doppelpunkt. Der erste Wert ist die Frequenz-ID, der zweite die Spannungs-ID. Die Frequenz-IDs dürfen nicht geändert werden, die Spannungs-IDs sollten schrittweise für jede Frequenz einzeln herabgesetzt werden. Die Frequenzen bekommt man mit

# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
1600000 1333000 1067000 800000

Um die Frequenz selbst bestimmen zu können lädt man den userspace-Governor.

echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

Dann setzt man die CPU unter Vollast:

dd if=/dev/zero of=/dev/null &

und beginnt z.B. mit der höchsten Frequenz:

echo 1600000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed

Nun verringert man die Spannungs-ID der höchsten Frequenz, bis der Rechner ein ungewöhliches Verhalten zeigt oder einfriert.

echo 12:30 10:35 8:27 6:19 > /sys/devices/system/cpu/cpu0/cpufreq/phc_controls

Sollte der Rechner abstürzen, muss man erneut den userspace-Governor laden und dd starten.

Hat man die passende Spannung für jede Frequenz gefunden, schreibt man diese z.B. in die /etc/rc.local:

echo 12:20 10:15 8:10 6:5 > /sys/devices/system/cpu/cpu0/cpufreq/phc_controls

AMD-CPU

TO DO