1.
Einen P4 dynamisch zu takten, ist eigentlich kein Problem. Es bringt auch Vorteile, da eine runtergetaktete CPU weniger warm wird und ebenso weniger Strom verbraucht.
2.
Man muss aber einen eigenen Kernel hierfür bauen, da der Debian-Kernel defaultmäßig so eingestellt ist, dass die CPU die ganze Zeit mit voller Leistung läuft.
3.
Folgende Kernel-Optionen habe ich gesetzt:
#
# Power management options (ACPI, APM)
#
CONFIG_PM=y
#
# ACPI (Advanced Configuration and Power Interface) Support
#
CONFIG_ACPI=y
CONFIG_ACPI_PROCESSOR=y
#
# APM (Advanced Power Management) BIOS Support
#
# CONFIG_APM is not set
#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=y
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_TABLE=y
#
# CPUFreq processor drivers
#
CONFIG_X86_P4_CLOCKMOD=y
Damit ist bei mir alles Notwendige fest im Kernel drin. Man kann CONFIG_ACPI_PROCESSOR, CONFIG_CPU_FREQ_GOV_POWERSAVE, CONFIG_CPU_FREQ_GOV_USERSPACE, CONFIG_CPU_FREQ_TABLE und CONFIG_X86_P4_CLOCKMOD aber auch als Modul kompilieren. Man muss sie dann halt bei Rechnerstart nur laden.
4.
Nun den Kernel bauen und installieren. Nach einem Neustart sollte im Verzeichnis /sys/devices/system/cpu/cpu0/cpufreq/ dann Folgendes zu finden sein:
Code: Alles auswählen
cpuinfo_cur_freq scaling_available_governors scaling_max_freq
cpuinfo_max_freq scaling_cur_freq scaling_min_freq
cpuinfo_min_freq scaling_driver scaling_setspeed
scaling_available_frequencies scaling_governor
5.
Mit "apt-get install cpufreqd" installiert man dann den daemon zur Einstellung der cpu speed. Anschließend habe ich mit den Angaben aus "scaling_available_frequencies" und "scaling_available_governors" meine cpufreqd.conf gebastelt. "man cpufreqd" und "man cpufreqd.conf" geben reichlich Auskunft über die Konfigurationsmöglichkeiten.
Hier als Beispiel meine cpufreqd.conf. Ich habe sie so gebaut, dass die CPU bei wenig Last recht schnell auf die niedrigste Frequenz runterfährt. Wenn erforderlich (z. B. bei Programmstarts) geht sie aber sofort wieder auf das Maximum, so dass hier kaum Verzögerungen fest zustellen sind. Außerdem wird für Video- und DVD-Programme sofort auf volle Leistung gefahren.
Die Werte für die Frequenzen und die governors müsst Ihr natürlich für Eure CPU anpassen!
Code: Alles auswählen
# /etc/cpufreqd.conf
[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=full_cpu
ac=on
cpu_interval=70-100
profile=full_speed
[Rule]
name=normal_cpu
ac=on
cpu_interval=30-80
profile=normal_speed
[Rule]
name=sleep_cpu
ac=on
cpu_interval=0-40
cpu_nice_scale=1.5
delay_cycles=3
profile=sleep_speed
[Rule]
name=movie_watch
ac=on
cpu_interval=0-100
programs=mplayer,gmplayer,vlc
profile=full_speed
Flori