frickelbude://

March 21, 2007

Lüftersteuerung für Compaq Evo N600c

Filed under: Uncategorized — martin @ 9:17 pm

Ich bin mit meinem Compaq Evo N600c “second-hand” Notebook schon seit geraumer Zeit eigentlich sehr zufrieden. Eine Macke hat das ganze Ding jedoch (leider); der Lüfter läuft solange nicht bis der Laptop einmal so richtig durchheizt, schaltet sich dann ein und hält auch selbstständig nicht mehr an. Das obwohl das Gerät eigentlich nichts tut, die meiste Zeit im Speedstep läuft und nur ca. 40°C Prozessortemperatur anzeigt.
Eine Lüftersteuerung musste her…

Die von mir gebastelte Lösung basiert im wesentlichen einfach darauf, dass man unter /proc/acpi/thermal_zone/ die Temperatur des Prozessors auslesen und über /proc/acpi/fan/ den Lüfterstatus regeln kann.

Das ganze benötigt dann nur noch 2 kleine Dateien, eine Konfigurationsdatei “temperatures” in /etc/ und das eigentliche Steuerscript:

/etc/temperatures
fan_off=44
fan_on=49

und /usr/bin/fancontrol

#!/usr/bin/perl
@temp = `cat /etc/temperatures`;
for(@temp)
{
if($_ =~ /fan_on/)
{
$fan_on = substr($_, -3, 2);
}
if($_ =~ /fan_off/)
{
$fan_off = substr($_, -3, 2);
}
}

$time = 0;

for ($time; $time < 60; $time +=1)
{
$cputemp = `cat /proc/acpi/thermal_zone/TZ1/temperature`;
$cputemp = substr($cputemp, -5, 3);
if ($cputemp > $fan_on)
{
$cmd = `echo -n 0 > /proc/acpi/fan/C1F8/state`;
}
if ($cputemp < $fan_off)
{
$cmd = `echo -n 3 > /proc/acpi/fan/C1F8/state`;
}
sleep 1;
}

Bitte entschuldigt die nicht vorhandene Einrückung, hab ich hier im Blog nicht hinbekommen :-/
Das ganze liest also die von euch frei wählbaren Regeltemperaturen aus der Konfigurationsdatei aus und steuert in einer 60 Sekunden Schleife den Lüfter. Damit es auch minütlich aufgerufen wird, fehlt nur noch folgender Eintrag in der crontab von root:

* * * * * /usr/bin/fancontrol &

Hierzu bitte sudo crontab -e benutzen, das Script funktioniert nicht als normaler Benutzer, da dieser kein Echo von Werten nach /proc/ machen darf!
Mit eventuellen Anpassungen an der Lüfter- und CPU-Bezeichnung ist dieses Skript sicher auch auf anderen Distributionen und Notebooks zu gebrauchen.

tags: fancontrol Lüftersteuerung perl linux kubuntu ubuntu debian

Powered by WordPress