OS 13.1/ nach "Tiefschlaf" läuft der Lüfter bei maximalgeschwindigkeit

Hallo Forum,
wenn ich meinen HP620 aus dem “Tiefschlaf” wecke, dreht der Lüfter mit voller Power und hört nicht mehr auf.
Dieses Verhalten ist erst seit dem Upgrade auf 13.1.

Irgendwelche Tipps, woran das liegt und was man da machen sollte?

Tom

Am Sun, 15 Dec 2013 15:36:02 GMT
schrieb tomdylan <tomdylan@no-mx.forums.opensuse.org>:

> Hallo Forum,
> wenn ich meinen HP620 aus dem “Tiefschlaf” wecke, dreht der Lüfter mit
> voller Power und hört nicht mehr auf.
> Dieses Verhalten ist erst seit dem Upgrade auf 13.1.
>
> Irgendwelche Tipps, woran das liegt und was man da machen sollte?
>
> Tom

Wimre ist das ein Problem mit der Firmware. Versuch mal ob Du ein
Update bekommst.

Bernd

PS: Angeblich kann man auch irgendwas starten was viel CPU-Power
verbraucht und so erstmalig die Lüftersteuerung anschmeisst.
Anschließend soll die dann wieder funktionieren.

Am Sun, 15 Dec 2013 15:36:02 GMT
schrieb tomdylan <tomdylan@no-mx.forums.opensuse.org>:

> Hallo Forum,
> wenn ich meinen HP620 aus dem “Tiefschlaf” wecke, dreht der Lüfter mit
> voller Power und hört nicht mehr auf.
> Dieses Verhalten ist erst seit dem Upgrade auf 13.1.
>
> Irgendwelche Tipps, woran das liegt und was man da machen sollte?
>
> Tom

Wimre ist das ein Problem mit der Firmware. Versuch mal ob Du ein
Update bekommst.

Bernd

PS: Angeblich kann man auch irgendwas starten was viel CPU-Power
verbraucht und so erstmalig die Lüftersteuerung anschmeisst.
Anschließend soll die dann wieder funktionieren.

Laut Google könnte helfen, mit einem Texteditor eine Datei /etc/pm/sleep.d/11_fan anzulegen (z.B. mit “kdesu kwrite /etc/pm/sleep.d/11_fan”) mit folgendem Inhalt:


#!/bin/sh
#
# avoid max fan speed after resume
# position /etc/pm/sleep.d/11_fan_2.6.38

case "$1" in
hibernate|suspend)
# do nothing
;;

thaw|resume)
sleep 1
echo -n 1 > /sys/class/thermal/cooling_device0/cur_state
sleep 2
echo -n 0 > /sys/class/thermal/cooling_device0/cur_state
;;
esac
# end script

Danach mit “sudo chmod a+x /etc/pm/sleep.d/11_fan” die Datei ausführbar machen.

Von [ubuntu] HP 620 Wifi/bluetooth and fan problem [Archive] - Ubuntu Forums]([ubuntu] HP 620 Wifi/bluetooth and fan problem [Archive] - Ubuntu Forums)

Danke für den Hinweis!
Auch ich habe gegoogelt und offensichtlich wurde dieser Fehler bereits bei bugzilla bemerkt:

https://bugs.mageia.org/show_bug.cgi?id=10349

Mich hat es gewundert, dass ich unter OS 12.1 keinerlei Probleme damit hatte.
Offensichtlich hat dies mit der neuen Version zu tun…

Ich habe die Datei 11_fan angelegt und sie mittels chmod “ausführbar” gemacht.
Mir ist nun unklar, ob ich diese Datei explizit “ausführen” muss oder ob dies automatisch nach dem “Aufwachen” erfolgt.
Ich werde erst Mal neu starten und dann in den Schlafmodus gehen, um zu sehen, wie der Lüfter sich verhält.
Ich teile euch das Ergebnis mit!

Bis gleich

Tom

Scripts in /etc/pm/sleep.d/ werden automatisch vor dem Suspend und nach dem Resume ausgeführt.
Das ist der Sinn und Zweck dieses Verzeichnisses.

