Thinkfan: Unterschied zwischen den Versionen

Aus ThinkPad-Wiki
(L380 tut nicht)
 
(87 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 6: Zeile 6:
* Ubuntu 10.04 "Lucid Lynx" bzw.  
* Ubuntu 10.04 "Lucid Lynx" bzw.  
* Debian 6.0 "Squeeze"
* Debian 6.0 "Squeeze"
ist thinkfan in den Paketquellen enthalten.  
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:
== Nicht unterstützte ThinkPad-Modelle ==
* SL-Reihe: keine Unterstützung für thinkpad_acpi
Bei folgenden Modellen ist keine Lüftersteuerung möglich:
* L-, Edge-Reihe, X100e: benötigt Kernel 2.6.35 oder tp-Kernel (Ubuntu) (Debian)
* SL300/400/500-Reihe: keine Unterstützung für thinkpad_acpi
* E330/E530, L440, S531: '''/proc/acpi/ibm/fan''' ohne Funktion, keine Rückmeldung der Lüfterdrehzahl (=0)


== Installation ==
== Installation ==
Zeile 18: Zeile 19:
entweder mit der Paketverwaltung oder im Terminal
entweder mit der Paketverwaltung oder im Terminal
  sudo apt-get install thinkfan
  sudo apt-get install thinkfan
<u>Hinweis:</u> <code>sudo</code> nur für Ubuntu, bei Debian ruft man alle Kommandos stattdessen aus einer Root-Shell auf.
<u>Hinweis:</u> <code>sudo</code> ist nur für Ubuntu nötig; bei Debian ruft man alle Kommandos stattdessen aus einer Root-Shell auf.


=== thinkpad_acpi konfigurieren ===
=== thinkpad_acpi konfigurieren ===
Damit die Lüftersteuerung funktioniert, muß das Kernelmodul '''thinkpad_acpi''' mit der Option <code>fan_control=1</code> geladen werden. Dazu ist die Datei '''/etc/modprobe/thinkfan.conf''' mit Root-Rechten anzulegen:
Damit die Lüftersteuerung funktioniert, muß das Kernelmodul '''thinkpad_acpi''' mit der Option <code>fan_control=1</code> geladen werden. Die dafür notwendige Konfigurationsdatei erzeugt man mittels
  gksudo gedit /etc/modprobe.d/options.conf
  echo "options thinkpad_acpi fan_control=1" | sudo tee /etc/modprobe.d/thinkfan.conf
In '''/etc/modprobe/thinkfan.conf''' wird nun folgendes eingetragen:
options thinkpad_acpi fan_control=1


Anschließend ist das Modul neu zu Laden
Anschließend lädt man das Modul neu
  sudo modprobe -rv thinkpad_acpi
  sudo modprobe -rv thinkpad_acpi
  sudo modprobe -v thinkpad_acpi
  sudo modprobe -v thinkpad_acpi
<u>Hinweis:</u> falls der erste Befehl mit der Meldung ''"modprobe: FATAL: Module thinkpad_acpi is in use"'' fehlschlägt, startet man stattdessen das ThinkPad neu, um das Modul mit der geänderten Konfiguration zu laden.


=== Automatischer Start ===
=== 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 <code>no</code> durch ein <code>yes</code> zu ersetzen:
Um thinkfan bei Systemstart automatisch zu aktivieren, ist die Datei '''/etc/default/thinkfan''' mit [http://wiki.ubuntuusers.de/Editor Root-Rechten zu editieren] und in der folgenden Zeile das <code>no</code> durch ein <code>yes</code> zu ersetzen:
  START=yes
  START=yes


=== Temperaturschwellen konfigurieren ==
<u>Hinweis:</u> Ab Debian 8.0 Jessie muss zusätzlich zu den o.g. Punkten noch der Dienst automatisch gestartet werden. Dies geschieht durch folgenden Befehl:
thinkfan besitzt keine GUI, sondern wird über eine einfache Textdatei konfiguriert. Die Temperaturschwellen befinden sich in der Datei '''/etc/thinkfan.conf'''. Die vorgegebenen Schwellen sollten mit jedem ThinkPad funktionieren. Auf Wunsch kann die Datei mit Root-Rechten editiert werden:
systemctl enable thinkfan.service
  (0, 0, 55)
 
  (1, 48, 60)
=== Temperaturschwellen konfigurieren ===
  (2, 50, 61)
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 [http://wiki.ubuntuusers.de/Editor mit Root-Rechten editiert] werden. Beispiel für eine angepasste Datei (für X200):
  (3, 52, 63)
  (0, 0, 42)
  (4, 56, 65)
  (1, 40, 47)
  (5, 59, 66)
  (2, 45, 52)
  (7, 63, 32767)
  (3, 50, 57)
  (4, 55, 62)
  (5, 60, 67)
(6, 65, 72)
  (7, 70, 77)
(127, 75, 32767) # Wichtig: diese Zeile (127 = "disengaged" d.h. ungeregelt) 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.), 127 ("disengaged", d.h. volle Pulle ohne Regelung)
* 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
<u>Hinweis:</u> berücksichtigt wird jeweils nur der höchste Wert aller konfigurierten Temperatursensoren.
 
Nach dem Einrichten der Schwellen kann der thinkfan-Dämon manuell gestartet werden
sudo systemctl start thinkfan
 
=== Temperatursensoren mit Offsets versehen ===
Wie oben beschrieben, richtet sich thinkfan immer nach der höchsten Temperatur aus den vorhandenen Sensoren. Möchte man einzelne Sensoren stärker gewichten, so versieht man sie mit einem Offset. Dazu nimmt man eine sensors-Zeile vor den Schwelleneinstellungen auf. Im Beispiel werden zum Wert des 2., 9. und 10. Sensors jeweils 5°C addiert:
sensor /proc/acpi/ibm/thermal (0, 5, 0, 0, 0, 0, 0, 0, 5, 5)
'''<u>Warnung:</u> Offsets sollten nur mit der gebotenen Vorsicht eingesetzt und die Einstellungen unbedingt per Testbetrieb (s.u.) überprüfen werden.'''
 
<u>Hinweis:</u> negative Offsets funktionieren hier nicht.
 
=== Regelverhalten ===
Sollte thinkfan allzu schnell zwischen den Lüfterstufen hin und her springen, kann man '''/etc/default/thinkfan''' anpassen:
DAEMON_ARGS="-q -b 1 -s 3"
Bedeutung der Optionen:
* -b – der sog. "Bias" (Default: 5) dient dazu die Reaktionsgeschwindigkeit bei schnell steigender Temperatur zu verbessern
* -s – maximale Zeit (in Sekunden) zwischen zwei Temperaturmessungen (Default: 5)
Einzelheiten stehen in der [http://manpages.ubuntu.com/manpages/precise/man1/thinkfan.1.html Manpage].
 
=== 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 [http://www.thinkwiki.org/wiki/Thermal_sensors hier].
 
== Testbetrieb ==
Um die Wirkung der vorgenommenen Einstellungen direkt beobachten zu können, stoppt man zuerst den im Hintergrund laufenden thinkfan-Dämon
sudo systemctl stop thinkfan
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.


Jede Zeile besteht aus drei Werten, deren Bedeutung ist:
== Problembehebung ==
* Lüfterlevel: 0 (aus) - 7 (max.)
 
* Temperatur bei deren Erreichen der Lüfterlevel um 1 veringert wird
=== Keine Funktion auf L380 ===
* Temperatur bei deren Erreichen der Lüfterlevel 1 erhöht wird
Laut diesem [https://thinkpad-forum.de/threads/215592-Linux-L%C3%BCftersteuerung-in-der-x80-Serie?p=2251449#post2251449 Thread] kann man über '''/proc/acpi/ibm/fan''' die Lüfterdrehzahl weder auslesen noch steuern.
'''Hinweis: berücksichtigt wird jeweils nur der höchste Wert von den im System vorgefundenen Temperatursensoren.'''
 
=== Keine Funktion auf Edge E520 ===
 
Laut diesem [http://forum.ubuntuusers.de/topic/thinkpad-edge-e520-lueftersteuerung-funktionie/2/ Thread] auf [http://forum.ubuntuusers.de/] kann man den Lüfter nicht über
'''/proc/acpi/ibm/fan steuern''' steuern, solange die dedizierte Grafikkarte aktiv ist. Abhilfe schafft das Deaktivieren des Radeon-Grafikschips im BIOS.
 
=== Keine Funktion auf X220, T420(s) – sowie auf allen neueren Modellen ===
 
'''Hinweis: dieser Abschnitt trifft nicht auf das L420 zu.'''
 
<u>Symptom:</u> beim manuellen Start von thinkfan per
sudo systemctl start thinkfan
erscheint folgender Output
/proc/acpi/ibm/thermal: No such file or directory
<u>Ursache:</u> 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.
 
<u>Lösung:</u> 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  <code>yes</code> <Enter>.
 
Als nächsten Schritt lädt man die von sensors-detect ermittelten Kernelmodule mit
sudo systemctl start module-init-tools
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 <code>hwmon</code> in '''/etc/thinkfan.conf''' auf (vor den Temperaturschwellen).
 
Beispiel (T420s):
hwmon /sys/devices/platform/coretemp.0/temp1_input
hwmon /sys/devices/platform/coretemp.2/temp1_input
hwmon /sys/devices/virtual/hwmon/hwmon0/temp1_input
 
Die aktuellen Werte der Temperatursensoren kann man mit
sensors
anzeigen.
 
<u>Hinweis:</u> da Sandy-Bridge-Prozessoren (und Nachfolger) sich recht schnell aufheizen, kann es nützlich sein das [[Thinkfan#Regelverhalten|Regelverhalten]] anzupassen.
 
=== Keine Funktion auf T61 ===
Thinkfan funktioniert seit Version 0.8 u.U. auf dem T61 nicht korrekt.
Das lässt sich per
thinkfan -n
sehen, denn es setzt keinerlei Regelung ein. Das kann schnell zum Hitzetod führen.
 
Abhilfe schafft ein Downgrade auf Version 0.7.3, die funktioniert einwandfrei.


== Links ==
== Links ==
* [http://thinkfan.sourceforge.net/ Projekt-Homepage]
* [http://thinkfan.sourceforge.net/ Projekt-Homepage]
* [http://sourceforge.net/p/thinkfan/discussion/905018 Offizielles Support Forum]
== Quellen ==
* [http://thinkpad-forum.de/threads/90602-T41-Ubuntu-10.04-L%C3%BCftersteurung?p=839913&viewfull=1#post839913 Thinkpad-Forum] - Installationsanleitung von jetronic (3. Beitrag)
* [http://thinkpad-forum.de/threads/113946-Ubuntu-mit-neuem-X220-%C3%BCber-WLAN?p=1086988&viewfull=1#post1086988 Thinkpad-Forum] – Ausgangspunkt für die Umgehungslösung von unattached (57. Beitrag)
* [http://thinkpad-forum.de/threads/114638-Thinkfan-bei-neuen-Thinkpads-benutzen?p=1094434&viewfull=1#post1094434 ThinkPad-Forum] – Hinweis zu sensors-detect von Miko (7. Beitrag)
* [http://thinkpad-forum.de/threads/185587-X201-Thinkfan-Standardschaltschwellen-ermitteln ThinkPad-Forum] – Standardschaltschwellen ermitteln von zenox


== Quelle ==
[[Category:Linux]]
[http://www.thinkpad-forum.de/software/linux/92291-t41-ubuntu-10-04-l%C3%BCftersteurung/#post852530 Anleitung von jetronic im Forum]
[[Category:Debian]]
[[Category:Ubuntu]]
[[Category:Lüftersteuerung]]

Aktuelle Version vom 2. September 2020, 17:16 Uhr

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.

Nicht unterstützte ThinkPad-Modelle

Bei folgenden Modellen ist keine Lüftersteuerung möglich:

  • SL300/400/500-Reihe: keine Unterstützung für thinkpad_acpi
  • E330/E530, L440, S531: /proc/acpi/ibm/fan ohne Funktion, keine Rückmeldung der Lüfterdrehzahl (=0)

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. Die dafür notwendige Konfigurationsdatei erzeugt man mittels

echo "options thinkpad_acpi fan_control=1" | sudo tee /etc/modprobe.d/thinkfan.conf

Anschließend lädt man das Modul neu

sudo modprobe -rv thinkpad_acpi
sudo modprobe -v thinkpad_acpi

Hinweis: falls der erste Befehl mit der Meldung "modprobe: FATAL: Module thinkpad_acpi is in use" fehlschlägt, startet man stattdessen das ThinkPad neu, um das Modul mit der geänderten Konfiguration zu laden.

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

Hinweis: Ab Debian 8.0 Jessie muss zusätzlich zu den o.g. Punkten noch der Dienst automatisch gestartet werden. Dies geschieht durch folgenden Befehl:

systemctl enable thinkfan.service

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) # Wichtig: diese Zeile (127 = "disengaged" d.h. ungeregelt) 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.), 127 ("disengaged", d.h. volle Pulle ohne Regelung)
  • 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 konfigurierten Temperatursensoren.

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

sudo systemctl start thinkfan

Temperatursensoren mit Offsets versehen

Wie oben beschrieben, richtet sich thinkfan immer nach der höchsten Temperatur aus den vorhandenen Sensoren. Möchte man einzelne Sensoren stärker gewichten, so versieht man sie mit einem Offset. Dazu nimmt man eine sensors-Zeile vor den Schwelleneinstellungen auf. Im Beispiel werden zum Wert des 2., 9. und 10. Sensors jeweils 5°C addiert:

sensor /proc/acpi/ibm/thermal (0, 5, 0, 0, 0, 0, 0, 0, 5, 5)

Warnung: Offsets sollten nur mit der gebotenen Vorsicht eingesetzt und die Einstellungen unbedingt per Testbetrieb (s.u.) überprüfen werden.

Hinweis: negative Offsets funktionieren hier nicht.

Regelverhalten

Sollte thinkfan allzu schnell zwischen den Lüfterstufen hin und her springen, kann man /etc/default/thinkfan anpassen:

DAEMON_ARGS="-q -b 1 -s 3"

Bedeutung der Optionen:

  • -b – der sog. "Bias" (Default: 5) dient dazu die Reaktionsgeschwindigkeit bei schnell steigender Temperatur zu verbessern
  • -s – maximale Zeit (in Sekunden) zwischen zwei Temperaturmessungen (Default: 5)

Einzelheiten stehen in der Manpage.

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 systemctl stop thinkfan

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 L380

Laut diesem Thread kann man über /proc/acpi/ibm/fan die Lüfterdrehzahl weder auslesen noch steuern.

Keine Funktion auf Edge E520

Laut diesem Thread auf [1] kann man den Lüfter nicht über /proc/acpi/ibm/fan steuern steuern, solange die dedizierte Grafikkarte aktiv ist. Abhilfe schafft das Deaktivieren des Radeon-Grafikschips im BIOS.

Keine Funktion auf X220, T420(s) – sowie auf allen neueren Modellen

Hinweis: dieser Abschnitt trifft nicht auf das L420 zu.

Symptom: beim manuellen Start von thinkfan per

sudo systemctl start thinkfan

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 systemctl start module-init-tools

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 hwmon in /etc/thinkfan.conf auf (vor den Temperaturschwellen).

Beispiel (T420s):

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

Die aktuellen Werte der Temperatursensoren kann man mit

sensors

anzeigen.

Hinweis: da Sandy-Bridge-Prozessoren (und Nachfolger) sich recht schnell aufheizen, kann es nützlich sein das Regelverhalten anzupassen.

Keine Funktion auf T61

Thinkfan funktioniert seit Version 0.8 u.U. auf dem T61 nicht korrekt. Das lässt sich per

thinkfan -n

sehen, denn es setzt keinerlei Regelung ein. Das kann schnell zum Hitzetod führen.

Abhilfe schafft ein Downgrade auf Version 0.7.3, die funktioniert einwandfrei.

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)
  • ThinkPad-Forum – Standardschaltschwellen ermitteln von zenox