hife
Anmeldungsdatum: 22. April 2009
Beiträge: 62
|
Seit meinem Update auf von Ubuntu 13.10 auf 14.04 ist bei meinem HP 625 nach dem Aufwachen aus dem Standby (und oft nach Neustart) die Lüftersteuerung inaktiv. Das bedeutet, der Lüfter bleibt aus, bis eine Temperatur von 85° erreicht wird, bei der eine Notkühlung auf voller Kraft einsetzt, die nach einiger Zeit wieder dem Stillstand weicht.
Dies tut der Hardware sicher nicht gut und verschafft unerwünschte Aufmerksamkeit in Vorlesungen und Bibliotheken.
Ich bin bei meiner Suche bereits auf vergleichbare Probleme gestoßen:
https://bugzilla.kernel.org/show_bug.cgi?id=19452
http://superuser.com/questions/229849/high-fan-speed-after-return-from-suspend-on-ubuntu Die dort vorgeschlagene Übergangslösung mit
echo 0 > /proc/acpi/fan/FAN5/state
scheitert daran, dass es das Verzeichnis fan nicht gibt.
sudo echo 0 > /sys/devices/virtual/thermal/cooling_device0/cur_state
sagt mir, ich habe keine Berechtigung ohne überhaupt nach dem Root-Passwort zu fragen. Die Wurzel des Problems scheint tiefer zu liegen, aber beispielsweise ein BIOS-Update ist im Moment nicht drin, da ich zur Zeit nicht auf ein funktionstüchtiges Laptop verzichten kann. Daher bin ich momentan in erster Linie daran interessiert, die Übergangslösung zum Laufen zu bringen, um nicht immer drei Mal neu starten zu müssen, aber auch eine langfristige Lösung würde ich natürlich begrüßen.
|
pytoolmaker
Anmeldungsdatum: 25. April 2014
Beiträge: 15
|
Hallo Dies Fehlverhalten kann ich bestätigen. Gelöst habe ich das Problem wie folgt. sudo crontab -e diese Zeile einfügen (am Ende sollte eine Leerzeile sein)
*/2 * * * * echo 1 | tee /sys/class/thermal/cooling_device[1-4]/cur_state >/dev/null 2>&1
dies schaltet alle 2 Minuten alle möglichen Lüfterstufen ein. (Diese sind Temperatur ab hängig) so wird der HP625 nicht wärmer als 70 bis 75° ohne last bleibt er bei <53°
|
hife
(Themenstarter)
Anmeldungsdatum: 22. April 2009
Beiträge: 62
|
Hallo pytoolmaker, erstmal vielen Dank, dein Vorschlag funktioniert, das hilft mir schonmal sehr. Nun würde mich noch interessieren, warum deine Version mit tee funktioniert, die aus meinem Post aber nicht.
Führe ich deine Version ohne den hinteren Teil, der die Ausgabe verwirft, aus, erhalte ich trotzdem die "Keine Berechtigung"-Meldung, allerdings wird nach dem Passwort gefragt, was ohne tee nicht passiert, und nach Eingabe funktioniert es auch. Es käme mir "sauberer" vor, den Befehl bei jedem Neustart und Aufwach-Prozess auszuführen, statt alle 2 Minuten. Spricht etwas dagegen, das beispielsweise in /etc/rc.local und /usr/lib/pm-utils/sleep.d zu integrieren? (Abgesehen davon, dass man dabei leichter was kaputt macht.)
Oder gibt es eine bessere Methode?
|
pytoolmaker
Anmeldungsdatum: 25. April 2014
Beiträge: 15
|
hife schrieb: Hallo pytoolmaker, erstmal vielen Dank, dein Vorschlag funktioniert, das hilft mir schonmal sehr.
np
Nun würde mich noch interessieren, warum deine Version mit tee funktioniert, die aus meinem Post aber nicht.
Der Syntax ist Falsch
sudo echo 0 > /sys/devices/virtual/thermal/cooling_device0/cur_state
Der Syntax ist Richtig
sudo -s sh -c 'echo 0 > /sys/devices/virtual/thermal/cooling_device0/cur_state'
Test
sudo -s sh -c 'echo 0 > /tmp/test'
sudo ls -l /tmp/test
sudo cat /tmp/test
0
oder
mit sudo -i zu Root werden.
dann funzt auch
echo 0 > /sys/devices/virtual/thermal/cooling_device0/cur_state 1. echo 0 die null bedeutet aus (und cooling_device0 ist doch schon aus) 2. cooling_device0 ist die letzte und schnellste Lüfterdrehzahl. cooling_device4 die langsamste. 3. tee verwende ich aufgrund der gleichzeitigen möglichen Umleitung in mehreren Dateien mit einem Befehl [0-4] das geht nicht mit echo 1 >bla[0-4]
Führe ich deine Version ohne den hinteren Teil, der die Ausgabe verwirft, aus, erhalte ich trotzdem die "Keine Berechtigung"-Meldung, allerdings wird nach dem Passwort gefragt, was ohne tee nicht passiert, und nach Eingabe funktioniert es auch.
immer ohne >/dev/null 2>&1 testen (aber nicht als root/sudo rumspielen sondern wissen was man da mit tut)
Es käme mir "sauberer" vor, den Befehl bei jedem Neustart und Aufwach-Prozess auszuführen, statt alle 2 Minuten. Spricht etwas dagegen, das beispielsweise in /etc/rc.local und /usr/lib/pm-utils/sleep.d zu integrieren? (Abgesehen davon, dass man dabei leichter was kaputt macht.)
da täuscht du dich.
der CPU wird doch auch bei Auslastung wärmer auch dann schaltet der Lüfter nicht höher. Ausgehen sie ja von selber bei mir. Je nach Temperatur.
(natürlich ist das nur ein Workaround für einen BUG)
Oder gibt es eine bessere Methode?
meine ist so weit ok 2min hin oder her ist doch wurscht. Machs wie du willst. besser geht auch. Z.b. die Stufe 4 ausschalten ab ca. 49° Test
echo 1 | sudo tee /sys/class/thermal/cooling_device[0-4]/cur_state
1
Status prüfen (bei ca 73°)
sudo cat /sys/class/thermal/cooling_device[0-4]/cur_state
0
0
0
1
1
|
pytoolmaker
Anmeldungsdatum: 25. April 2014
Beiträge: 15
|
pytoolmaker schrieb: Hallo Dies Fehlverhalten kann ich bestätigen. Gelöst habe ich das Problem wie folgt. sudo crontab -e diese Zeile einfügen (am Ende sollte eine Leerzeile sein)
*/2 * * * * echo 1 | tee /sys/class/thermal/cooling_device[1-4]/cur_state >/dev/null 2>&1
dies schaltet alle 2 Minuten alle möglichen Lüfterstufen ein. (Diese sind Temperatur ab hängig) so wird der HP625 nicht wärmer als 70 bis 75° ohne last bleibt er bei <53°
Ich habe das cooling_device0 vergessen.
*/2 * * * * echo 1 | tee /sys/class/thermal/cooling_device[0-4]/cur_state >/dev/null 2>&1
Das ist die Lösung mit cooling_device0
|
hife
(Themenstarter)
Anmeldungsdatum: 22. April 2009
Beiträge: 62
|
Vielen Dank für die ausführliche Antwort. pytoolmaker schrieb: 1. echo 0 die null bedeutet aus (und cooling_device0 ist doch schon aus)
Ok. 2. cooling_device0 ist die letzte und schnellste Lüfterdrehzahl. cooling_device4 die langsamste.
Es gibt hier auch die Verzeichnisse cooling_device5-7; spielen die noch eine Rolle? 3. tee verwende ich aufgrund der gleichzeitigen möglichen Umleitung in mehreren Dateien mit einem Befehl [0-4] das geht nicht mit echo 1 >bla[0-4]
Alles klar, gut zu wissen.
da täuscht du dich.
der CPU wird doch auch bei Auslastung wärmer auch dann schaltet der Lüfter nicht höher. Ausgehen sie ja von selber bei mir. Je nach Temperatur.
(natürlich ist das nur ein Workaround für einen BUG)
Hier habe ich wohl eine falsche Vorstellung gehabt. Ich hatte den anfangs verlinkten Beitrag so verstanden, dass nach einmaliger Aktivierung die reguläre Lüftersteuerung wieder tut was sie soll und kein weiteres Eingreifen notwendig wäre. Wo würde ein entsprechender Bugreport hingehören (kernel oder Ubuntu?)? (Oder sollte ich das versierteren Anwendern überlassen?) pytoolmaker schrieb: Ich habe das cooling_device0 vergessen.
Dachte ich mir, nach dem vorherigen Post.
|
pytoolmaker
Anmeldungsdatum: 25. April 2014
Beiträge: 15
|
hife schrieb: Vielen Dank für die ausführliche Antwort. pytoolmaker schrieb: 1. echo 0 die null bedeutet aus (und cooling_device0 ist doch schon aus)
Ok. 2. cooling_device0 ist die letzte und schnellste Lüfterdrehzahl. cooling_device4 die langsamste.
Es gibt hier auch die Verzeichnisse cooling_device5-7; spielen die noch eine Rolle?
grep . /sys/class/thermal/cooling_device?/type
/sys/class/thermal/cooling_device0/type:Fan
/sys/class/thermal/cooling_device1/type:Fan
/sys/class/thermal/cooling_device2/type:Fan
/sys/class/thermal/cooling_device3/type:Fan
/sys/class/thermal/cooling_device4/type:Fan
/sys/class/thermal/cooling_device5/type:Processor
/sys/class/thermal/cooling_device6/type:Processor
/sys/class/thermal/cooling_device7/type:LCD
grep . /sys/class/thermal/cooling_device?/max_state
/sys/class/thermal/cooling_device0/max_state:1
/sys/class/thermal/cooling_device1/max_state:1
/sys/class/thermal/cooling_device2/max_state:1
/sys/class/thermal/cooling_device3/max_state:1
/sys/class/thermal/cooling_device4/max_state:1
/sys/class/thermal/cooling_device5/max_state:3
/sys/class/thermal/cooling_device6/max_state:3
/sys/class/thermal/cooling_device7/max_state:24
nein. cooling_device7 regelt die Hindergrund Beleuchtung vom Display. von 0-24. (getestet) cooling_device[5-6] regelt wohl den CPU Takt schrittweise. (ungetestet)
3. tee verwende ich aufgrund der gleichzeitigen möglichen Umleitung in mehreren Dateien mit einem Befehl [0-4] das geht nicht mit echo 1 >bla[0-4]
Alles klar, gut zu wissen.
da täuscht du dich.
der CPU wird doch auch bei Auslastung wärmer auch dann schaltet der Lüfter nicht höher. Ausgehen sie ja von selber bei mir. Je nach Temperatur.
(natürlich ist das nur ein Workaround für einen BUG)
Hier habe ich wohl eine falsche Vorstellung gehabt. Ich hatte den anfangs verlinkten Beitrag so verstanden, dass nach einmaliger Aktivierung die reguläre Lüftersteuerung wieder tut was sie soll und kein weiteres Eingreifen notwendig wäre. Wo würde ein entsprechender Bugreport hingehören (kernel oder Ubuntu?)? (Oder sollte ich das versierteren Anwendern überlassen?)
das ist eine gute Frage! Da überlege ich selber noch. Ich vermute da gibt es einen im kernel und bei Ubuntu. Verfasse doch jeweils einen neuen bei beiden. Kernel im Modul/BuildIn thermal
grep -i acpi.*thermal /boot/config-$(uname -r)
CONFIG_ACPI_THERMAL=y
Ubuntu allgemeine Lüftersteuerung und beachte die Regeln für Bugreport erstellen.
Das wäre echt super wenn du das machen könntest.
Bitte schreibe dann hier die Liks zu den Reports ins Forum. Danke!
pytoolmaker schrieb: Ich habe das cooling_device0 vergessen.
Dachte ich mir, nach dem vorherigen Post.
|
pytoolmaker
Anmeldungsdatum: 25. April 2014
Beiträge: 15
|
Off-Topic !!! Um die Shell-Programmierung zu lernen gib es auch freie online Bücher Shell-Programmierung von Galileo Computing z.b.
http://openbook.galileocomputing.de/shell_programmierung/index.htm
|
pytoolmaker
Anmeldungsdatum: 25. April 2014
Beiträge: 15
|
| grep . /sys/class/thermal/thermal_zone0/trip_point_?_temp
/sys/class/thermal/thermal_zone0/trip_point_0_temp:108000
/sys/class/thermal/thermal_zone0/trip_point_1_temp:100000
/sys/class/thermal/thermal_zone0/trip_point_2_temp:92000
/sys/class/thermal/thermal_zone0/trip_point_3_temp:84000
/sys/class/thermal/thermal_zone0/trip_point_4_temp:75000
/sys/class/thermal/thermal_zone0/trip_point_5_temp:63000
/sys/class/thermal/thermal_zone0/trip_point_6_temp:52000
|
Zeigt an wann die Stufen aktiviert werden können Generic Thermal Sysfs driver How To https://www.kernel.org/doc/Documentation/thermal/sysfs-api.txt
|
hife
(Themenstarter)
Anmeldungsdatum: 22. April 2009
Beiträge: 62
|
Tut mir Leid wegen des langen Schweigens meinerseits. Ich arbeite gerade das Pre-Bugreport-Prozedere durch; das kann sich bei meinem Kenntnisstand noch etwas hinziehen. Insbesondere soll vor dem Report ein BIOS-Update gemacht werden, was ich aber - wie im ersten Post beschrieben - ungern riskieren möchte. Ich habe übrigens im Laufe der vergangenen Woche gute Erfahrungen mit deinem Fix gemacht, allerdings traten auch ein oder zwei Mal Temperaturen von über 80°C auf. Weiterhin danke für die weiterführenden Lesetipps; ich hoffe, ich finde bald mal die Zeit dazu. EDIT: Vorläufiger Bugreport ist online: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1315836 EDIT2: Wie ich mir dachte: BIOS-Update erwünscht. Das wird sich dann noch etwas verzögern, da ich das nicht riskieren möchte, ohne ein Reserve-System aufgesetzt zu haben.
|
pasdVn
Anmeldungsdatum: 31. Oktober 2008
Beiträge: 21
|
Hallo zusammen, ich besitze ein HP Compaq nx8220 und habe seit dem Update (komplette Neuinstallation) auf Xubuntu 14.04 das gleiche bzw. zumindest ein ähnliches Problem. Zuvor hatte ich Xubuntu 13.10 auf dem Gerät. Da hatte alles noch (bis auf diesen Fehler hier: http://forum.ubuntuusers.de/topic/luefter-mit-max-drehzahl-nach-standby/) noch funktioniert. Bei mir läuft die Lüftersteuerung allerdings überhaupt nicht mehr von allein (unabhängig von Standby/Neustart). Sobald das System einmal hochgefahren ist ändert sich die Drehzahl des Lüfters nicht mehr (außer man ändert sie manuell, wie oben bereits beschrieben).
Was mir allerdings aufgefallen ist: Das System schein die Lüfterdrehzahl immer dann an die aktuelle Temperatur anzupassen, wenn ich den Netzstecker ziehe oder Stecke (also beim ACPI-Event!?). Eventuell kannst du (hife) das ja mal bei dir gegen checken. Wenn ja habe wir beide wohl wirklich das gleiche Problem und diese Info hilft irgendwie bei der Fehlersuche. Ein BIOS-Update habe ich bei mir übrigens schon durchgeführt, wobei ich generell wenig Hoffnung hatte, dass das etwas ändert, weil das Update selbst schon uralt war (eine Version von 2009). Gebracht hat es dann auch tatsächlich nix, wobei dein Modell ja etwas neuer zu sein scheint...
|
pasdVn
Anmeldungsdatum: 31. Oktober 2008
Beiträge: 21
|
Ich habe mir jetzt als Workaround ein kleines Skript gebastelt, dass die Regelung des Lüfters mehr oder weniger komplett übernimmt. Zumindest bei mir ist das recht Sinnvoll, weil die Steuerung ja garnicht mehr funktioniert.
Muss für die allgemeine Verwendung sciherlich noch hier und da angepasst werden (andere Pfade, Lüfterstufen, etc.) 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 | #! /bin/bash
idx=(0 1 2 3)
threshold=(45 55 62 80)
device=(3 2 1 0)
while [ true ]
do
# get the temperature
TEMP=$(acpi -t | grep 'Thermal 3')
TEMP=$(echo $TEMP | grep -oEe [0-9]+\.[0-9])
TEMP=${TEMP%.*}
echo $TEMP
# set the fanspeed
for i in ${idx[*]}
do
if [ $TEMP -gt ${threshold[$i]} ]
then
ctrl=1
else
ctrl=0
fi
echo $ctrl > /sys/devices/virtual/thermal/cooling_device${device[$i]}/cur_state
done
sleep 5
done
|
das Skript muss dann noch in /etc/rc.local eingetragen werden | /root/fanControl.sh & # oder wo auch immer das Skript liegt
exit 0
|
Off Topic:
Ich wundere mich eigentlich, warum das Ansteuern des Lüfters überhaupt so einfach funktioniert. Bisher dachte ich, dass OS hat da nur begrenzten Einfluss, weil es (meistens? zumindest bei vielen Notebooks) direkt über die HW geregelt wird. Bezüglich Lüfterregelung gibt es im Wiki ja nur die Infos zu den Thinkpads. Wahrscheinlich gibt es genügend Leute, die so eine frei Konfigurierbare Lüfterregelung interessieren würde - unabhängig vom eigentlichen Bug. Edit: Da war noch ein kleiner Bug im Skript. Hab den noch korrigiert...
|
zündapp
Anmeldungsdatum: 21. Mai 2010
Beiträge: 6
|
Hallo Leidensgenossen Den HP625 habe ich auch mit Ubuntu 14.04 ausgestattet und habe nun das selbe Problem. Leider scheitere ich daran, die hier beschriebene Lösung um zu setzen. Es fehlen mir hier einige Kenntnisse zum Umgang mit Linux-Befehlen. Wenn ich sudo contrab-e aufrufe, erschein folgendes: # Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
#
[ 22 Zeilen gelesen ]
^G Hilfe ^O Speichern ^R Datei öffn^Y Seite zurü^K Ausschneid^C Cursor
^X Beenden ^J Ausrichten^W Wo ist ^V Seite vor ^U Ausschn. r^T Rechtschr. Dann füge ich die Zeile */2 * * * * echo 1 | tee /sys/class/thermal/cooling_device[1-4]/cur_state >/dev/null 2>&1 ein an der Stelle des letzten #, richtig?
Und wie komme ich dann weiter? In der Shell passiert dann nichts mehr, auch wenn ich Enter drücke. Kann mir hier jemand auf die Sprünge helfen? Ein Wiki-Artikel zu cron hat mich leider auch nicht weitergebracht. Jetzt möchte ich natürlich nicht, dass mein Laptop den Hitzetod stirbt. Danke für Eure Hilfe Wolfgang
|
hife
(Themenstarter)
Anmeldungsdatum: 22. April 2009
Beiträge: 62
|
Hallo Wolfgang, Standardmäßig benutzt crontab den Editor nano (erkennbar an z.B. bei mir "GNU nano 2.2.6" in der obersten Zeile). Am unteren Rand des Terminals sollte eine Liste von Befehlen zu sehen sein:
^G Hilfe ^O Speichern ^R Datei öffn^Y Seite zurü^K Ausschneid^C Cursor
^X Beenden ^J Ausrichten^W Wo ist ^V Seite vor ^U Ausschn. r^T Rechtschr.
"^" steht hierbei für die Strg-Taste. Also sollte Strg+O das tun, was du möchtest, nämlich die Änderungen speichern. Falls bei dir ein anderer Editor aufgerufen wird, versuche herauszufinden, welcher das ist und suche nach einer Anleitung dafür.
Ich hoffe das hilft dir weiter.
|
hife
(Themenstarter)
Anmeldungsdatum: 22. April 2009
Beiträge: 62
|
pasdVn schrieb: [...] HP Compaq nx8220 [...] Bei mir läuft die Lüftersteuerung allerdings überhaupt nicht mehr von allein (unabhängig von Standby/Neustart). Sobald das System einmal hochgefahren ist ändert sich die Drehzahl des Lüfters nicht mehr (außer man ändert sie manuell, wie oben bereits beschrieben).
Was mir allerdings aufgefallen ist: Das System schein die Lüfterdrehzahl immer dann an die aktuelle Temperatur anzupassen, wenn ich den Netzstecker ziehe oder Stecke (also beim ACPI-Event!?). Eventuell kannst du (hife) das ja mal bei dir gegen checken. Wenn ja habe wir beide wohl wirklich das gleiche Problem und diese Info hilft irgendwie bei der Fehlersuche.
Hallo pasdVn, tut mir Leid, dass ich nicht früher reagiert habe. Bei mir besteht das Problem bei Neustart (in der Regel) nicht, aber wenn es auftritt hat das Ziehen und Anschließen des Netzkabels keinen Effekt. Das Problem scheint wohl ein wenig anders zu sein (was natürlich nicht bedeutet, dass die Ursache nicht die selbe oder wenigstens verwandt sein kann).
|