Schade! Das Skript hat da Ventilator-Problem immer noch nicht beheben können ;-(

Ich konnte mittels Systemüberwachungsmonitor erkennen, dass das Script in 11_fan aufgerufen wird, dies hatte jedoch keinerlei Auswikungen auf den Ventilator.

Ich habe keinerlei Erfahrung mit dieser Script-Sprache (bin ein Fortran-77 fossil, falls noch jemand da draußen weiß was das ist…).
ich sehe nur, dass die variablen sleep1 und sleep2 eine (Integer)Zahl in /sys/class/thermal/cooling_device0/cur_state
schreiben. Im Augenblick befindet sich dort eine “0”.

Steuert diese Zahl die Ventilatorengeschwindigkeit?
Müsste die Datei nicht 11_fan_2.6.38 heißen?

Könnte jemand (Wolfi, ich glaube hier bist du der “Guru”) überprüfen ob das Skript vollständig/richtig ist, damit das Ventilarorenproblem tatsächlich abgeschaltet wird?

Gruß

Tom

PS

Skript:


#!/bin/sh

avoid max fan speed after resume

position /etc/pm/sleep.d/11_fan_2.6.38

case “$1” in
hibernate|suspend)

do nothing

;;

thaw|resume)
sleep 1
echo -n 1 > /sys/class/thermal/cooling_device0/cur_state
sleep 2
echo -n 0 > /sys/class/thermal/cooling_device0/cur_state
;;
esac

end script

Schade.

Ich habe keinerlei Erfahrung mit dieser Script-Sprache (bin ein Fortran-77 fossil, falls noch jemand da draußen weiß was das ist…).

Das ist ein ganz normales Shell script.

ich sehe nur, dass die variablen sleep1 und sleep2 eine (Integer)Zahl in /sys/class/thermal/cooling_device0/cur_state
schreiben. Im Augenblick befindet sich dort eine “0”.

sleep1 und sleep2 sind keine Variablen. “sleep” ist ein Shell Befehl der nichts anderes tut als eine bestimmte Zeit zu warten (im Script 1 bzw. 2 Sekunden).
“echo” schreibt den entsprechenden Wert (1 bzw. 0) in diese Kernel Variable (durch die Ausgabeumleitung mit ‘>’, “echo” gibt einfach nur einen Text auf der Standardausgabe aus)

Steuert diese Zahl die Ventilatorengeschwindigkeit?

Die Kernel Variable /sys/class/thermal/cooling_device0/cur_state steuert die Ventilatorgeschwindigkeit des “cooling_device0” (bzw. sollte).

Müsste die Datei nicht 11_fan_2.6.38 heißen?

Nein. Wie schon gesagt, der Dateiname ist ziemlich egal. Es werden alle Scripts in dem Verzeichnis in alphabetischer Reihenfolge gestartet.
Das 2.6.38 in dem Kommentar bezieht sich vermutlich auf die Kernelversion für die es geschrieben wurde.

Könnte jemand (Wolfi, ich glaube hier bist du der “Guru”) überprüfen ob das Skript vollständig/richtig ist, damit das Ventilarorenproblem tatsächlich abgeschaltet wird?

Tja, an sich ist das Script korrekt, soweit ich das sehen kann.
Überprüfen kann ich es leider nicht wirklich, da ich weder dieses Laptop-Modell besitze, noch dieses Problem bei mir auftritt.

Bringt es was, wenn du die entsprechenden Befehle manuell in einem Terminalfenster eingibst wenn der Lüfter auf Hochtouren läuft?

su
echo -n 1 > /sys/class/thermal/cooling_device0/cur_state
echo -n 0 > /sys/class/thermal/cooling_device0/cur_state

(Das sleep kannst du weglassen, wie gesagt das wartet nur eine gewisse Zeit, du bist aber sicher nicht so schnell…, das ‘su’ hingegen ist in diesem Fall notwendig, weil man root Rechte dafür braucht)

Vielleicht ist bei dir der rasende Lüfter nicht cooling_device0 sondern ein anderes?
Was sagt:

ls -d /sys/class/thermal/cooling_device*

Hallo Wolfi,

erstmal herzlichen Dank für die Einführung in diese script-Sprache!

Soweit ich das richtig verstehe, handelt es sich um ein Problem, das auch bei anderen HP-Rechnern auftritt:
https://bugzilla.kernel.org/show_bug.cgi?id=58301#c19
Offensichtlich ist das Problem erkannt (bugfixes) aber dennoch in Kernel 3.11 immer noch vorhanden (s. comment 19).

