Mit Halt@Idle läst sich die Prozessor Temperatur um bis zu 10Grad senken, ausserdem kann der Stromverbrauch dadurch erheblich gesenkt werden.
Eine gute Sache, nur leider läuft es oft nicht von selbst.
Ich möchte deshalb an dieser Stelle ein paar Informationen und Tips geben
und aufteigen, wie sich das ganze realisieren lässt.
Was ist das ganze eigentlich?
Das ganze ist so gedacht, wenn der Prozessor gerade nichts zu tun hat, soll er sich ausklincken. dadurch wird weniger Strom vom System verbraucht ausserdem sinkt dadurch die Temperatur des Prozessors.
Toll, aber was ist das Problem dabei?
Das Problem ist folgendes.
1. Die DOS basierten Windows Versionen untertstützen dies nicht.
Es funktioniert hier nur mit Userspace-Programmen.
Zum Beispiel mit <a href="http://www.cpuidle.de/">cpuidle</a>
2. Bei den meisten Sockel A Athlon Boards ist diese Funktion deaktiviert.
3. Viele billig Netzteile (nicht nach Preis, sondern nach der Qualität) schaffen das Umschalten
nicht.
Windows
Wie gesagt, bei den DOS basierten Windows Versionen ist diese Funktion nicht vorgesehen.
Programme wie <a href="http://www.cpuidle.de/">cpuidle</a> können abhilfe schaffen.
Linux
Bei Linux wird der Halt befehl automatisch gesetzt wenn die CPU rumidled.
Vorrausetzung ist allerdings ein Kernel mit ACPI unterstützung
Das Athlon Problem
Bei den meisten Sockel A Mainboards für Athlon Prozessoren ist diese Funktion deaktiviert, weil es mit älteren Athlon Prozessoren Probleme gab.
Bei neueren Mainboards die die Barton Prozessoren unterstützen sollen, soll eigentlich eine entsprechende Funktion im Bios zu finden sein. Ist sie aber leider oft nicht.
Es gibt aber auch andere Möglichkeiten diese Funktion zu aktivieren.
Unter Windows ist obengenanntes Programm zu mepfehlen.
Unter Linux empfehle ich <a href="http://members.jcom.home.ne.jp/jacobi/linux/files/athcool-0.3.11.tar.gz">athcool</a> .
Vorraussetzung ist hier für ein Kernel mit ACPI Unterstützung.
Hierdurch wird der Prozessor in den Stop Grant Mode versetzt und vom Frontside-Bus getrennt.
Achtung
Einige schlechte Netzteile kommen mit dem wechselnden Connect des Prozessors nicht klar.
Es kann passierden das die Sound Ausgabe anfängt zu hacken.
Video Wiedergabe und Festplatten Zugriffe können verlangsammt werden.
Wenn eines dieser Probleme auftritt, sollte man auf diese Funktion lieber verzichten.
Unterstützte Chipsätze
KT133/a ; KX133 ; KT266/a ; KM266 ; KN266 ; KT333/a ; KT400 ; KM400 : KT600 ; SiS730 ; SiS740 ; SiS741 ; SiS746 ; SiS746FX ; SiS748 ; nForce ; nForce2 ; AMD761 ; AMD762
Problem Chipsätze
SiS735 ; SiS740 ; AMD751 ; AMD760
Selbst ist der Mann / Frau
Unter Linux ist man natürlich nicht dazu gezwungen ein Programm für solche Spiränzchen zu nutzen. Wer will kann diese Funktion auch selber steuern.
KT133/133A, KX133, KL/KLE133, KM/KN133
enable:
setpci -v -H1 -s 0:0.0 52=$(printf %x $((0x$(setpci -H1 -s 0:0.0 52) | 0x80)))
disable:
setpci -v -H1 -s 0:0.0 52=$(printf %x $((0x$(setpci -H1 -s 0:0.0 52) & 0x7f)))
KT266/266A/333,KM266/266A/333
enable:
setpci -v -H1 -s 0:0.0 92=$(printf %x $((0x$(setpci -H1 -s 0:0.0 92) | 0x80)))
setpci -v -H1 -s 0:0.0 95=$(printf %x $((0x$(setpci -H1 -s 0:0.0 95) | 0x02)))
disable:
setpci -v -H1 -s 0:0.0 92=$(printf %x $((0x$(setpci -H1 -s 0:0.0 92) & 0x7f)))
setpci -v -H1 -s 0:0.0 95=$(printf %x $((0x$(setpci -H1 -s 0:0.0 95) & 0xfd)))
KT333CF/KT400/KT400A/KM400/KM400A/KT600
enable:
setpci -v -H1 -s 0:0.0 D2=$(printf %x $((0x$(setpci -H1 -s 0:0.0 D2) | 0x80)))
setpci -v -H1 -s 0:0.0 D5=$(printf %x $((0x$(setpci -H1 -s 0:0.0 D5) | 0x02)))
disable:
setpci -v -H1 -s 0:0.0 D2=$(printf %x $((0x$(setpci -H1 -s 0:0.0 D2) & 0x7f)))
setpci -v -H1 -s 0:0.0 D5=$(printf %x $((0x$(setpci -H1 -s 0:0.0 D5) & 0xfd)))
KT880
enable:
setpci -v -H1 -s 0:0.0 82=$(printf %x $((0x$(setpci -H1 -s 0:0.0 82) | 0x80)))
setpci -v -H1 -s 0:0.0 85=$(printf %x $((0x$(setpci -H1 -s 0:0.0 85) | 0x02)))
disable:
setpci -v -H1 -s 0:0.0 82=$(printf %x $((0x$(setpci -H1 -s 0:0.0 82) & 0x7f)))
setpci -v -H1 -s 0:0.0 85=$(printf %x $((0x$(setpci -H1 -s 0:0.0 85) & 0xfd)))
SIS730/733
enable:
setpci -v -H1 -s 0:0.0 6B=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6B) | 0x01)))
disable:
setpci -v -H1 -s 0:0.0 6B=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6B) & 0xfe)))
SIS735/740/745/755
enable:
setpci -v -H1 -s 0:0.0 6A=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6A) | 0x0003)))
disable:
setpci -v -H1 -s 0:0.0 6A=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6A) & 0xfffc)))
SIS741/741GX/746/748
enable:
setpci -v -H1 -s 0:0.0 6C=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6C) | 0x0003)))
disable:
setpci -v -H1 -s 0:0.0 6C=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6C) & 0xfffc)))
Nforce
enable:
setpci -v -H1 -s 0:0.0 E7=$(printf %x $((0x$(setpci -H1 -s 0:0.0 E7) | 0x06)))
disable:
setpci -v -H1 -s 0:0.0 E4=$(printf %x $((0x$(setpci -H1 -s 0:0.0 E7) & 0xf9)))
Nforce2
enable:
setpci -v -H1 -s 0:0.0 6F=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6F) | 0x10)))
disable:
setpci -v -H1 -s 0:0.0 6F=$(printf %x $((0x$(setpci -H1 -s 0:0.0 6F) & 0xef)))
AMD751und AMD760/761
enable:
setpci -v -s 0:0.0 0x62=$(printf %x $((0x$(setpci -H1 -s 0:0.0 62) | 0x06)))
disable:
setpci -v -s 0:0.0 0x62=$(printf %x $((0x$(setpci -H1 -s 0:0.0 62) & 0xf9)))