Da im Forum schon mehrfach die Frage kam, ob man auch einen Pentium 4, der ja kein Speedstep hat, dynamisch takten kann, hier mal eine kurze Anleitung.
Ja, es geht.
Voraussetzungen:
- Kernel 2.6.x (2.4 habe ich nicht probiert, müßte man mal nachschauen, ob neuere Versionen die nötigen Treiber enthalten)
- ACPI Unterstützung im Kernel enthalten (egal, ob als Module oder fest im Kernel), APM Unterstützung deaktiviert
- im Abschnitt Power Management/CPU Frequency Scaling muß Pentium 4 Clockmod, Speedstep allgemein, und Performance und Userspace Governor aktiviert sein
Sind alle nötigen Treiber fest im Kernel enthalten, ist schon alles erledigt, sind die Treiber als Module kompiliert, muß natürlich dafür gesorgt werden, daß sie beim Systemstart geladen werden. Wie, darauf gehe ich hier nicht ein, da es von Distribution zu Distribution unterschiedlich gehandhabt wird, außerdem will ich kein ausschweifendes HowTo schreiben.
Das nächste icht die Installation des Daemons cpufreqd. Ist das erledigt, kann schon die Konfigurationsdatei bearbeitet werden (/etc/cpufreqd.conf). Hier ist zur Anschauung mal meine:
Code:
# CPUFREQD.CONF
#
# By Frankpr, Jan 2005
# For Intel Pentium 4 3,2E (Prescott)
#
# Dependencies: kernel 2.6.x
#               cpufreqscaling enabled (module p4-clockmod)
#               acpi enabled and modules loaded
#
# Thin config enable the Pentium 4 clockmod to switch dynamically the cpu speed from 400MHz up to 3,2GHz.
# Available frequencies can be found at /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies.
#

[General]
pidfile=/var/run/cpufreqd.pid
poll_interval=2
pm_type=acpi
acpi_workaround=1
verbosity=4

[Profile]
name=full_speed
minfreq=2800000
maxfreq=3200000
policy=performance

[Profile]
name=normal_speed
minfreq=1200000
maxfreq=1600000
policy=powersave

[Profile]
name=sleep_speed
minfreq=400000
maxfreq=800000
policy=powersave

[Rule]
name=sleep_cpu
ac=on
cpu_interval=0-40
cpu_nice_scale=1.5
delay_cycles=3
profile=sleep_speed

[Rule]
name=normal_cpu
ac=on
cpu_interval=30-80
profile=normal_speed

[Rule]
name=full_cpu
ac=on
cpu_interval=70-100
profile=full_speed
Geschrieben ist sie für den Pentium 4 3,2E (Prescott) und auf jeden anderen P4 übertragbar. Es müssen lediglich die Frequenzwerte angepaßt werden (in Hz angeben!). Die möglichen Werte spuckt ein
Code:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
aus. Es können natürlich auch Regeln hinzugefügt oder entfernt werden. So besteht z.B. die Möglichkeit, das Verhalten bei bestimmten Programmen zu regeln (Videowiedergabe mit vollem Takt trotz geringer Systemlast z.B.).
Das Ergebnis:
Ich habe das Ganze so konfiguriert, daß die Taktfrequenz sehr sensibel auf fallende Last reagiert, d.h., sehr schnell erst einmal auf 1,6GHz herunterschaltet, bleibt die Last gering, noch weiter herunter, zum Hochschalten auf 3,2GHz muß über mehrere Sekunden die volle Last anstehen. Dadurch steigt die CPU Temperatur selbst bei tagelangen 'Kompilierorgien' nie über 45Grad, für einen luftgekühlten 3,2GHz Prescott sensationell.

Viel Spaß und MfG