Moin,
ich habe mich heute ein wenig mit der Lüftersteuerung meines X201 beschäftigt. Dabei wollte ich einmal wissen, wie die Standardschaltschwellen für die einzelnen Stufen liegen, um dies als Ausgangspunkt für Veränderungen zu nehmen.
Mit der folgenden Beschreibung ist weniger eine Frage verbunden. Sie ist vielmehr als Anleitung für Interessierte gedacht. Außerdem fand ich es bemerkenswert, dass die Lüfterdrehzahlen in der Ultrabase andere sind als beim standalone-Gebrauch aber dazu weiter unten mehr...
Grundlage der Messung ist ein kleines Skript, welches die aktuellen Temperaturen, die Lüfterdrehzahl und das Lüfter-Level anzeigt und gleichzeitig in eine Datei schreibt:
Im Auto-Modus kann man die Lüfterstufen in /proc/acpi/ibm/fan nicht direkt auslesen, wohl aber die Drehzahl. Deswegen kann man vor dem eigentlichen Test mit
noch ausprobiert welche Drehzahl zu welcher Lüfterstufe passt, damit man in der thinkfan.conf dann die korrekten Stufen nutzt.
Interessant dabei ist, dass es nicht 7 verschiedene Stufen gibt, sondern nur 5: 3 und 4 gehören zur selben Drehzahl, sowie 5 und 6. Durch Zufall habe ich auch herausgefunden, dass der Lüfter des X201 schneller dreht, wenn das Thinkpad in der Ultrabase steht, zumindest in den Stufen 2-7.
Aus der Ausgabe des Skriptes kann man dann ungefähr die Temperaturschwellen der einzelnen Lüfterstufen ablesen.
Im Anschluss habe ich etwas Last auf der CPU erzeugt (u.a. mit mprime) und zeitgleich obiges Skript laufen lassen. Die Ausgabe erfolgt in die Datei fanspeed.log. In dieser kann man dann schauen, wann die Drehzahlen umschlagen und das mit den oben ermittelten Stufen vergleichen.
Aus den Temperaturen für das herunter- und hochregeln des Lüfters habe ich zur Orientierung ein Pseudo-thinkfan.conf erzeugt:
Da ich die Temperatur "nur" bis 86 Grad treiben konnte und der Lüfter da immer noch nicht auf Stufe 7 war, kann ich nichts über die Schaltschwellen von Stufe 7 sagen. Die 86 Grad habe ich einfach mal als obere Genze von Stufe 6 eingetragen. Den Übergang 3-4 sowie 5-6 kann man aufgrund der gleichen Drehzahlen nicht feststellen.
Aufbauend auf den Messwerte habe ich dann meine eigene thinkfan.conf geschrieben. In dieser nutze ich die superleisen Lüfterstufen 0 und 1 etwas mehr aus. Dafür darf der Lüfter dann bei höheren Temperaturen auch schneller aufdrehen. Ich finde nämlich, dass man so richtig keinen Lautstärkeunterschied zwischen den Stufen 2-6 merkt. Die (unbekannte) obere Grenze habe ich auch heruntergesetzt, sodass der Lüfter ab 88 Grad voll durchzieht:
ich habe mich heute ein wenig mit der Lüftersteuerung meines X201 beschäftigt. Dabei wollte ich einmal wissen, wie die Standardschaltschwellen für die einzelnen Stufen liegen, um dies als Ausgangspunkt für Veränderungen zu nehmen.
Mit der folgenden Beschreibung ist weniger eine Frage verbunden. Sie ist vielmehr als Anleitung für Interessierte gedacht. Außerdem fand ich es bemerkenswert, dass die Lüfterdrehzahlen in der Ultrabase andere sind als beim standalone-Gebrauch aber dazu weiter unten mehr...
Grundlage der Messung ist ein kleines Skript, welches die aktuellen Temperaturen, die Lüfterdrehzahl und das Lüfter-Level anzeigt und gleichzeitig in eine Datei schreibt:
Code:
#!/bin/bash
interval=1 # seconds to wait between two measurements
while true; do
temps=$(cat /proc/acpi/ibm/thermal | grep -oE '([0-9]\s|[0-9])*$')
rpm=$(cat | grep -oE 'speed:\s+.*$' | grep -oE '[0-9]{1,4}$')
level=$(cat /proc/acpi/ibm/fan | grep -oE 'level:\s+.*$' | grep -oE '\S*$')
echo "$temps; $rpm; $level" | tee fanspeed.log
sleep $interval
done
Im Auto-Modus kann man die Lüfterstufen in /proc/acpi/ibm/fan nicht direkt auslesen, wohl aber die Drehzahl. Deswegen kann man vor dem eigentlichen Test mit
Code:
echo level 0 > /proc/acpi/ibm/fan
echo level 1 > /proc/acpi/ibm/fan
...usw
Interessant dabei ist, dass es nicht 7 verschiedene Stufen gibt, sondern nur 5: 3 und 4 gehören zur selben Drehzahl, sowie 5 und 6. Durch Zufall habe ich auch herausgefunden, dass der Lüfter des X201 schneller dreht, wenn das Thinkpad in der Ultrabase steht, zumindest in den Stufen 2-7.
Aus der Ausgabe des Skriptes kann man dann ungefähr die Temperaturschwellen der einzelnen Lüfterstufen ablesen.
Im Anschluss habe ich etwas Last auf der CPU erzeugt (u.a. mit mprime) und zeitgleich obiges Skript laufen lassen. Die Ausgabe erfolgt in die Datei fanspeed.log. In dieser kann man dann schauen, wann die Drehzahlen umschlagen und das mit den oben ermittelten Stufen vergleichen.
Aus den Temperaturen für das herunter- und hochregeln des Lüfters habe ich zur Orientierung ein Pseudo-thinkfan.conf erzeugt:
Code:
#X201 original
#lvl low up RPM RPM@UB
#(0, 0, 46) # 0 0
#(1, 40, 55) # 2000 2000
#(2, 45, 61) # 3300 3600
#(3, 52, xx) # 3500 3800
#(4, xx, 70) # 3500 3800
#(5, 60, xx) # 3800 4000
#(6, xx, 86) # 3800 4000
#(7, xx, xx) # 4300 4500
#(127, xx, 32767) # 5300 5300
Da ich die Temperatur "nur" bis 86 Grad treiben konnte und der Lüfter da immer noch nicht auf Stufe 7 war, kann ich nichts über die Schaltschwellen von Stufe 7 sagen. Die 86 Grad habe ich einfach mal als obere Genze von Stufe 6 eingetragen. Den Übergang 3-4 sowie 5-6 kann man aufgrund der gleichen Drehzahlen nicht feststellen.
Aufbauend auf den Messwerte habe ich dann meine eigene thinkfan.conf geschrieben. In dieser nutze ich die superleisen Lüfterstufen 0 und 1 etwas mehr aus. Dafür darf der Lüfter dann bei höheren Temperaturen auch schneller aufdrehen. Ich finde nämlich, dass man so richtig keinen Lautstärkeunterschied zwischen den Stufen 2-6 merkt. Die (unbekannte) obere Grenze habe ich auch heruntergesetzt, sodass der Lüfter ab 88 Grad voll durchzieht:
Code:
#/etc/thinkfan.conf
#X201 user specific
#lvl low up RPM
(0, 0, 47) # 0
(1, 42, 57) # 2000
(2, 44, 59) # 3300
(3, 50, 65) # 3500
(4, 54, 70) # 3500
(5, 60, 73) # 3800
(6, 62, 83) # 3800
(7, 65, 88) # 4300
(127, 70, 32767) # 5300