Ich habe einen Lenovo Thinkpad P16. Jedoch war mir die Lüftersteuerung deutlich zu laut. Hier für alle Suchenden eine Anleitung, um die Lüftersteuerung anzupassen. Es ist jetzt deutlich leiser. Natürlich wie immer Änderung der Temperaturregelung ist eigenes Risiko. Mit der App “Mission-Center” im Repository könnt Ihr bei Bedarf die Temperaturen gut im Blick behalten. Habe es noch ergänzt, so dass auch nach einem Neustart oder Kaltstart die thinkfan Lüftersteuerung weiter funktioniert. Ebenso habe ich die inhaltliche Struktur überarbeitet
(getestet Juli 2025, Manjaro KDE, Kernel 6.15.7-1, nochmals überarbeitet am 12.8.2025)
Optimierte Thinkfan-Anleitung (Manjaro / Archlinux)
Inhaltsverzeichnis
- 1 Einleitung / Überblick
- 2 Systemvorbereitung
- 2.1 Kernel-Parameter aktivieren
- 2.2 mkinitcpio (Hook & Rebuild)
- 3 Pakete installieren
- 4 Sensorpfade stabil halten
- 5
/etc/thinkfan.conf
erstellen - 6 Systemd-Override
- 7 Dienst starten & aktivieren
- 8 Kontrolle / Feintuning
- 9 Schnell-Setup-Skript
- 10 FAQ & bekannte Stolpersteine
- 11 mkinitcpio-Fehler aufräumen
- 12 Dienst wieder deaktivieren
1 Voraussetzungen
- Lenovo ThinkPad mit
/proc/acpi/ibm/fan
. - Firmware/BIOS aktuell.
- Manjaro / Arch (+ systemd).
2 Systemvorbereitung
sudo pamac install thinkfan lm_sensors
2.1 Kernel-Parameter aktivieren
Damit ThinkFan den Lüfter überhaupt ansprechen darf, muss das Kernel-Modul thinkpad_acpi
mit der Option fan_control=1
geladen werden[^1].
# dauerhaft einschalten
echo "options thinkpad_acpi fan_control=1" | sudo tee /etc/modprobe.d/99-thinkfan.conf
-
Sofort-Test:
sudo modprobe -r thinkpad_acpi sudo modprobe thinkpad_acpi fan_control=1 echo level 7 | sudo tee /proc/acpi/ibm/fan # sollte hörbar aufdrehen echo level 0 | sudo tee /proc/acpi/ibm/fan # und wieder stoppen
[^fanctrl] Ohne
fan_control=1
verweigert der Embedded-Controller jede Änderung der Lüfterstufe; ThinkFan beendet sich deshalb sofort.[^1]
2.2 mkinitcpio (Hook & Rebuild)
Optionen aus /etc/modprobe.d
landen erst im nächsten initramfs – also ab dem nächsten Re-Build / Boot.
-
Öffne
/etc/mkinitcpio.conf
und prüfe, dass der Eintragmodconf
in der HOOK-Zeile vorhanden ist:HOOKS=(base udev autodetect microcode kms modconf …)
-
Neues initramfs erzeugen:
sudo mkinitcpio -P
3 Kernel-Modul freischalten
Ohne fan_control=1
lässt sich der Lüfter nicht steuern[^1].
# dauerhaft
echo 'options thinkpad_acpi fan_control=1' | sudo tee /etc/modprobe.d/thinkpad_acpi.conf
# sofort
sudo modprobe -r thinkpad_acpi
sudo modprobe thinkpad_acpi fan_control=1
Funktions-Check
echo level 7 | sudo tee /proc/acpi/ibm/fan # Vollgas
echo level 0 | sudo tee /proc/acpi/ibm/fan # Aus
4 Sensorpfade sind stabil
Ab Kernel ≥ 5.18 legt thinkpad_acpi
automatisch
/sys/devices/platform/thinkpad_hwmon/hwmon/hwmon*/
an. Der Pfad bleibt über Reboots hinweg stabil; udev-Symlinks sind überflüssig.
5 /etc/thinkfan.conf
In ThinkFan legst du zwei Dinge fest:
- welche Temperatursensoren überwacht werden
- ab welchen Schwellenwerten welche Lüfterstufe aktiv wird (Profil mit 5 °C Hysterese)
Du kannst das entweder mit einem Sammel-Pfad erledigen (Variante A) oder mit einzeln aufgelisteten Sensoren (Variante B).
Variante A – ein Pfad für alle 16 Sensoren (beobachten, ob das bei dir stabil läuft) [^4]
tp_fan /proc/acpi/ibm/fan # Lüftersteuerung
tp_thermal /proc/acpi/ibm/thermal # alle TP-Sensoren
# Lüfterprofil (5 °C Hysterese)
(0, 0, 60) # AUS – zurückschalten <55 °C
(1, 55, 70) # sehr leise
(2, 65, 80)
(4, 75, 90)
(6, 85, 95)
(7, 90, 32767) # Notfall
Vorteil: eine einzige Pfadangabe deckt alles ab.
Nachteil: Wenn das EC (Embedded Controller) falsche oder 0 °C meldet, gehen diese Fehler unbemerkt in die Mitteltemperatur ein und das Profil arbeitet ungenau.
Variante B – einzeln definierte Sensoren (praxistauglicher)
1 Aktive Sensoren ermitteln
# Alle Temperatursensoren des ThinkPad-Treiber durchgehen
for f in /sys/devices/platform/thinkpad_hwmon/hwmon/*/temp*_input; do
if val=$(cat "$f" 2>/dev/null) && [[ $val =~ ^[0-9]+$ && $val -gt 0 ]]; then
printf "%s : %d °C\n" "$f" "$((val/1000))"
fi
done
Beispielausgabe (defekte Sensoren tauchen nicht auf):
/sys/devices/platform/thinkpad_hwmon/hwmon/hwmon5/temp1_input : 65 °C
/sys/devices/platform/thinkpad_hwmon/hwmon/hwmon5/temp3_input : 56 °C
/sys/devices/platform/thinkpad_hwmon/hwmon/hwmon5/temp5_input : 35 °C
/sys/devices/platform/thinkpad_hwmon/hwmon/hwmon5/temp6_input : 50 °C
/sys/devices/platform/thinkpad_hwmon/hwmon/hwmon5/temp7_input : 65 °C
2 Gefundene Pfade in thinkfan.conf
eintragen
tp_fan /proc/acpi/ibm/fan # Lüftersteuerung
# funktionierende Sensoren (Beispiel)
hwmon /sys/devices/platform/thinkpad_hwmon/hwmon/hwmon5/temp1_input
hwmon /sys/devices/platform/thinkpad_hwmon/hwmon/hwmon5/temp3_input
hwmon /sys/devices/platform/thinkpad_hwmon/hwmon/hwmon5/temp5_input
hwmon /sys/devices/platform/thinkpad_hwmon/hwmon/hwmon5/temp6_input
hwmon /sys/devices/platform/thinkpad_hwmon/hwmon/hwmon5/temp7_input
# Lüfterprofil (5 °C Hysterese)
(0, 0, 60) # AUS – zurückschalten <55 °C
(1, 55, 65) # sehr leise
(2, 60, 70)
(4, 65, 75)
(6, 70, 80)
(7, 75, 32767) # Notfall
Vorteil: nur echte Temperaturen fließen in die Regelung ein.
Nachteil: musst du nach Firmware-Updates einmalig nachpflegen, falls neue Sensoren hinzukommen.
Kurzcheck nach dem Speichern
sudo systemctl restart thinkfan # Dienst neu laden
sudo journalctl -u thinkfan -e # Protokoll auf Fehler prüfen
Keine Fehlermeldung? – Dann läuft deine Konfiguration sauber.
6 Systemd-Override
Thinkfan ≥ 1.3 startet am saubersten im Vordergrund (-n
) mit Type=simple.
sudo systemctl edit thinkfan
[Service]
ExecStartPre=/usr/bin/install -Dm755 /dev/null /run/thinkfan/thinkfan.pid
PIDFile=/run/thinkfan/thinkfan.pid
ExecStart=/usr/bin/thinkfan -n -q -s 5 -c /etc/thinkfan.conf -p /run/thinkfan/thinkfan.pid
- Es darf genau ein
ExecStart=
-Eintrag vorhanden sein – entferne doppelte Zeilen. /run
liegt auftmpfs
; das Verzeichnis/run/thinkfan
muss daher bei jedem Boot neu angelegt werden (erledigt dieExecStartPre
-Zeile).
sudo systemctl daemon-reload
7 Dienst starten & aktivieren
sudo systemctl enable --now thinkfan
Status prüfen
systemctl status --no-pager thinkfan
Funktionstest
sudo systemctl restart thinkfan.service
sudo thinkfan -n
(Testlauf ohne Regelung)- Temperaturen sollten angezeigt werden
- kein „cannot read sensor“
8 Kontrolle / Feintuning
journalctl -fu thinkfan.service # Live-Log (mit -q nur Startmeldung)
cat /proc/acpi/ibm/fan # aktuelle Stufe & RPM
sensors # Temperaturwerte
Schwellen ±2 °C anpassen, Intervall (-s
) erhöhen, nicht benutzte Sensoren löschen.
9 Schnell-Setup-Skript
#!/usr/bin/env bash
set -e
sudo pamac install -y thinkfan lm_sensors
echo 'options thinkpad_acpi fan_control=1' | sudo tee /etc/modprobe.d/thinkpad_acpi.conf
sudo modprobe -r thinkpad_acpi && sudo modprobe thinkpad_acpi fan_control=1
sudo tee /etc/thinkfan.conf <<'EOF'
tp_fan /proc/acpi/ibm/fan
tp_thermal /proc/acpi/ibm/thermal
(0,0,60)(1,55,70)(2,65,80)(4,75,90)(6,85,95)(7,90,32767)
EOF
sudo mkdir -p /etc/systemd/system/thinkfan.service.d
sudo tee /etc/systemd/system/thinkfan.service.d/override.conf <<'EOF'
[Unit]
After=systemd-udev-settle.service
[Service]
# Eigene PID-Datei, um Konflikte mit Testlauf zu vermeiden
PIDFile=/run/thinkfan/thinkfan.pid
ExecStart=/usr/bin/thinkfan -n -q -s 5 -c /etc/thinkfan.conf -p /run/thinkfan/thinkfan.pid
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now thinkfan
10 FAQ & bekannte Stolpersteine – ThinkFan auf Lenovo-ThinkPads (Manjaro, Archlinux)
1. Dienst startet nicht
Prüfe cat /sys/module/thinkpad_acpi/parameters/fan_control → Ausgabe muss Y sein; sonst fehlt fan_control=1.
2. ThinkFan stirbt direkt nach dem Boot
- Häufigste Ursache:
fan_control=1
fehlt im initramfs. - Fix:
modconf
-Hook eintragen,sudo mkinitcpio -P
, danach neu starten.
3. Mehrere ThinkPads / Portabilität
Eine identische thinkfan.conf
läuft, solange jedes Gerät den Plattform-Pfad hat – meist hwmon*/temp*_input
unter platform/thinkpad_hwmon
4. Lüfterbefehle sind „ungültig“
- Ursache:
thinkpad_acpi
ohne Optionfan_control=1
geladen. - Fix:
sudo modprobe -r thinkpad_acpi sudo modprobe thinkpad_acpi fan_control=1
5. „No such file or directory“ beim Start
- Ursache: Falscher oder toter Sensorpfad.
- Prüfung:
Nur vorhandene Dateien inls /sys/devices/platform/thinkpad_hwmon/hwmon/*/temp*_input
thinkfan.conf
referenzieren.
6. Keine Temperatur-Logzeilen
- Grund: ThinkFan wurde mit
-q
(quiet) gestartet. - Diagnosemodus:
sudo thinkfan -D
7. Nicht deterministische hwmonX
-Nummern
Nutze bevorzugt den kompletten Pfad unter platform/thinkpad_hwmon
; hwmonX-Hopping ist damit egal. Alternativ kannst du den virtuellen Treiber tp_thermal
verwenden.
8. Andere Temperaturpfade / Modelle
-
Sensoren ermitteln:
for f in /sys/devices/platform/thinkpad_hwmon/hwmon/hwmon*/temp*_input; \ do echo "$f=$(cat "$f")"; done
-
Nur Sensoren mit plausiblen Werten (> 0 °C) in
thinkfan.conf
aufnehmen.
9. Lüfterstufe „0“ dreht trotzdem
- Einige Firmware-Versionen lassen den Lüfter auf Level 0 weiterhin mit ≈ 1500 RPM laufen.
Das ist normal und kein ThinkFan-Fehler.
10. Scan-Intervall & Überhitzung
- Intervall: Werte > 5 s verringern das Umschalten, reagieren jedoch träger.
- Thermik-Check: Unter Last (Prime95,
stress-ng
) sicherstellen, dass Spitzen < 95 °C bleiben.
Gegebenenfalls Schwellen inthinkfan.conf
absenken.
11. AMD-ThinkPads
- Funktionieren ebenfalls, solange
/proc/acpi/ibm/fan
existiert; ein dedizierter GPU-Sensor kann fehlen.
11 mkinitcpio-Fehler aufräumen
crc32c_intel-Fehler bei mkinitcpio
Seit Kernel ≥ 6.12 ist das Modul crc32c_intel
fest einkompiliert. Erscheint beim Build die Meldung
ERROR: module not found: 'crc32c_intel'
entferne den Namen einfach aus dem MODULES
-Array und baue neu:
sudo nano /etc/mkinitcpio.conf # MODULES=()
sudo mkinitcpio -P
12 Dienst deaktivieren
sudo systemctl disable --now thinkfan
echo level auto | sudo tee /proc/acpi/ibm/fan # EC zurücksetzen
# Optional: Modul-Option entfernen
sudo sed -i 's/^options thinkpad_acpi/#&/' /etc/modprobe.d/thinkpad_acpi.conf