Projektvorstellung: Tpfanco - Wartung und Paketierung von tp-fan

Myon

Member
Themenstarter
Registriert
2 März 2007
Beiträge
795
Hi,

einige von euch werden sicherlich Thinkpad Fan Control (aka tpfand, tpfan-admin oder tp-fan) von S. Urban kennen. Da tp-fan leider seit Ubuntu Jaunty nicht mehr gewartet wird, waren ab Ubuntu 10.10 immer kompliziertere Anleitungen nötig, um das Ding doch zum Laufen zu bekommen. Da ich auf das Hacken von alten deb-Paketen keine Lust mehr habe und die Anleitungen mittlerweile sowieso größtenteils von mir stammen, habe ich nun mal beschlossen, ein Projekt zum Warten und Paketieren von tp-fan zu gründen:

http://code.google.com/p/tpfanco/

Die schlimmsten Launchpad Bugs von tp-fan sind gefixt, Pakete für Natty, Maverick und Lucid stehen zum Download bereit. Auch Kubuntu und Xubuntu werden unterstützt.

Ich habe zwar die Thinkpad Wiki Seite zu TPFC bereits aktualisiert, das offizielle Wiki ist jedoch das Googlecode-Wiki (derzeit nur auf Englisch). Dort finden sich auch Häufig gestellte Fragen und Installationshinweise.

Eine Launchpad-Seite mit PPA ist vorerst nicht geplant, das Paketieren für Nicht Debian basierte Distris müssen deren Benutzer wohl selbst übernehmen. Der Quellcode ist natürlich vorhanden, ebenso ein SVN Repository.

Wie kann man als Benutzer dem Projekt helfen?
Tests und Feedback seien erwünscht. Außerdem wäre es nett, wenn man gute Lüfterprofile für TP-Modelle einsenden könnte, für die es noch gar keine Profile gibt. Wie man das macht steht hier erklärt.

Gruß
Myon
 
Hallo Eggcake,

ich glaube, dass deine Schwellen nicht optimal gesetzt sind. Da muss man etwas rumprobieren, bis man die richtigen Stellen für die Schwellen findet. Bei meinem Z61m weiß ich z.B. dass die CPU-Temperatur bei kleinen Lasten so zwischen 50°C und 55°C liegt. Wird sie höher, so schalte ich den Lüfter schon mal ein, aber auch hier reicht die niedrigste Lüfterstufe. Erst ab 60°C übergebe ich die Kontrolle an BIOS, da eine solche Temperatur darauf hindeutet, dass mein TP ordentlich zu tun hat.

Deinem Screenshot kann ich entnehmen, dass bei dir die "normale" Temperatur so zwischen 35°C und 46°C liegt. Ich weiß zwar nicht, welche Temperaturen für das T410 normal sind, aber vielleicht wäre es sinnvoller, das 15%-Intervall erst bei 47-48°C beginnen zu lassen. Ich glaube nicht, dass ein Core i5/i7 schon bei 50°C abraucht. Weiterhin könntest du etwas mit der Einstellung "Interval Cooling Mode" spielen. Die legt nämlich fest, wie groß der minimale zeitliche Abstand zwischen zwei Lüfterstufenwechseln sein muss. Ein etwas größerer Wert könnte da vielleicht Abhilfe schaffen.

EDIT:
Ach ja, du kannst das "Pulsieren" des Lüfters leicht simulieren, z.B. so
Code:
sudo apt-get install stress
while [ TRUE ]; do stress --cpu 2 --timeout 3; sleep 2; done
Die Schleife macht folgendes: 3 Sekunden lang den Prozessor belasten, danach 2 Sekunden Pause und dann wiederholt sich alles von neuem. Abbrechen mit Strg+C
 
Zuletzt bearbeitet:
Also zum Zeitpunkt dieser Intervalle ist die Temperatur nicht in der Nähe der Schwellwerte. Die Temperatur liegt normalerweise zwischen 42°C und 50°C. Ich will, dass der Lüfter auf der niedrigsten Stufe ist (was 15% entspricht) wenn ich mit dem Laptop "normal" unterwegs bin. Deshalb finde ich's etwas merkwürdig: es ist nur ein leichtes "hauchen" des Lüfters, als ob die Spannung nicht ganz konstant bleibt. Ich werde es weiter beobachten, eventuell entdecke ich eine Regelmässigkeit oder es liegt wirklich an den Schwellwerten.

