Cpupower: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
(Eine Überarbeitung... kann noch Fehler enthalten ;))
Zeile 1: Zeile 1:
{{Unvollständig}}
{{Unvollständig}}
{{righttoc}}
Bei Cpufrequtils handelt es sich um eine Sammlung kleiner, nützlicher Werkzeuge welche die Skalierung von Frequenz und Spannung moderner Prozessoren möglich macht, um so eine geringere Abwärme und einen geringeren Stromverbrauch hervorzurufen. Dahinter steht ein Prinzip, welches die Frequenz des Prozessors abhängig von der momentan benötigten Leistung entweder erhöht oder absenkt. Diese Technik ist insbesondere für Notebookbesitzer interessant, um so eine längere und gleichzeitig schonendere Akkunutzung zu gewährleisten.
Bei Cpufrequtils handelt es sich um eine Sammlung kleiner, nützlicher Werkzeuge welche die Skalierung von Frequenz und Spannung moderner Prozessoren möglich macht, um so eine geringere Abwärme und einen geringeren Stromverbrauch hervorzurufen. Dahinter steht ein Prinzip, welches die Frequenz des Prozessors abhängig von der momentan benötigten Leistung entweder erhöht oder absenkt. Diese Technik ist insbesondere für Notebookbesitzer interessant, um so eine längere und gleichzeitig schonendere Akkunutzung zu gewährleisten.


== Installation ==
== Installation ==
Das gesamte Paket kann aus dem Extra-Repositorium heraus mittels des folgenden Befehls installiert werden.
Das Paket kann mittels [[pacman]] installiert werden:
  pacman -Sy cpufrequtils
  pacman -Sy cpufrequtils


== Konfiguration ==
== Konfiguration ==
Nun können wir uns an die eigentliche Konfiguration heranwagen. '''Es ist zu beachten, dass diese Werte exemplarisch anhand des Prozessors des Autors sind, und die getroffenen Einstellungen nicht 1:1 auf das eigene System übertragen werden können!'''
{{Hinweis|Alle Werte sind als Beispiel anzusehen und können nicht zwangsläufig auf das eigene System übernommen werden.}}


=== Analyse der zulässigen Frequenzen ===
=== Kernelmodule ===
Bevor überhaupt erst korrekte Einstellungen möglich sind, muss zuerst ermittelt werden, welche Frequenzen für den Prozessor zulässig sind. Dies funktioniert bei modernen Prozessoren in der Regel mit dem acpi-cpufreq Treiber tadellos. Laden wir nun den Treiber entweder manuell als Superuser mit dem Befehl
Die Grundlage für ''cpufrequtils'' bilden Kernelmodule, die Informationen über die möglichen Frequenzen bereitstellen und den Prozessor bei bedarf herunter- oder hochtakten.


Zuerst muss das Modul ''acpi-cpufreq'' geladen werden, dass die Informationen über den Prozessor bereitstellt. Für ältere Intel Prozessoren werden noch zusätzlich die Module ''p4-clockmod'' oder ''speedstep-centrino'', für AMD Prozessoren die Module powernow-k6, powernow-k7 oder powernow-k8 benötigt.
{{Hinweis|Das Modul ''powernow-k8'' unterstützt auch die neueren AMD Prozessoren, wie Phenom usw..}}
Nun müssen die nötigen Module geladen werden:
  modprobe acpi-cpufreq
  modprobe acpi-cpufreq
Bei einem AMD Prozessor kommt beispielsweise noch ''powernow-k8'' hinzu:
modprobe powernow-k8


oder lassen ihn beim Start automatisch durch Hinzufügen des Befehls acpi-cpufreq zur Modulreihe der rc.conf mitstarten.
Damit die Module beim Systemstart automatisch geladen werden, müssen sie in das MODULES Array in der ''rc.conf'' eingetragen werden:
 
  MODULES=(... cpufreq-utils ...)
  MODULES=([…] acpi-cpufreq)
Alternativ auch wieder für einen AMD Prozessor:
 
  MODULES=(... cpufreq-utils powernow-k8 ...)
Zusätzlich muss der Daemon in das DAEMONS-Array in der Datei /etc/rc.conf hinzugefügt werden
 
  DAEMONS=([…] acpi-cpufreq)


Nun lassen sich mit folgendem Befehl detailierte Informationen, darunter auch die zulässigen Frequenzen, zum eigenen Prozessor abrufen:
Nun lassen sich mit folgendem Befehl detailierte Informationen, darunter auch die zulässigen Frequenzen, zum eigenen Prozessor abrufen:
  cpufreq-info
  cpufreq-info


