Ja, das Ding ist alt, aber gerade das ist in diesem Fall vorteilhaft. Da die Lüftersteuerung in der Form schon seit Jahren in meinem Extensa 5220 läuft und mir der CPU bislang noch nicht abgerauscht ist, sind die Risiken einer weiteren Anwendung statistisch wohl geringer. Trotzdem, jede Verwendung auf eigene Verantwortung!
Aber warum sollten wir überhaupt eine eigene Lüftersteuerung verwenden? Mehrere Ursachen: Entweder ist man mit der implementierten Steuerung nicht zufrieden, weil zu laut, zu warm, läuft zu häufig an, etc. oder – wie in meinem Fall – man hat einen anderen CPU eingebaut, der, obwohl er weniger Wärme abgibt, recht häufig den Lüfter anspringen lässt. Die Ursache hierfür kann in der unzureichenden Unterstützung von Acer liegen. Zumindest werden stärkere CPUs, z.B. der T8300, vom Santa Rosa Chipsatz unterstützt. Und so greifen Extensa-Benutzer durchgehend, auch unter Windows, zu einer eigenen Lüftersteuerung.

acerhdf

Das Modul acerhdf befindet sich ab 9.10 Ubuntu vorinstalliert unter den Kernelmodulen. Hier wird und kann es jedoch nur mit dem Acer Aspire One eingesetzt, siehe Eintrag im wiki.ubuntuusers.de. Um das Modul auch auf das Extensa zu erweitern habe ich den Quellcode der Version v0.5.22 ergänzt und die Änderungen als Patch zusammengefasst.
Das Modul acerhdf wurde von Peter Feuerer entwickelt und ist aktuell in der Version v0.5.25. Mein Patch ist gegen die Version v0.5.22.

Modifizierungen an acerhdf

Was hab ich verändert? Ok, erstmal das Extensa eingetragen, damit es überhaupt als zulässig erkannt wird.

/* Register addresses and values for different BIOS versions */
static const struct bios_settings_t bios_tbl[] = {
{„Acer           „, „Extensa 5220                   „, „V1.35          „, 0x93, 0xa8, {0x14, 0x14, 0x04} }

Wobei in Position 0x93 das Flag für den EC-Modus liegt, in 0xa8 die Temperatur liegt und 0x04 den EC aktivieren bzw. 0x14 den EC deaktivieren. Der EC-Modus ist hier ei die Regelung des Lüfters durch den BIOS bzw. den Embedded Controller BIOS.
Jetzt muss nur noch eine kleine Ergänzung eingefügt werden.

/* Set the initial fan speed to zero for Extensa 5220 */
ec_write(0x94, 0xff);

Damit wird die Geschwindigkeit des Lüfters beim Wechsel von EC zu manuell auf Aus (0xff) gesetzt. Dies ist notwendig, da die Lüftersteuerung auf der Annahme basiert, dass die Steuerung im manuellen Modus – wie scheinbar bei den Aspire Modellen – mit Aus startet.
Die Änderungen befinden sich im Patch acerhdf_kmod-0.5.22e.patch.tar.gz im Anhang.

Installation

Um das modifizierte acerhdf zu installieren, lädt man zunächst den Quellcode der Version v0.5.22 herunter. Auf den entpackten Code wird der Patch angewendet. Danach kann das Modul kompiliert werden.

user@machine:~/acerhdf_kmod-0.5.22$ patch < acerhdf_kmod-0.5.22e.patch
patching file acerhdf.c
user@machine:~/acerhdf_kmod-0.5.22$ make
make -C /lib/modules/2.6.38-8-generic/build  SUBDIRS=/home/user/acerhdf_kmod-0.5.22 modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.38-8-generic'
CC [M]  /home/user/acerhdf_kmod-0.5.22/acerhdf.o
Building modules, stage 2.
MODPOST 1 modules
CC      /home/user/acerhdf_kmod-0.5.22/acerhdf.mod.o
LD [M]  /home/user/acerhdf_kmod-0.5.22/acerhdf.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.38-8-generic'

user@machine:~/acerhdf_kmod-0.5.22$ sudo make install
[sudo] password for user:
make -C /lib/modules/2.6.38-8-generic/build  SUBDIRS=/home/user/acerhdf_kmod-0.5.22 modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.38-8-generic'
Building modules, stage 2.
MODPOST 1 modules
make[1]: Leaving directory `/usr/src/linux-headers-2.6.38-8-generic'

[ -d /lib/modules/2.6.38-8-generic/updates ] || mkdir /lib/modules/2.6.38-8-generic/updates
cp acerhdf.ko /lib/modules/2.6.38-8-generic/updates/
depmod -a

Verwendung

Wie im Wiki beschrieben starten man das Modul über

modprobe acerhdf interval=5 fanon=55000 fanoff=45000 kernelmode=1

mit Root-Rechten. Ist der Patch korrekt installiert liefert dmesg Folgendes.

user@machine:~$ dmesg | tail
[...]
[ 1234.567890 ]  acerhdf: Acer Aspire One Fan driver, v.0.5.22e

Sollte das Ergebnis den Erwartungen sprechen, legt man die Startoptionen in der /etc/modprobe.d/acerhdf.conf ab – siehe Wiki-Eintrag – und es wird beim nächsten Neustart mit diesen Parametern gestartet.

Und wie immer am Schluss die Frage: Wozu das Ganze? Nun, jetzt haben wir eine Lüftersteuerung die innerhalb eines selbstdefinierten Temperaturbereiches agiert, aber dennoch eine Sicherheit gegen Überhitzung bietet, da bei hoher Temperatur die Steuerung wieder an den EC übergeben wird und dort so lange bleibt, bis eine definierte Temperatur unterschritten wird. D.h. bei hoher Last und der Gefahr eines Freeze befindet sich die Steuerung (meist) im EC-Modus und ist somit vom OS unabhängig. Allet klar?

Anhang: acerhdf_kmod-0.5.22e.patch.tar.gz

Getagged mit
 

Kommentare sind geschlossen