PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tecra 8100 +SuSE 9.1 +ACPI = Lüfter funzzt nicht



hemming
20.12.04, 21:21
Hallo Zusammen,

nachdem ich nun mein Laptop (Toshiba Tecra 8100) mit der SuSE 9.1 beglückt habe,
die Toshiba ACPI tools eingespielt habe besteht noch ein Problem:

Die automatische Lüfterregelung funktioniert nicht.

Per Tastenkombination kann der Lüfter ein und ausgeschaltet werden.
Per schreiben in proc (echo "force_on:1" > /proc/acpi/toshiba/fan) kann der Lüfter ein und mit
dem Argument "0" auch wieder ausgeschaltet werden.

Das Ganze möchte ich nun gerne automatisieren:

Obertemperatur (55°??? oder andere) erreicht: Lüfter ein
Untere Temp. erreicht: Lüfter aus.

Wo kann ich hier am besten ansetzen (powersaved??)
Und wenn ja, wie, bin nicht so der große Skript-crack....

Danke schon mal für konstruktive Antworten im vorraus.

MFG

Christian

tictactux
20.12.04, 23:15
Hallo Christian,
hier ein Script, das ich auf einem alten NEC Versa einsetze.
Du müßtest nur prüfen, ob das Auslesen der Temperatur via ACPI bei
Dir auch so funktioniert, oder ob Toshiba-spezifische Einträge vorhanden
sind.
#!/bin/bash
# check_fan, ws:4/2002, Variante NEC Versa LX
set -e
print_msg() { # print only if stdout is a tty (not in a cronjob)
if [ -t ] ; then
echo $@
fi
}
declare -i TEMP_HOT=58 TEMP_OFF=49 TEMP_CURR=50
read UNDEF TEMP_CURR UNDEF </proc/acpi/thermal_zone/THM1/temperature
# print_msg "TEMP_CURR" $TEMP_CURR

read UNDEF FANSTATE </proc/acpi/fan/FAN0/state
# print_msg "Fan: " $FANSTATE

if [ $TEMP_CURR -gt $TEMP_HOT ]; then
if [ $FANSTATE != "on" ]; then
echo -n "0" >/proc/acpi/fan/FAN0/state
fi
else
if [ $FANSTATE = "on" ] && [ $TEMP_CURR -le $TEMP_OFF ] ; then
# print_msg "FAN is ON. Shutting off.."
echo -n "3" >/proc/acpi/fan/FAN0/state
fi
fi
Setze die Variablen TEMP_HOT und TEMP_OFF wie gewünscht.
Bestimmte Sachen mußt Du anpassen (z.B. steht bei mir in
/proc/acpi/fan/FAN0/state "1 on" wenn der Lüfter läuft, ich muß weiterhin
"3" reinschreiben um ihn anzuschalten, u.s.w. Sollte eigentlich erkennbar
sein.
Kopiere das Script nach Anpassung irgendwohin (z.B. /etc/cron.scripts),
mache es ausführbar (chmod 0755 check_fan), und trage es in /etc/crontab
ein (ich lasse es bei mir alle 2 Minuten laufen):

*/2 * * * * root /etc/cron.scripts/checkfan
Zum Testen, kannst Du das Script manuell ausführen, es kann dabei
hilfreich sein, bei den Zeilen mit print_msg das Kommentarzeichen (#) zu
entfernen ;)

HTH
Wolfgang

hemming
21.12.04, 08:05
Super!

Danke, hat geholfen und funktioniert!

MFG

Christian