Diese sieht beispielsweise für einen Core 2 Duo T7250 derart aus:
Diese sieht beispielsweise für einen Core 2 Duo T7250 derart aus:
  cpufrequtils 004: cpufreq-info (C) Dominik Brodowski 2004-2006
  cpufrequtils 004: cpufreq-info (C) Dominik Brodowski 2004-2006
  Bitte melden Sie Fehler an cpufreq@lists.linux.org.uk.
  Bitte melden Sie Fehler an cpufreq@lists.linux.org.uk.
Zeile 51: Zeile 53:
   momentane Taktfrequenz ist 2.00 GHz  (verifiziert durch Nachfrage bei der Hardware).
   momentane Taktfrequenz ist 2.00 GHz  (verifiziert durch Nachfrage bei der Hardware).


=== Einrichtung von cpufreq auf AMD-Systemen ===
=== Prozessor '''Governors''' ===
'''Das folgende Doing führt auch bei Intel-CPUs zum Erfolg, soweit man <tt>powernow-k8</tt> ignoriert!'''<br />
'''Governors''' können als vordefinierte Schemas angesehen werden, unter welchen Umständen der Prozessor herunter- und hochgetaktet wird. Sie sind Kernelmodule, die, wenn gewünscht, auch alle geladen werden können.
'''Bei Sockel AM2/AM2+ Mainboards darf "AM2 Boost" im BIOS nicht aktiviert sein, sonst funktioniert C&Q nicht richtig!'''


Bei AMD-basierenden Systemen ist cpufreq einfach einzurichten. Folgende Module werden dann nach erfolgter Einrichtung geladen: powernow-k8, cpufreq-ondemand
Folgende '''Governors''' sind verfügbar:
* performance (Voreinstellung) - fest in den Kernel einkompiliert und stellt den Prozessor auf die höchste Frequenz
* cpufreq_ondemand (empfohlen) - taktet den Prozessor je nach Systemlast herauf und herunter
* cpufreq_conservative - ähnlich wie ondemand, aber änderungen der Taktrate sind seltener
* cpufreq_powersave - stellt den Prozessor auf die niedrigste Frequenz


modprobe powernow-k8
Nun müssen die gewünschten Kernelmodule geladen werden:
  modprobe cpufreq-ondemand
  modprobe cpufreq_ondemand


Danach diese beiden Module in die rc.conf im MODULES-Array eintragen:
Damit sie auch beim Systemstart gealden werden, müssen auch sie in das MODULES Array der ''rc.conf'' eingetragen werden:
MODULES=(... acpi_cpufreq '''cpufreq_ondemand''' ...)


  MODULES=([…] powernow-k8 cpufreq-ondemand)
Welcher ''Governor'' dann die Kontrolle übernimmt, kann mit
  cpufreq-set  -g ondemand
eingestellt werden. Diese Einstellung geht nach einem Neustart verloren, daher kann sie mit dem cpufreq Daemon beim Systemstart gesetzt werden.


Nun muss mittels cpufreq-info heraus gefunden werden, welche Taktraten der Prozessor minimum und maximum haben kann. Beispiel für einen AMD ATHLON64 X2 4000+
=== cpufreq Daemon ===
 
Nun muss die /etc/conf.d/cpufreq angepasst werden. Darin können der ''Governor'' und die minimale und höchste Prozessorfrequenz eingestellt werden.
$ cpufreq-info
{{Hinweis|Die Angaben zu den Frequenzen können auskommentiert werden, da sie automatisch erkannt werden sollten.}}
cpufrequtils 005: cpufreq-info (C) Dominik Brodowski 2004-2006
Bitte melden Sie Fehler an cpufreq@vger.kernel.org.
analysiere CPU 0:
  Treiber: powernow-k8
  Folgende CPUs können nur gleichzeitig ihre Frequenz variieren: 0 1
  Hardwarebedingte Grenzen der Taktfrequenz: 1000 MHz - 2.10 GHz
  mögliche Taktfrequenzen: 2.10 GHz, 2.00 GHz, 1.80 GHz, 1000 MHz
  mögliche Regler: ondemand, performance
  momentane Taktik: die Frequenz soll innerhalb 1000 MHz und 2.10 GHz.
                    liegen. Der Regler "ondemand" kann frei entscheiden,
                    welche Taktfrequenz innerhalb dieser Grenze verwendet wird.
  momentane Taktfrequenz ist 1000 MHz.
analysiere CPU 1:
  Treiber: powernow-k8
  Folgende CPUs können nur gleichzeitig ihre Frequenz variieren: 0 1
  Hardwarebedingte Grenzen der Taktfrequenz: 1000 MHz - 2.10 GHz
  mögliche Taktfrequenzen: 2.10 GHz, 2.00 GHz, 1.80 GHz, 1000 MHz
  mögliche Regler: ondemand, performance
  momentane Taktik: die Frequenz soll innerhalb 1000 MHz und 2.10 GHz.
                    liegen. Der Regler "ondemand" kann frei entscheiden,
                    welche Taktfrequenz innerhalb dieser Grenze verwendet wird.
  momentane Taktfrequenz ist 1000 MHz.
 