Hier ist die Antwort auf ~> ls -d /sys/class/thermal/cooling_device*
/sys/class/thermal/cooling_device0 /sys/class/thermal/cooling_device14 /sys/class/thermal/cooling_device6
/sys/class/thermal/cooling_device1 /sys/class/thermal/cooling_device15 /sys/class/thermal/cooling_device7
/sys/class/thermal/cooling_device10 /sys/class/thermal/cooling_device2 /sys/class/thermal/cooling_device8
/sys/class/thermal/cooling_device11 /sys/class/thermal/cooling_device3 /sys/class/thermal/cooling_device9
/sys/class/thermal/cooling_device12 /sys/class/thermal/cooling_device4
/sys/class/thermal/cooling_device13 /sys/class/thermal/cooling_device5

(Super ich habe 15 Lüfter ! Dabei hat die Kiste keine 300 € gekostet :wink:

Vielleicht hilft auch das:
ll /sys/class/thermal/thermal_zone*/

/sys/class/thermal/thermal_zone0/:
insgesamt 0
lrwxrwxrwx 1 root root 0 28. Dez 21:52 cdev0 → …/cooling_device2
-r–r–r-- 1 root root 4096 28. Dez 21:52 cdev0_trip_point
lrwxrwxrwx 1 root root 0 28. Dez 21:52 cdev1 → …/cooling_device3
-r–r–r-- 1 root root 4096 28. Dez 21:52 cdev1_trip_point
lrwxrwxrwx 1 root root 0 28. Dez 21:52 cdev2 → …/cooling_device4
-r–r–r-- 1 root root 4096 28. Dez 21:52 cdev2_trip_point
lrwxrwxrwx 1 root root 0 28. Dez 21:52 cdev3 → …/cooling_device5
-r–r–r-- 1 root root 4096 28. Dez 21:52 cdev3_trip_point
lrwxrwxrwx 1 root root 0 28. Dez 21:52 cdev4 → …/cooling_device6
-r–r–r-- 1 root root 4096 28. Dez 21:52 cdev4_trip_point
lrwxrwxrwx 1 root root 0 28. Dez 21:52 cdev5 → …/cooling_device7
-r–r–r-- 1 root root 4096 28. Dez 21:52 cdev5_trip_point
lrwxrwxrwx 1 root root 0 28. Dez 21:52 cdev6 → …/cooling_device8
-r–r–r-- 1 root root 4096 28. Dez 21:52 cdev6_trip_point
lrwxrwxrwx 1 root root 0 28. Dez 21:52 device → …/…/…/LNXSYSTM:00/device:52/LNXTHERM:00
-rw-r–r-- 1 root root 4096 28. Dez 21:52 mode
-rw-r–r-- 1 root root 4096 28. Dez 21:52 passive
-rw-r–r-- 1 root root 4096 28. Dez 21:52 policy
drwxr-xr-x 2 root root 0 28. Dez 21:52 power
lrwxrwxrwx 1 root root 0 28. Dez 21:50 subsystem → …/…/…/…/class/thermal
-r–r–r-- 1 root root 4096 28. Dez 21:52 temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_0_temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_0_type
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_1_temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_1_type
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_2_temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_2_type
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_3_temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_3_type
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_4_temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_4_type
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_5_temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_5_type
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_6_temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_6_type
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_7_temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_7_type
-r–r–r-- 1 root root 4096 28. Dez 21:52 type
-rw-r–r-- 1 root root 4096 28. Dez 21:49 uevent

/sys/class/thermal/thermal_zone1/:
insgesamt 0
lrwxrwxrwx 1 root root 0 28. Dez 21:52 device → …/…/…/LNXSYSTM:00/device:52/LNXTHERM:01
-rw-r–r-- 1 root root 4096 28. Dez 21:52 mode
-rw-r–r-- 1 root root 4096 28. Dez 21:52 passive
-rw-r–r-- 1 root root 4096 28. Dez 21:52 policy
drwxr-xr-x 2 root root 0 28. Dez 21:52 power
lrwxrwxrwx 1 root root 0 28. Dez 21:50 subsystem → …/…/…/…/class/thermal
-r–r–r-- 1 root root 4096 28. Dez 21:52 temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_0_temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_0_type
-r–r–r-- 1 root root 4096 28. Dez 21:52 type
-rw-r–r-- 1 root root 4096 28. Dez 21:49 uevent

/sys/class/thermal/thermal_zone2/:
insgesamt 0
lrwxrwxrwx 1 root root 0 28. Dez 21:52 cdev0 → …/cooling_device14
-r–r–r-- 1 root root 4096 28. Dez 21:52 cdev0_trip_point
lrwxrwxrwx 1 root root 0 28. Dez 21:52 cdev1 → …/cooling_device13
-r–r–r-- 1 root root 4096 28. Dez 21:52 cdev1_trip_point
lrwxrwxrwx 1 root root 0 28. Dez 21:52 cdev2 → …/cooling_device12
-r–r–r-- 1 root root 4096 28. Dez 21:52 cdev2_trip_point
lrwxrwxrwx 1 root root 0 28. Dez 21:52 cdev3 → …/cooling_device11
-r–r–r-- 1 root root 4096 28. Dez 21:52 cdev3_trip_point
lrwxrwxrwx 1 root root 0 28. Dez 21:52 cdev4 → …/cooling_device10
-r–r–r-- 1 root root 4096 28. Dez 21:52 cdev4_trip_point
lrwxrwxrwx 1 root root 0 28. Dez 21:52 cdev5 → …/cooling_device9
-r–r–r-- 1 root root 4096 28. Dez 21:52 cdev5_trip_point
lrwxrwxrwx 1 root root 0 28. Dez 21:52 cdev6 → …/cooling_device1
-r–r–r-- 1 root root 4096 28. Dez 21:52 cdev6_trip_point
lrwxrwxrwx 1 root root 0 28. Dez 21:52 cdev7 → …/cooling_device0
-r–r–r-- 1 root root 4096 28. Dez 21:52 cdev7_trip_point
lrwxrwxrwx 1 root root 0 28. Dez 21:52 device → …/…/…/LNXSYSTM:00/device:52/LNXTHERM:02
-rw-r–r-- 1 root root 4096 28. Dez 21:52 mode
-rw-r–r-- 1 root root 4096 28. Dez 21:52 policy
drwxr-xr-x 2 root root 0 28. Dez 21:52 power
lrwxrwxrwx 1 root root 0 28. Dez 21:50 subsystem → …/…/…/…/class/thermal
-r–r–r-- 1 root root 4096 28. Dez 21:52 temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_0_temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_0_type
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_1_temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_1_type
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_2_temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_2_type
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_3_temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_3_type
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_4_temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_4_type
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_5_temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_5_type
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_6_temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_6_type
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_7_temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_7_type
-r–r–r-- 1 root root 4096 28. Dez 21:52 type
-rw-r–r-- 1 root root 4096 28. Dez 21:49 uevent

/sys/class/thermal/thermal_zone3/:
insgesamt 0
lrwxrwxrwx 1 root root 0 28. Dez 21:52 cdev0 → …/cooling_device1
-r–r–r-- 1 root root 4096 28. Dez 21:52 cdev0_trip_point
lrwxrwxrwx 1 root root 0 28. Dez 21:52 cdev1 → …/cooling_device0
-r–r–r-- 1 root root 4096 28. Dez 21:52 cdev1_trip_point
lrwxrwxrwx 1 root root 0 28. Dez 21:52 device → …/…/…/LNXSYSTM:00/device:52/LNXTHERM:03
-rw-r–r-- 1 root root 4096 28. Dez 21:52 mode
-rw-r–r-- 1 root root 4096 28. Dez 21:52 policy
drwxr-xr-x 2 root root 0 28. Dez 21:52 power
lrwxrwxrwx 1 root root 0 28. Dez 21:50 subsystem → …/…/…/…/class/thermal
-r–r–r-- 1 root root 4096 28. Dez 21:52 temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_0_temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_0_type
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_1_temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_1_type
-r–r–r-- 1 root root 4096 28. Dez 21:52 type
-rw-r–r-- 1 root root 4096 28. Dez 21:49 uevent

/sys/class/thermal/thermal_zone4/:
insgesamt 0
lrwxrwxrwx 1 root root 0 28. Dez 21:52 cdev0 → …/cooling_device1
-r–r–r-- 1 root root 4096 28. Dez 21:52 cdev0_trip_point
lrwxrwxrwx 1 root root 0 28. Dez 21:52 cdev1 → …/cooling_device0
-r–r–r-- 1 root root 4096 28. Dez 21:52 cdev1_trip_point
lrwxrwxrwx 1 root root 0 28. Dez 21:52 device → …/…/…/LNXSYSTM:00/device:52/LNXTHERM:04
-rw-r–r-- 1 root root 4096 28. Dez 21:52 mode
-rw-r–r-- 1 root root 4096 28. Dez 21:52 policy
drwxr-xr-x 2 root root 0 28. Dez 21:52 power
lrwxrwxrwx 1 root root 0 28. Dez 21:50 subsystem → …/…/…/…/class/thermal
-r–r–r-- 1 root root 4096 28. Dez 21:52 temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_0_temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_0_type
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_1_temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_1_type
-r–r–r-- 1 root root 4096 28. Dez 21:52 type
-rw-r–r-- 1 root root 4096 28. Dez 21:49 uevent

/sys/class/thermal/thermal_zone5/:
insgesamt 0
lrwxrwxrwx 1 root root 0 28. Dez 21:52 device → …/…/…/LNXSYSTM:00/device:52/LNXTHERM:05
-rw-r–r-- 1 root root 4096 28. Dez 21:52 mode
-rw-r–r-- 1 root root 4096 28. Dez 21:52 passive
-rw-r–r-- 1 root root 4096 28. Dez 21:52 policy
drwxr-xr-x 2 root root 0 28. Dez 21:52 power
lrwxrwxrwx 1 root root 0 28. Dez 21:50 subsystem → …/…/…/…/class/thermal
-r–r–r-- 1 root root 4096 28. Dez 21:52 temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_0_temp
-r–r–r-- 1 root root 4096 28. Dez 21:52 trip_point_0_type
-r–r–r-- 1 root root 4096 28. Dez 21:52 type
-rw-r–r-- 1 root root 4096 28. Dez 21:49 uevent

Gruß

Tom

Leider sind diese Patches scheinbar auch noch nicht in 3.12 oder 3.13 enthalten.

Ich hab aber auch noch diesen Bugreport gefunden:
https://bugs.mageia.org/show_bug.cgi?id=10349
Dieser besagt, dass Schreiben von 0 in alle cooling_deviceX/cur_state hilft.

Probier also mal dieses Script anstelle des alten (Änderungen sind rot markiert):

#!/bin/sh
#
# avoid max fan speed after resume
# position /etc/pm/sleep.d/11_fan_2.6.38

case "$1" in
hibernate|suspend)
# do nothing
;;

