Das Problem
Seit längerer Zeit versuche ich schon den Lßfter meines FSC Amilo 1425 unter Linux etwas leiser zu bekommen. Der bisherige Kenntnisstand war das der Lßfter unter Windows XP (Auslieferungszustand) kaum hÜrbar nach dem Booten anlief, bei Belastung dann hÜrbar und nervend hÜher drehte, kurz - die Lßfterregelung schien zu funktionieren.
LĂśsungssuche
Unter Linux (getestet SuSe, Fedora, Gentoo, Ubuntu Breezy-Feisty und Feisty mit Gutsy-Kernel) läuft der LĂźfter schon nach dem Booten mit mittelprächtiger Drehzahl was sich beim Arbeiten weiter durchzieht und bei Belastung durch intensives Surfen oder Ansehen von Flashclips auf Youtube oder Ăhnlichem noch steigert. Alle Recherchen Ăźber diese LĂźfterproblematik unter Linux blieben bisher erfolglos, man liest die Temperatur sei per DSDT auf 75 Grad hardcoded, Temperatursensoren lassen sich nicht auslesen, die LĂźfterdrehzahl per trip_points nicht beeinflussen usw., usw.,âŚ
Kleiner Erfolg
Gestern Nacht hatte ich die Gelegenheit mit einem Amilo 1425-User zu sprechen der sich etwas näher mit der DSDT beschäftigt hat und auch unter Window (leider) auf die Lßfterregelung teilweise zugreifen kann. Mit einer neuen DSDT fßr den Amilo konnte er zwar auch nicht helfen, dafßr gabe er aber einige Hinweise die jetzt doch zu einem kleinen Erfolg gefßhrt haben:
- LĂźfter reinigen
- Neue Wärmeleitpaste auftragen
- Undervolting
Liest sich erst einmal wie ganz normale Standardtips die man ßberall finden kann. Das Problem war ich hatte mich bei meiner Suche nach ProblemlÜsungen ganz auf die DSDT fixiert und alle anderen MÜglichkeiten das Problem eventuell zu umgehen komplett vernachlässigt. Also ausprobiert. Der Lßfter war schnell gereinigt (war auch nach 2,5 Jahren Betrieb bitter nÜtig), brachte aber noch keinen merklichen Erfolg, neue Wärmeleitpaste fehlt noch. Jetzt also zum Undervolting.
Ziel erreicht: Amilo 1425 leiser!
Mit den hier beschriebenen Methoden habe ich den Amilo 1425 auf ein bisher sehr erträgliches Lautstärkemass bekommen und schone weiterhin per Undervolting den potentiell mÜglichen Akku (auch wenn er seit 2,5 Jahren unbenutzt ist), die Gehäusetemperatur rechts vorne (CPU,Kßhler,Grafikkarte) ist auch etwas niedriger als gewohnt.
Damit fällt der letzte StÜrfaktor unter Linux mit einem Amilo 1425 weg.
Voraussetzungen
- Amilo 1425 mit 1,6Ghz, 1024Mb RAM
- Ubuntu Feisty
- Kernel 2.6.20-16-generic oder 2.6.22-9-generic
- Kenntnisnahme: Alle hier vorgestellten Veränderungen werden auf eigene Verantwortung durchgefßhrt, fßr eventuell auftretende Schäden an Hardware, Software, Daten oder anderem wird keine Haftung ßbernommen.
Vorbereitung / CPU-Frequenz Applet
Um die CPU-Frequenzen steuern zu kĂśnnen wird das CPU-Frequenz Applet zum Gnome-Panel hinzugefĂźgt (Rechtsklick auf leere Stelle im Panel -> Zum Panel hinzufĂźgen -> Ăberwachung der Prozessortaktstufen). Das Aplett zeigt im Auslieferungszustand nur die aktuelle CPU-Frequenz im Panel an. Um damit auch die Frequenz per Hand zu wechseln oder auch die Methode des automatischen Frequency-Scalings zu verändern mĂźssen wir diese MĂśglichkeiten freischalten:
sudo chmod +s /usr/bin/cpufreq-selector
Jetzt kĂśnnen nach einem Linksklick auf das Applet die einzelnen Taktstufen (weniger wichtig) und die Methoden des automatischen Frequenzscalings einstellen. Das wiederum ist wichtig - um einen leisen Amilo 1425 zu erhalten musste ich die Methode ‘Konservativ’ auswählen. Mit dieser Methode werden die CPU-Frequenzen bei Belastung nicht mehr sofort auf Maximum gefahren und dann zurĂźckgesetzt sondern langsam StĂźck fĂźr StĂźck erhĂśht und dann wieder StĂźck fĂźr StĂźck zurĂźckgesetzt.
Undervolting unter Ubuntu Feisty
Immer wieder bin ich auf Threads zum Thema Undervolting unter Ubuntu gestossen, war mir aber immer etwas zu viel Risiko mir das System zu zerschiessen. Und das habe ich oft genug hinter mir. Dieses mal habe ich etwas genauer gelesen. Mittlerweile muss man nicht unbedingt immer einen komplett neuen Kernel kompilieren, das fßr das Undervolting zuständige mit dem
PHC-Patch gepatchte Modul speedstep-centrino.ko gibt es fĂźr einige Kernel vorkompiliert:
Achtung: In diesen Threads wird auch davon gesprochen dass die 2.6.20-Version nicht bei Kerneln mit den Versionsnummern 2.6.20-8 bis -12 läuft was am Kernel selbst liegen soll.
Installation der speedstep-centrino.ko
Zuerst sichere man die originale speedstep-centrino.ko, hier in diesem Fall wird sie auf den Desktop kopiert:
cp /lib/modules/$(uname -r)/kernel/arch/i386/kernel/cpu/cpufreq/speedstep-centrino.ko $HOME/Desktop/speedstep-centrino.ko
Danach in das Verzeichnis werchseln in welchem die neu heruntergeladene gepatchte speedstep-centrino.ko fĂźr den passenden kernel liegt und selbige in das Modulverzeichnis des Kernels kopieren (der gleiche Befehl im Verzeichnis der gesicherten speedstep-centrino.ko setzt das Modul wieder zurĂźck in Originalzustand):
sudo cp speedstep-centrino.ko /lib/modules/$(uname -r)/kernel/arch/i386/kernel/cpu/cpufreq
Reboot.
Jetzt ist die gepatchte Version von speedstep-centrino geladen und die Prozessorspannungen kÜnnen geändert werden. Aktuelle Daten auslesen kann man beispielsweise fßr die aktuell eingestellten Spannungen fßr die verschiedenen Taktfrequenzen:
cat /sys/devices/system/cpu/cpu0/cpufreq/voltage_table
Auslesen der Taktfrequenzen:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
Auslesen von kombinierter Tabelle :
cat /sys/devices/system/cpu/cpu0/cpufreq/op_points_table
Nach meinen Bearbeitungen (die Spannungen sind hier schon abgesenkt) sieht diese Tabelle hier folgendermassen aus, meine verfĂźgbaren Frequenzen sind derzeit 600Mhz, 800Mhz, 1Ghz, 1,2Ghz, 1,4Ghz und 1,6Ghz, die jeweilige Zahl nach dem Doppelpunkt entspricht der in mVolt:
600000:700,800000:796,1000000:844,1200000:892,1400000:940,1600000:1036
Um die Spannungen nun zu verändern schreibt man sie in veränderter Form wieder in diese Datei, die Form und Frequenzen muss gewahrt werden, die Spannungen sollte man vorsichtig Stßck fßr Stßck absenken und fßr die entsprechenden Frequenzen auf Stabilität prßfen, wenn der Rechner abstßrzt bzw. einfriert ist die Spannung zu niedrig. Die Frequenz/Spannungsdaten sind hier natßrlich auf den Amilo bezogen und kÜnnen bei anderen Rechnern variieren, ebenso die erreichbaren Endwerte:
echo 600000:700,800000:796,1000000:844,1200000:892,1400000:940,1600000:1036 | sudo tee /sys/devices/system/cpu/cpu0/cpufreq/op_points_table
Zur Kontrolle kann man sich die Daten nochmal per cat… wie oben beschrieben ausgeben lassen.
Sind stabile Endwerte erreicht worden kann man die veränderten Spannungsdaten automatisch bei Systemstart schreiben lassen:
sudo gedit /etc/rc.local
In diese Datei vor dem abschliessenden ‘exit 0′ folgende Zeile eintragen (natĂźrlich mit den angepassten Spannungen):
sh -c "echo 600000:700,800000:796,1000000:844,1200000:892,1400000:940,1600000:1036" > /sys/devices/system/cpu/cpu0/cpufreq/op_points_table
Auf diesem Weg habe ich ein im Moment deutlich leiseres Amilo 1425 vor mir stehen, läuft seit ca. 5 Stunden in normalem Betrieb (Surfen, Schreiben, Webwork) mit grÜsseren Pausen zwischendurch ohne grÜssere Belastungen stabil. Der Lßfter surrt hÜrbar auf gefßhlter Stufe 2 von 5 aber deutlich leiser als die sonst gewohnten subjektiven Stufen 3-5. Die rechte untere Gehäuseecke, Sitz von CPU, Lßfter und Grafikkarte fßhlt sich ebenfalls etwas kßhler an. Die CPU-Spannungen sind noch nicht bis zur Grenze optimiert, eventuell steckt da sogar noch etwas Potential drin, mal sehen.
Links zum Thema
http://ubuntu.wordpress.com/2005/11/04/enabling-cpu-frequency-scaling/
http://wiki.ubuntuusers.de/Prozessorspannung_absenken
http://wiki.ubuntuusers.de/Strom_sparen
http://wiki.ubuntuusers.de/Prozessortaktung
Patch/PHC-Projekt: https://www.dedigentoo.org/trac/linux-phc/Vielleicht auch interessant:
©2008 CoreBlog.