Ubuntu 12.04 Precise Pangolin
Es sollte mit äußerster Aufmerksamkeit und Vorsicht vorgegangen werden, da bei falscher Handhabung die Hardware irreparabel beschädigt werden kann!
Die Anleitung kann für Nutzer sinnvoll sein, bei denen der CPU-Lüfter ständig auf höchster Drehzahl läuft und deshalb viel Lärm verursacht. IBM/Lenovo Thinkpad-Notebooks können nicht mit LM-Sensors gesteuert werden. Bei diesen Notebooks hilft der Artikel Thinkpad ACPI weiter. Das betrifft auch zumindest einige Dell-Notebooks. Diese kann man mit den i8kutils
steuern, wobei auch eine automatische Steuerung direkt integriert ist.
Mit Hilfe von LM-Sensors und eines Konfigurationsskriptes lassen sich die Lüfter im System, die per PWM angesteuert werden können, dynamisch anhand der Temperatur (z.B. der CPU) steuern. Voraussetzung für diese Anleitung ist die korrekte Installation und Konfiguration des Programms LM-Sensors [1] und die Installation von fancontrol:
fancontrol
mit apturl
Paketliste zum Kopieren:
sudo apt-get install fancontrol
sudo aptitude install fancontrol
Man startet das Konfigurationsskript in einem Terminal mit Rootrechten [2]:
sudo pwmconfig
Das Skript versucht nun festzustellen, welche Lüfter sich kontrollieren lassen. Dazu versucht es, einen Lüfter für 5 Sekunden anzuhalten - sollte das geschehen sein, bestätigt man die darauf folgende Abfrage mit Y . Es kann vorkommen, dass eine Fehlermeldung angezeigt wird und der Lüfter noch einmal abgeschaltet werden soll. Dies sollte durchgeführt und die folgende Abfrage wieder mit Y beantwortet werden. Nun sollte es funktionieren.
Hat man einen zu regelnden Lüfter gefunden, kann man ihn nach der entsprechenden mit Y zu bestätigenden Abfrage wie folgt konfigurieren:
What should be the path to your fancontrol config file (/etc/fancontrol)
Wenn die Konfigurationsdatei noch nicht vorhanden ist, dann wird sie von dem Skript erstellt. Man bestätigt die Abfrage dafür mit ⏎
Man erhält nun ein Menü ähnlich dem folgenden:
fan output to configure, or other action: 1) 9191-0290/pwm2 3) Just quit 5) Show configuration 2) Change INTERVAL 4) Save and quit
Nun drückt man 1 + ⏎ , um den entsprechenden Lüfter zu konfigurieren. Man wird nun nach dem Temperatursensor gefragt, nach dem sich die Drehzahl richten soll:
Select a temperature sensor as source for 9191-0290/pwm2: 1) 9191-0290/temp1_input 2) 9191-0290/temp2_input 3) None (Do not affect this PWM output)
Nun wählt man die entsprechende Nummer und bestätigt sie mit ⏎
Man wird nun nach der Temperatur gefragt, bei der sich der Lüfter ausschalten kann:
Enter the low temperature (C) at which the fan should be switched off (0):
Jetzt wählt man nach Prozessor und Kühler-/Lüfterkombination einen relativ niedrigen Wert (auf die Herstellerangaben der CPU achten!) und bestätigt sie mit ⏎
Nun wird festgelegt, bei welcher Temperatur der Lüfter auf seine maximale Drehzahl gebracht werden soll:
Enter the high temperature (C) at which the fan should be switched to full speed (60):
Auch hier achtet man auf die Angaben des Herstellers zur maximalen Prozessortemperatur. Man gibt am besten einen Wert an, der etwas darunter liegt.
Jetzt wird man nach der Geschwindigkeit gefragt, mit der der Lüfter beginnen soll, sich zu drehen, sobald die Minimaltemperatur, die man im ersten Schritt festgelegt hat, überschritten wird:
Enter the minimum PWM value (0-255) at which the fan STARTS spinning (press t to test) (150):
Man kann einen Wert von 0 (Lüfter aus)
bis 255 (maximale Drehzahl)
eingeben.
Außerdem hat man die Möglichkeit, mit der Taste T die Lüfterdrehzahl in 10er-Schritten von 0-255 zu erhöhen, bis man den entsprechenden Wert gefunden hat und mit Y bestätigt. Man sollte sich mit dem "Durchtesten" beeilen, da der Lüfter während des Testens vermutlich nicht mit der erforderlichen Drehzahl arbeitet und das im schlimmsten Fall zu einer Überhitzung führen kann.
Jetzt wird man nach der Geschwindigkeit gefragt, mit welcher der Lüfter gerade noch am Laufen ist. Dies beschreibt den Zustand, der erreicht wird, wenn von einer höheren Temperatur erfolgreich heruntergekühlt wurde:
Enter the minimum PWM value (0-255) at which the fan STOPS spinning (press t to test) (100):
Auch hier kann man wieder T eingeben, um die optimale Einstellung herauszufinden - nur diesmal von "maximaler Geschwindigkeit" bis "dreht sich gar nicht". Wenn der Lüfter nun aufhört sich zu drehen oder kurz davor ist, drückt man wieder Y .
Man sieht nun wieder folgendes Menü:
Select fan output to configure, or other action: 1) 9191-0290/pwm2 3) Just quit 5) Show configuration 2) Change INTERVAL 4) Save and quit
Jetzt speichert und beendet man die Konfiguration mit 4 + ⏎ . Um die Drehzahl und Temperatur zu verfolgen, benutzt man LM-Sensors [3].
Falls ein Programm bereits beim Systemstart ausgeführt werden soll, verwendet man die Datei /etc/rc.local. Dabei spielt es keine Rolle, ob es sich um einen klassischen Dienst, ein alleinstehendes Programm oder ein Skript handelt.
sudo fancontrol
Die entsprechende Zeile für /etc/rc.local lautet also:
fancontrol
Hinweis: Der Befehl ist zwischen "# By default this script does nothing." und " exit 0" einzutragen. Möglicherweise ist diese Art des Vorgehens mittlerweile auch bei 12.04 erforderlich.
Beim Beenden der Lüftersteuerung, z.B. wenn der Computer herunter gefahren wird, kann es auf einigen Systemen vorkommen, dass der Lüfter dann mit voller Drehzahl betrieben wird. Um dies zu unterbinden, kann man am Skript selber eine kleine Anpassung vornehmen. Dazu öffnet man mit einem Editor die Datei /usr/sbin/fancontrol und kommentiert in der Methode restorefans() die Zeile mit dem Eintrag pwmdisable $pwmo aus und fügt anschließend eine neue Zeile ein:
echo `expr ${AFCMAXPWM[$fcvcount]} - 25` > $pwmo
Sie bewirkt, dass der Lüfter beim Beenden der Lüftersteuerung mit dem in der /etc/fancontrol angegebenen Maximalwert minus 25 angesteuert wird.
Hierbei ist unbedingt zu beachten, dass auch mit dieser Einstellung die Komponenten immer noch genügend gekühlt werden müssen! Wird der Wert zu gering gesetzt, so kann es zur Beschädigung der Hardware führen! Dieses ist daher vorher für die eigene Hardware individuell zu ermitteln und zu testen.
Diese Revision wurde am 15. Dezember 2014 15:29 von botmeister erstellt.