thaw|resume)
for i in $(ls -d /sys/class/thermal/cooling_device*)
do
sleep 1
echo -n 1 > $i/cur_state
sleep 2
echo -n 0 > $i/cur_state
done
;;
esac
# end script

Eine Schleife über sämtliche cooling_devices? Chapeau!

Das hat jetzt funktioniert!

Zwar dreht der Ventilator zunächst voll auf, geht jedoch nach ca. 30-45 Sek. wieder runter.
Mit diesem Workout kann man leben, vielen Dank dafür!

Ich gehe davon aus, dass die Temperaturüberwachung nach wie vor funktioniert und bei entsprechender Last der/die Lüfter wieder hoch gefahren werden.

Soll ich den Thread als “gelöst” markieren?

Tja, bei 15 cooling_devices braucht die Schleife 45 Sekunden um durchzulaufen, wegen der 3 Sekunden Schlaf pro Durchlauf (sleep).
Wenn du Lust hast, kannst du ja probieren rauszufinden welche nun tatsächlich benötigt werden. Dann sollte es schneller gehen bis Ruhe ist. :wink:

Ich gehe davon aus, dass die Temperaturüberwachung nach wie vor funktioniert und bei entsprechender Last der/die Lüfter wieder hoch gefahren werden.

Ich auch.

Soll ich den Thread als “gelöst” markieren?

Wenn dein Problem gelöst ist, kannst du das machen, ja.