Thinkfan

Aus ThinkPad-Wiki

Einleitung

thinkfan ist eine einfache Software zur Lüftersteuerung für Linux. Dieser Artikel beschreibt Installation und Konfiguration für Debian und Ubuntu.

Voraussetzungen

Ab

  • Ubuntu 10.04 "Lucid Lynx" bzw.
  • Debian 6.0 "Squeeze"

ist thinkfan in den Paketquellen der Distribution enthalten.

Unterstützt werden alle ThinkPad-Modelle bei denen das Kernelmodul thinkpad_acpi geladen werden kann. Ausnahmen sind:

  • SL-Reihe: keine Unterstützung für thinkpad_acpi
  • L-, Edge-Reihe, X100e: benötigt Ubuntu 10.10 mit Kernel 2.6.35 oder 10.04 mit tp-Kernel 2.6.32

Installation

Paket installieren

Man installiert das Paket

  • thinkfan

entweder mit der Paketverwaltung oder im Terminal

sudo apt-get install thinkfan

Hinweis: sudo ist nur für Ubuntu nötig; bei Debian ruft man alle Kommandos stattdessen aus einer Root-Shell auf.

thinkpad_acpi konfigurieren

Damit die Lüftersteuerung funktioniert, muß das Kernelmodul thinkpad_acpi mit der Option fan_control=1 geladen werden. Dazu ist die Datei /etc/modprobe.d/thinkfan.conf mit Root-Rechten anzulegen

gksudo gedit /etc/modprobe.d/thinkfan.conf

und folgendes einzutragen

options thinkpad_acpi fan_control=1

Anschließend lädt man das Modul neu

sudo modprobe -rv thinkpad_acpi
sudo modprobe -v thinkpad_acpi

Automatischer Start

Um thinkfan bei Systemstart automatisch zu aktivieren, ist die Datei /etc/default/thinkfan mit Root-Rechten zu editieren und in der folgenden Zeile das no durch ein yes zu ersetzen:

START=yes

Temperaturschwellen konfigurieren

thinkfan besitzt keine GUI. Die Temperaturschwellen werden über die Textdatei /etc/thinkfan.conf konfiguriert. Die vorgegebenen Schwellen sollten mit jedem ThinkPad funktionieren. Auf Wunsch kann die Datei mit Root-Rechten editiert werden. Beispiel für eine angepasste Datei (für X200):

(0,	0,	42)
(1,	40,	47)
(2,	45,	52)
(3,	50,	57)
(4,	55,	62)
(5,	60,	67)
(6,	65,	72)
(7,	70,	77)
(127,	75,	32767) # diese Zeile sorgt für volle Lüfterdrehzahl 

Jede Zeile besteht aus drei Werten - deren Bedeutung ist (von links nach rechts):

  • Lüfterlevel 0 (aus) - 7 (max.)
  • Temperatur bei deren Erreichen in absteigender Richtung der Lüfterlevel um 1 veringert wird
  • Temperatur bei deren Erreichen in aufsteigender Richtung der Lüfterlevel um 1 erhöht wird

Hinweis: berücksichtigt wird jeweils nur der höchste Wert aller im System vorgefundenen Temperatursensoren.

Nach dem Einrichten der Schwellen kann der thinkfan-Dämon manuell gestartet werden

sudo /etc/init.d/thinkfan start

Temperaturen anzeigen

Bei ThinkPads zeigt man die Werte aller Temperatursensoren mit

cat /proc/acpi/ibm/thermal

an. Der erste Wert ist stets die CPU. Die Zuordnung der weiteren Sensoren hängt vom jeweiligen Modell ab. Einzelheiten findet man hier.

Testbetrieb

Um die Wirkung der vorgenommenen Einstellungen direkt beobachten zu können, stoppt man zuerst den im Hintergrund laufenden thinkfan-Dämon

sudo /etc/init.d/thinkfan stop

Anschließend wird thinkfan im Vordergrund gestartet per

sudo thinkfan -n

Es erscheint folgende fortlaufende Ausgabe (Beispiel)

WARNING: Using default temperature inputs in /proc/acpi/ibm/thermal.
WARNING: You have not provided any correction values for any sensor, and your fan will only start at 55 °C. This can be dangerous for your hard drive.
Config as read from /etc/thinkfan.conf:
Fan level	Low	High
 0		0	55
 1		48	60
 2		50	61
 3		52	63
 4		56	65
 5		59	66
 7		63	32767

sleeptime=5, temp=50, last_temp=0, biased_temp=50 -> level=1
sleeptime=5, temp=60, last_temp=59, biased_temp=60 -> level=2
sleeptime=5, temp=61, last_temp=60, biased_temp=61 -> level=3
sleeptime=5, temp=52, last_temp=53, biased_temp=52 -> level=2
sleeptime=5, temp=50, last_temp=51, biased_temp=50 -> level=1

Mit Strg+C kann der Test beendet werden.

Problembehebung

Keine Funktion auf X220, T420(s) seit Ubuntu 11.04 / Kernel 2.6.38

Hinweis: dieser Abschnitt trifft nicht auf das L420 zu.

Symptom: beim manuellen Start von thinkfan per

sudo /etc/init.d/thinkfan start

erscheint folgender Output

/proc/acpi/ibm/thermal: No such file or directory

Ursache: die Datei /proc/acpi/ibm/thermal existiert bei den betroffenen Modellen nicht mehr. Die Temperatursensoren sind an eine andere Stelle im Sysfs umgezogen und thinkfan erkennt sie nicht.

Lösung: zur Ermittlung der verfügbaren Temperatursensoren ist zunächst das Paket

  • lm-sensors

zu installieren. Anschließend startet man die Erkennung mit dem Kommando

sudo sensors-detect

Alle Nachfragen des Programms (bis auf die letzte) können mit <Enter> (YES) bestätigt werden.

Die letzte Frage des Programms "Do you want to add these lines automatically to /etc/modules? (yes/NO)" beantwortet man mit yes <Enter>.

Als nächsten Schritt lädt man die von sensors-detect ermittelten Kernelmodule mit

sudo start module-init-tools             # Ubuntu
sudo /etc/init.d/module-init-tools start # Debian

oder wahlweise mit einem Neustart.

Nun können die verfügbaren Temperatursensoren mit folgendem Kommando angezeigt werden:

find /sys/devices -type f -name "temp*_input"

Die Ausgabezeilen nimmt mit man einem vorangestellten sensor in /etc/thinkfan.conf auf (vor den Temperaturschwellen).

Beispiel (T420s):

sensor /sys/devices/platform/coretemp.0/temp1_input
sensor /sys/devices/platform/coretemp.2/temp1_input
sensor /sys/devices/virtual/hwmon/hwmon0/temp1_input

Die aktuellen Werte der Temperatursensoren kann man mit

sensors

anzeigen.

Links

Quellen

  • Thinkpad-Forum - Installationsanleitung) von jetronic (3. Beitrag
  • Thinkpad-Forum - Ausgangspunkt für die Umgehungslösung von unattached (57. Beitrag)
  • ThinkPad-Forum - Hinweis zu sensors-detect von Miko (7. Beitrag)