Nun muss die /etc/conf.d/cpufreq entsprechend angepasst werden. Anhand des oben genannten AMD-Prozessor sieht diese wie folgt aus:


  #configuration for cpufreq control
  #configuration for cpufreq control
Zeile 100: Zeile 84:
   
   
  # valid suffixes: Hz, kHz (default), MHz, GHz, THz
  # valid suffixes: Hz, kHz (default), MHz, GHz, THz
  min_freq="1.0GHz"
  #min_freq="1.0GHz"
  max_freq="2.1GHz"
  #max_freq="2.1GHz"
 
Nun kann der Daemon gestartet werden:
/etc/rc.d/cpufreq start


Das wars mit der Einrichtung. Nun den Dienst mittels <tt>/etc/rc.d/cpufreq restart</tt> (als root) neustarten und <tt>cpufreq</tt> in das DAEMONS-Array der <tt>/etc/rc.conf</tt> oder in die <tt>/etc/rc.local</tt> eintragen und zum Beispiel per ...
Um den Daemon beim Systemstart zu laden, muss ''cpufreq'' in das DAEMONS Array der ''rc.conf'' eingetragen werden:
DAEMONS=(... cpufreq ...)


Anschließend kann die Prozessorfrequenz mit
  cat /proc/cpuinfo
  cat /proc/cpuinfo
 
oder
...oder dem Befehl...
 
  cpufreq-info
  cpufreq-info
 
überprüft werden.
...die Taktung überprüfen.
 
'''Wer den Daemon nicht mag:''' Es reicht auch
echo "ondemand" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
in der <tt>/etc/rc.local</tt>


== Bekannte Probleme ==
== Bekannte Probleme ==
Zeile 127: Zeile 109:
** Falsche Angabe des Taktes ( bsp.: 500 GHz )
** Falsche Angabe des Taktes ( bsp.: 500 GHz )
** Träges Verhalten bei aktiven C&Q
** Träges Verhalten bei aktiven C&Q
Bei Sockel AM2/AM2+ Mainboards darf "AM2 Boost" im BIOS nicht aktiviert sein, sonst funktioniert C&Q nicht richtig!


[[Kategorie:Energieverwaltung]]
[[Kategorie:Energieverwaltung]]

Version vom 18. September 2009, 13:13 Uhr

Dieser Artikel oder Artikelabschnitt ist noch nicht vollständig!


Bei Cpufrequtils handelt es sich um eine Sammlung kleiner, nützlicher Werkzeuge welche die Skalierung von Frequenz und Spannung moderner Prozessoren möglich macht, um so eine geringere Abwärme und einen geringeren Stromverbrauch hervorzurufen. Dahinter steht ein Prinzip, welches die Frequenz des Prozessors abhängig von der momentan benötigten Leistung entweder erhöht oder absenkt. Diese Technik ist insbesondere für Notebookbesitzer interessant, um so eine längere und gleichzeitig schonendere Akkunutzung zu gewährleisten.

Installation

Das Paket kann mittels pacman installiert werden:

pacman -Sy cpufrequtils

Konfiguration

Hinweis: Alle Werte sind als Beispiel anzusehen und können nicht zwangsläufig auf das eigene System übernommen werden.

Kernelmodule

Die Grundlage für cpufrequtils bilden Kernelmodule, die Informationen über die möglichen Frequenzen bereitstellen und den Prozessor bei bedarf herunter- oder hochtakten.

Zuerst muss das Modul acpi-cpufreq geladen werden, dass die Informationen über den Prozessor bereitstellt. Für ältere Intel Prozessoren werden noch zusätzlich die Module p4-clockmod oder speedstep-centrino, für AMD Prozessoren die Module powernow-k6, powernow-k7 oder powernow-k8 benötigt.

Hinweis: Das Modul powernow-k8 unterstützt auch die neueren AMD Prozessoren, wie Phenom usw..

Nun müssen die nötigen Module geladen werden:

modprobe acpi-cpufreq

Bei einem AMD Prozessor kommt beispielsweise noch powernow-k8 hinzu:

modprobe powernow-k8

Damit die Module beim Systemstart automatisch geladen werden, müssen sie in das MODULES Array in der rc.conf eingetragen werden:

MODULES=(... cpufreq-utils ...)

Alternativ auch wieder für einen AMD Prozessor:

MODULES=(... cpufreq-utils powernow-k8 ...)

Nun lassen sich mit folgendem Befehl detailierte Informationen, darunter auch die zulässigen Frequenzen, zum eigenen Prozessor abrufen:

cpufreq-info