Was ich mit den Schwellwerten will: Unter ~42°C ist's mir eigentlich egal bzw. da kann der Lüfter aus sein. Bei dieser Temperatur ist das Notebook nur ganz am Anfang oder wenn lang rein gar nichts gemacht wird. Danach soll der Lüfter auf niedrigster Stufe blasen. Sobald der Laptop etwas stärker belastet wird und die Temperatur auf ~58°C steigt, soll das BIOS einspringen und den Laptop wieder auf ~50°C herunterkühlen (dazu ist "Hysteresis" da, wenn ich das richtig interpretiert habe). Von daher sollten die Schwellwerte schon mehr oder weniger okay sein, wobei diese Temperaturen für Windows korrekt waren, eventuell muss ich bei Linux noch etwas weiter beobachten.

Zum Verständnis: die beiden Regler (Interval XXX) kommen auch zum tragen, wenn nicht der "Interval"-Modus benutzt wird?


Ansonsten nochmals vielen Dank für das Tool - das hat mir wirklich gefehlt. Zusammen mit dem Helligkeitsbug war das ständige Dröhnen des Lüfters das, was mich am meisten gestört hat.
Gruss
 
Zur allgemeinen Erklärung der Hysterese-Einstellung. Du hast ja z.B. eine Schwelle bei 40°C. Angenommen der Laptop ist mal drüber, macht aber nichts rechenintensives. Der Lüfter springt ja gemäß der Einstellung an, und kühlt den Prozessor. Was passiert nun, wenn die Temperatur den Wert 40°C unterschreitet? Würde sich der Lüfter sofort abschalten, könnte die Temperatur dann sofort auf über 40°C hoch klettern -> man hätte das Problem des pulsierenden Lüfters. Mit der Hysterese kannst du aber festlegen, um wieviel Grad Celsius die aktuelle Temperatur die Schwellentemperatur unterschreiten muss, damit der Lüfter in die niedrigere Stufe wechselt. Stellst du hier z.B. 3°C ein, so wird so lange gekühlt, bis die Temperatur 37°C beträgt. Erst dann schaltet sich der Lüfter aus. Im tpfan-admin kann man solches Verhalten an Hand eines gelben Streifens beobachten. Gelber Streifen bedeutet, dass tpfan wartet, bis die Temperatur den Wert = (obere Schwelle - Hysterese) erreicht hat.

In deinem Fall ist der Wert von 8°C aber etwas zu hoch. Während du möchtest, dass der Lüfter unter 42°C aus ist, bleibt er bei dir an, bis 42°C-8°C=34°C erreicht sind. Das könnte auch einer der Gründe für das merkwürdige Verhalten sein. Es wäre meiner Meinung nach einfacher, zwischen 50°C und 58°C eine weitere Stufe anzulegen mit z.B. 45% oder so. Musst du selbst wissen. Das Tool macht halt, was du ihm sagst. Ob es auch immer Sinn macht, kann es ja nicht überprüfen.

Dass die Einstellungen unter Windows okay waren, würde ich jetzt aber nicht als den absoluten Grund ansehen, sie auch unter Linux beizubehalten. Die Systeme können sich nämlich in unterschiedlichen Situationen ganz anders verhalten.

Und ja, die drei Regler aus Advanced Options sind immer dann relevant, wenn du die Schalttemperaturen manuell festlegst, bzw. beim Fehlen eines Profils festlegen musst.
 
Zuletzt bearbeitet:
Also, ich habe jetzt testweise mal nur 2 Schwellen gemacht: eine bei ~25°C und eine bei 60°C - der Laptop lag mit etwa 45°C also wirklich weit entfernt von den Schwellen. Die Lüftergeschwindigkeit wurde auf 15% festgesetzt.