Diese sieht beispielsweise für einen Core 2 Duo T7250 derart aus:

cpufrequtils 004: cpufreq-info (C) Dominik Brodowski 2004-2006
Bitte melden Sie Fehler an cpufreq@lists.linux.org.uk.
analysiere CPU 0:
  Treiber: acpi-cpufreq
  Folgende CPUs können nur gleichzeitig ihre Frequenz variieren: 0 1
  Hardwarebedingte Grenzen der Taktfrequenz: 800 MHz - 2.00 GHz
  mögliche Taktfrequenzen: 2.00 GHz, 2.00 GHz, 1.60 GHz, 1.20 GHz, 800 MHz
  mögliche Regler: performance
  momentane Taktik: die Frequenz soll innerhalb 800 MHz und 2.00 GHz.
                    liegen. Der Regler "performance" kann frei entscheiden,
                    welche Taktfrequenz innerhalb dieser Grenze verwendet wird.
  momentane Taktfrequenz ist 2.00 GHz  (verifiziert durch Nachfrage bei der Hardware).
analysiere CPU 1:
  Treiber: acpi-cpufreq
  Folgende CPUs können nur gleichzeitig ihre Frequenz variieren: 0 1
  Hardwarebedingte Grenzen der Taktfrequenz: 800 MHz - 2.00 GHz
  mögliche Taktfrequenzen: 2.00 GHz, 2.00 GHz, 1.60 GHz, 1.20 GHz, 800 MHz
  mögliche Regler: performance
  momentane Taktik: die Frequenz soll innerhalb 800 MHz und 2.00 GHz.
                    liegen. Der Regler "performance" kann frei entscheiden,
                    welche Taktfrequenz innerhalb dieser Grenze verwendet wird.
  momentane Taktfrequenz ist 2.00 GHz  (verifiziert durch Nachfrage bei der Hardware).

Prozessor Governors

Governors können als vordefinierte Schemas angesehen werden, unter welchen Umständen der Prozessor herunter- und hochgetaktet wird. Sie sind Kernelmodule, die, wenn gewünscht, auch alle geladen werden können.

Folgende Governors sind verfügbar:

  • performance (Voreinstellung) - fest in den Kernel einkompiliert und stellt den Prozessor auf die höchste Frequenz
  • cpufreq_ondemand (empfohlen) - taktet den Prozessor je nach Systemlast herauf und herunter
  • cpufreq_conservative - ähnlich wie ondemand, aber änderungen der Taktrate sind seltener
  • cpufreq_powersave - stellt den Prozessor auf die niedrigste Frequenz

Nun müssen die gewünschten Kernelmodule geladen werden:

modprobe cpufreq_ondemand

Damit sie auch beim Systemstart gealden werden, müssen auch sie in das MODULES Array der rc.conf eingetragen werden:

MODULES=(... acpi_cpufreq cpufreq_ondemand ...)

Welcher Governor dann die Kontrolle übernimmt, kann mit

cpufreq-set  -g ondemand

eingestellt werden. Diese Einstellung geht nach einem Neustart verloren, daher kann sie mit dem cpufreq Daemon beim Systemstart gesetzt werden.

cpufreq Daemon

Nun muss die /etc/conf.d/cpufreq angepasst werden. Darin können der Governor und die minimale und höchste Prozessorfrequenz eingestellt werden.

Hinweis: Die Angaben zu den Frequenzen können auskommentiert werden, da sie automatisch erkannt werden sollten.

#configuration for cpufreq control

# valid governors:
#  ondemand, performance, powersave,
#  conservative, userspace
governor="ondemand"

# valid suffixes: Hz, kHz (default), MHz, GHz, THz
#min_freq="1.0GHz"
#max_freq="2.1GHz"

Nun kann der Daemon gestartet werden:

/etc/rc.d/cpufreq start

Um den Daemon beim Systemstart zu laden, muss cpufreq in das DAEMONS Array der rc.conf eingetragen werden:

DAEMONS=(... cpufreq ...)

Anschließend kann die Prozessorfrequenz mit

cat /proc/cpuinfo

oder

cpufreq-info

überprüft werden.

Bekannte Probleme

Eventuell hier noch bekannte Probleme mit eintragen

  • Einige AM2/AM2+ Boards
    • Deaktivierung des AM2-Boost.
      • ASRock ALiveNF5-eSATA2+ R3.0 ( NVIDIA Chipsatz )
    • C&Q muss im BIOS aktiviert sein.
  • VMWare Server 2.0
    • Falsche Angabe des Taktes ( bsp.: 500 GHz )
    • Träges Verhalten bei aktiven C&Q

Bei Sockel AM2/AM2+ Mainboards darf "AM2 Boost" im BIOS nicht aktiviert sein, sonst funktioniert C&Q nicht richtig!