Ich habe das Handy genommen und das Geräusch aufgenommen. Soweit ich das mit dem Programm beurteilen kann springt der Lüfter von ~1980 (15%) immerwieder auf ~2400+ (2400 ist die Zahl, die ich im Programm erhaschen konnte - wird für das schnelle hochdrehen aber zu langsam aktualisiert um einen definitiven Wert geben zu können). Wie das tönt hört man im Anhang (die Lautstärke ist natürlich übertrieben da das Handy direkt beim Lüfter liegt). Es hat, so wie ich das beurteilen kann, nichts mit den Schwellen oder anderen Einstellungen zu tun - zumindest habe ich mit den Reglern herumgespielt und es hat nichts gebracht. Der Lüfter würde bei falschen Schwellen niemals so schnell hochdrehen. Wenn er von 15% auf 30% oder 60% geht, ist dies viel fliessender und nie so ruckartig.
Ich habe vorerst das Programm wieder deaktiviert, da dieses Verhalten wohl nicht gerade gesund für den Lüfter ist.

Ist es möglich, dass der Wert, welcher der Lüftersteuerung übergeben wird etwas zu hoch ist? Der Lüfter hat, so wie ich das aus Windows und der BIOS-Lüftersteuerung kenne, nur etwa 4 (realistische) Einstellungen (exkl. Off). Die liegen bei 1920rpm-1950rpm, ~3600rpm, ~3900rpm und ~4500rpm. Dann gibt es noch höhere, aber die kommen nie zum tragen. Bei 15% ist die RPM aber bei ~2000. Das ist zwar wenig, aber doch deutlich zu viel für die niedrigste Stufe.
 

Anhänge

Zuletzt bearbeitet:
Interessant.

Die Kontrolle der Lüftersteuerung erfolgt über den Modul thinkpad_acpi. Da kann man natürlich keine Drehzahlen übergeben, sondern nur zwischen den im BIOS festgelegten Lüfterstufen umschalten. Das kannst du auch selbst per Hand machen. Einfach tpfan deaktivieren und die hier
http://www.thinkwiki.org/wiki/How_to_control_fan_speed#For_Linux
vorgestellten Befehle (die mit sudo tee) ausprobieren. Die Nummern gehen von 0 bis 7, wobei manche Werte wohl zusammenfallen. tpfan und auch thinkfan machen nichts anderes, als Temperaturen auszulesen und entsprechend den Einstellungen die nötigen Lüfterstufen aktivieren.

Tritt das Problem auch dann auf, wenn du die Lüfterstufen manuell umschaltest? Was ist, wenn du thinkfan verwendest?
 
Geht beides nicht. Ersteres hat keine Auswirkung auf die Lüftergeschwindigkeit (muss ich noch fan_control = 1 machen oder sollte das nicht schon aktiv sein?) und letzteres öffnet einfach tpfan-admin ganz normal.
 
fan_control = 1 sollte eigentlich eh schon aktiv sein, ohne kann ja tp-fan auch nichts umschalten. Gehen die Befehle denn wirklich nicht? Auch wenn du z.B.
Code:
echo level 0 | sudo tee /proc/acpi/ibm/fan
oder
Code:
echo level disengaged | sudo tee /proc/acpi/ibm/fan
ausführst?

Deine letzten Worte mit tpfan-admin verstehe ich nicht ganz. War das jetzt auf thinkfan bezogen?
 
Ich bin mir nicht ganz sicher, ob die befehle nur "level 0" ausgeben sollen oder auch wirklich den Lüfter kontrollieren sollten? Dachte letzteres, wenn nicht, funktionieren sie :)

Mit tpfan-admin meinte ich, dass die von linrunner vorgeschlagene Methode nicht funktioniert bzw. einfach tpfan startet.
Sorry, war etwas verwirrend ausgedrückt.
 
Hast du denn zuvor tpfan ausgeschaltet?
Code:
sudo /etc/init.d/tpfand stop

Dann müssten auch die Befehle funktionieren. Ich verstehe aber trotzdem nicht, wieso sich tpfan-admin öffnet, wenn du
Code:
sudo thinkfan -n
ausführst? :confused:
 
Hallo Freunde der Sonne,

ich habe das Problem, dass tpfand ab und zu nicht gestartet wird. Nach einem Neustart läuft dann der Lüfter hörbar und wenn ich auf das Icon klicke kommt der Fehler, dass auf tpfand nicht zugegriffen werden kann.
Code:
sudo tpfand
sorgt für Ruhe und die graphische Lüftersteuerung öffnet sich ohne Probleme.
Ich verwende Ubuntu 11.10 mit Unity.

Jemand ne Idee?

PS: Danke für deine Arbeit, Myon. Ist Gold wert!
 
Der Fehler ist mir nicht bekannt und wenn er, wie du sagst, unregelmäßig auftaucht, wird das Beheben schwierig.

Es könnte eventuell daran liegen, dass Ubuntu das tpfand-Startskript zwecks Beschleunigung des Bootvorgangs zu früh ausführt, d.h. bevor das thinkpad_acpi Modul geladen ist. Du könntest mal folgendes versuchen:

Code:
sudo nano /etc/init.d/tpfand
und dort
Code:
# Required-Start:    $remote_fs $syslog $time
# Required-Stop:     $remote_fs $syslog $time
durch
Code:
# Required-Start:    $all
# Required-Stop:     $all
ersetzen. Dieses bewirkt, dass tpfand erst dann geladen wird, wenn alle anderen Bootskripte bereits ausgeführt wurden, also so ziemlich am Ende des Bootvorgangs. Dadurch könnte man schon mal die Möglichkeit ausschließen, dass der Fehler aus dem von mir oben genannten Grund auftaucht.
 
Code:
sudo nano /etc/init.d/tpfand
vim ist sicher auch erlaubt...
Code:
# Required-Start:    $remote_fs $syslog $time
# Required-Stop:     $remote_fs $syslog $time
durch
Code:
# Required-Start:    $all
# Required-Stop:     $all
ersetzen.

Hat nichts bewirkt gerade. Muss die Raute stehen bleiben?

Edit: Nachdem tpfand bei keinem von mind, 10 Reboots gestartet wurde, habe ich mal alle Pakete neuinstalliert.
Nachdem ersten Start sieht es so aus, als wäre alles, wie es sein sollte. Lüfter ist leise, mal sehen, ob das so bleibt.
Danke erstmal für deine Hilfe.
 
Zuletzt bearbeitet:
Ja, die Raute muss schon sein. Du sagtest, dass du tpfand über
Code:
sudo tpfand
startest. Der "richtige" Weg wäre aber
Code:
sudo /etc/init.d/tpfand start
Funktioniert das bei dir auch?
 
Ach so. Schön, das es jetzt klappt :thumbup:
 
Hallo,

das Problem des kurz hochdrehenden Lüfters, wie es Eggcake beschreibt, kann ich hier auch beobachten.

System ist ein T410s, Ubuntu 10.04 mit Kernel 2.6.38-12.

Auf Stufe 1 / 15% schwankt der Lüfter hörbar zwischen ~1927 und ~2060 rpm.
Die Temperatur liegt bei 38-40°C während die Schwellen bei 30, 55 und 60°C gesetzt sind (15, 45, hw-gestrt).
D.h. die Temperatur ist weit weg von den Schwellen. Hysterese steht auf 2 K (Standard-Einstellung).
Mit Thinkfan lief der Lüfter recht konstant mit ca. 1950 Umdrehungen auf Stufe 1.

Nachdem ich mich nochmal durch diesen Thread gelesen habe, konnte ich noch folgendes feststellen:

Wenn ich
Code:
echo level 1 | sudo tee /proc/acpi/ibm/fan
eingebe, dann schaltet der Lüfter auf Stufe 1 runter...aber gleich wieder auf automatik noch bevor er Stufe 1 erreicht hat.
Ist das normal so? (tpfanco war ausgeschaltet)

Und nach der Installation von tpfanco scheint auch Thinkfan seine Probleme zu haben.
Im Manuellbetrieb (sudo thinkfan -n) kann sich Thinkfan nicht mehr zwischen Stufe 0 und 1 entscheiden.
Bei jeder Ausgabe bekomme ich Stufe 0 und x (je nachdem welche Stufe nach Stufe 0 eingestellt ist) gleichzeitig angezeigt.
Tpfanco hatte ich vorher natürlich ausgeschaltet.
Vor der tpfanco-Installation lief das noch "normal".

Ich weiß aber nicht obs an tpfanco liegt oder ob ich mir was zerschossen habe.
Thinkfan wollte z.B. beim Start nicht immer wie ich wollte.
Es startete nicht immer automatisch (bei reboots nie) und ich musste es immer manuell starten. Aber dann lief es wie es sollte und, wie bereits erwähnt, mit konstanten Lüfterdrehzahlen.
Gestern habe ich dann versucht Thinkfan via "Startprogramme" zu starten, was überhaupt nicht funktionierte und ich, zu allem Überfluss, nichtmal mehr den Hintergrundprozess starten konnte.
Es lief dann nurnoch via
Code:
sudo thinkfan -n
Dort lief es aber normal.

Ich habe es dann, aufgrund der Probleme die ich damit hatte, deinstalliert (mit "sudo apt-get purge").
Danach habe ich tpfanco, wie im Wiki beschrieben, installiert. (hätte ich nach der Deinstallation von Thinkfan erstmal einen Neustart machen sollen?)
Nachdem ich das Pulsieren des Lüfters bemerkt habe, habe ich Thinkfan nochmal installiert um zu beobachten ob es dort noch funktioniert.
Dort konnte ich dann das oben beschriebene Problem beobachten.

Ich hoffe der Text ist nicht allzu durcheinander, ich hab ihn während des Probierens geschrieben und musste immermal was ergänzen ;)
Falls doch gebt bitte bescheid, dann versuch ich ihn neu zu schreiben.

Gruß
 
Zuletzt bearbeitet:
Was man tun muß, damit thinkfan automatisch startet steht übrigens in Thinkfan. Benutzer-Autostart ist eine schlechte Idee, weil thinkfan mit Root-Rechten laufen muß.

Deine sonderbaren Symptome kommen mit hoher Wahrscheinlichkeit daher, daß doch noch ein Programm im Hintergrund lief. Besser deinstallieren.
 
So hatte ich Thinkfan anfangs auch eingestellt.
Nur da es eben nicht immer funktionierte habe ich angefangen zu basteln.
Das es im Benutzer-Autostart nicht funktioniert, hab ich mir fast gedacht aber ich wollte es zumin. mal versucht haben ;)

Was den zweiten Punkt angeht: ich werd mal tpfanco und thinkfan komplett runterwerfen. Dann werd ich nochmal Thinkfan installieren und schauen ob es wieder läuft.
Zum Zeitpunkt des tpfanco-Tests war Thinkfan deinstalliert.

*edit*
Beides deinstalliert.
Nach einem Neustart tpfanco wieder installiert -> Lüfter pulsiert immernoch.
tpfanco deinstalliert und Thinkfan installiert -> sudo thinkfan -n funktioniert wieder problemlos, Lüfterumdrehung stabil (+-20 rpm).

Ich würde tpfanco bevorzugen, da es beim Start sauber geladen wird und ich Thinkfan immer manuell starten muss (geht wieder - nach Neuinstallation).
Aber mit dem pulsierenden Lüfter geht das leider nicht, das stört mich doch zu sehr.
Liegt das evtl. am Modell? Da ich z.B. beim T410s auch nur eine Temperatur auslesen kann.
Wobei es mich trotzdem wundert, da ja beide Programme eigentlich das Gleiche machen, oder?
 
Zuletzt bearbeitet:
Liegt das evtl. am Modell? Da ich z.B. beim T410s auch nur eine Temperatur auslesen kann.
Wobei es mich trotzdem wundert, da ja beide Programme eigentlich das Gleiche machen, oder?

Das wundert mich nicht weniger, zudem das Problem wirklich nur die T410s zu betreffen scheint. Auf meinem Z61m könnte ich es trotz aller Versuche bis jetzt nicht nachvollziehen.

Könnte vielleicht jemand folgendes testen:
Code:
sudo nano /usr/share/pyshared/tpfand/control.py
und dort
Code:
poll_time = 4000
durch
Code:
poll_time = 2000
ersetzen. Danach das übliche
Code:
sudo /etc/init.d/tpfand restart
sonst fällt mir leider aktuell nichts ein.
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben