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
 
Da ist mir noch eine andere Idee gekommen: Auf der Wiki-Seite http://www.gambitchess.org/mediawiki/index.php/ThinkPad_Fan_Control schreibt der Autor, dass man sich bei ihm melden möge, wenn man die Wartung übernehmen möchte, dann kriegt man Zugriff auf die Wiki-Seite und die Launchpad-Gruppe (https://launchpad.net/~tp-fan). Ich hab mal geschaut und in der Launchpad-Gruppe gibt es tatsächlich zwei Mitglieder abseits des eigentlichen Autors (von denen aber nichts an Wartung gekommen zu sein scheint :)). Warum lässt du dich nicht als Gruppenmitglied eintragen und trägst alle Patches und Pakete direkt bei Launchpad ein?
 
@Photon

Das hat sich halt so ergeben ;) Ursprünglich ging ich davon aus, das der Quellcode weitestgehend fehlerfrei ist (bis auf die hal-Geschichte), sodass ich mich letztendlich nur um valide deb-Packete kümmern müsste, d.h. ich wollte gar nichts forken oder patchen, sonder nur maintainen. Erst später hat sich herausgestellt, dass es doch mehr Probleme gibt, als gedacht, insbesondere bei den neuesten Modellen. Auch meine Python-Kenntnisse lassen leider zu wünschen übrig, da ich sonst nur C/C++ benutze.

Außerdem kenne ich mich ehrlich gesagt mit Launchpad und Bazaar überhaupt nicht aus und müsste mich erstmal einarbeiten. Dafür fehlt wiederum die Zeit, weil ich eigentlich mitten in meiner Masterarbeit stecke und normalerweise erst gegen 20 Uhr abends nach Hause komme :facepalm:

@Shad

Bei der Debug-Ausgabe würde mich primär interessieren, ob das Pulsieren des Lüfters, irgendwie mit der Ausgabe korreliert, insbesondere ob der Lüfter immer nach "Polling the sensors" aber vor "Setting fan level to X" aufdreht, oder danach.

Was ich noch im Verdacht habe ist "interval cooling mode"
https://answers.launchpad.net/tp-fan/+faq/506
Das ist ein spezieller tp-fan Betriebsmodus, bei dem der Lüfter immer periodisch eingeschaltet wird, z.B. Lüfterstufe 2 für 8 Sekunden an, danach 3 Sekunden Pause und dann wieder für 8 Sekunden an usw. Eingeschaltet wird das ganze, indem man "interval" anstatt "xx%" verwendet. Ich sehe ehrlich gesagt nicht so viel Sinn dahinter und vermute zudem, dass dieser Modus irgendwie fehlerhaft implementiert ist. Zumindest auf meinem Z61m funktionierte das Ganze nicht korrekt. Daher habe ich eigentlich vor, den "interval cooling mode" komplett zu entfernen, da mir das Debuggen irgendwie zu lästig ist. Es sei denn jemand kann mir erklären, wozu "interval cooling mode" gut sein soll ;)

Übrigens, gibt es mittlerweile ein Profil für T410s
https://code.google.com/p/tpfanco/downloads/list - > tpfand-profiles_20120105_all.deb
Interessanterweise hat der Einsender nichts von pulsierenden Geräuschen geschrieben :confused:
 
Also zwischen der Ausgabe von "Polling the sensors" und "Setting fan level to x" liegt praktisch keine Zeit. Das erscheint immer zusammen. Deswegen kann ich leider nicht sagen ob der Lüfter dazwischen aufdreht oder nicht.
Ansonsten konnte ich zumindest keinen Zusammenhang mit dem Aufdrehen des Lüfters und der Debug-Ausgabe feststellen. Das werde ich aber nochmal genauer überprüfen.


Ich muss mich korrigieren:
es ist tatsächlich so das bei der Ausgabe von "Polling the sensors" und "Setting fan level to x" der Lüfter am hochdrehen ist. Um genau zu sein dreht er jeweils bei beiden Ausgaben auf. Beim genauen hinhören merkt man richtig, wie der Lüfter jedes Mal neuen "Schub" bekommt (tak-tak). Hört sich jedenfalls nicht gesund an ;)

Zum Profil: werd ich testen, danke.

*Edit
Kann ich das Profil irgendwie festlegen?
Es ist immernoch "generic" eingetragen, mit dem Hinweis das für mein Modell kein Profil vorhanden ist. (habe alles neu installiert da ich gestern ohnehin alles deinstalliert hatte)
 
Zuletzt bearbeitet:
Danke fürs Testen. Ich hab mal den "interval mode" provisorisch entfernt und die Debug-Ausgabe etwas erweitert.
Jedes mal, wenn die Methode zur Änderung der Lüfterstufe im Code aufgerufen wird, kommt eine "Fan level will be set to X"-Meldung. So sollte man feststellen können, ob der Lüfter von sich aus hochdreht, oder von tpfand dazu "gezwungen" wird.

Außerdem soll tpfan-admin nun nur noch existierende Sensoren anzeigen, also genau einen Sensor beim T410s. Falls jemand die Beta testen möchte, bitte sowohl tpfand als auch tpfan-admin aus dem Anhang installieren (beide stammen aus dem r50 svn Snapshot).

Das Profil fürs T410s heißt lenovo_2924v4m. Leider verlangt tpfand aktuell, dass die Typnummer (wird in der Zeile Notebookmodell in runden Klammern angezeigt) exakt übereinstimmen müssen, damit ein Profil automatisch geladen wird. Du könntest aber das vorhandene Profil händisch umbenennen, damit tpfand diesen trotzdem lädt. Bei mir lautet die Typnummer z.B. 9450H9G, das entsprechende Profil findet sich unter
/usr/share/tpfand/models/by-id/lenovo_9450h9g.
Wenn deine Typnummer z.B. 2924XY3Z wäre, müsstest so etwas ausführen
Code:
sudo cp /usr/share/tpfand/models/by-id/lenovo_2924v4m /usr/share/tpfand/models/by-id/2924xy3z
sudo /etc/init.d/tpfand restart
 
Hallo,
bekomme ich das auch vernünftig unter Fedora 16 zum laufen? Falls ja, wie? Falls nicht, was kann ich da alternativ nehmen?

Danke sehr!
 
Na ja, das habe ich schon probiert, aber leider ohne erfolg. wenn ich folgendes eingebe :
Code:
 ./thinkfan -n -c /etc/thinkfan.conf

bekomme ich :
Code:
WARNING: Using default fan control in /proc/acpi/ibm/fan.WARNING: Using default temperature inputs in /proc/acpi/ibm/thermal.
WARNING: You're using simple temperature limits without correction values, and your fan will only start at 65 °C. This can be dangerous for your hard drive.
Module thinkpad_acpi doesn't seem to support fan_control

:cursing:

Unter Kubuntu läuft diese thinkfan.conf bestens!!!
 
Das mit dem Profil kopieren hat funktioniert (da fehlt aber noch ein "lenovo_" beim letzten Produktcode in deiner Zeile ;)).
Das habe ich auch getestet bevor ich die neue Beta installiert habe.
Das Lüfter pulsierte zwar immernoch aber nicht mehr so schubartig sondern eher...naja "sanft". Aber immernoch hörbar.
Evtl. merkt der Profilersteller das nicht, da seine Schwelle recht hoch liegt (Lüfter läuft erst ab 55°C) und sein Lüfter vermutlich selten(er) läuft.

Danach habe die neue Betaversion installiert (admin und tpfand).
Ergebnis: auch mit manueller Steuerung (also ohne Profil) bekommt der Lüfter nicht mehr diese beschriebenen Schübe (das tak-tak verschwindet damit).
Das Pulsieren ist schwächer geworden (aktuell um +-100 rpm anstatt +-200 rpm wie es vorher war) und ebenfalls eher sanft.
Insgesamt weniger störend. Ich muss mir das jetzt mal den Abend anhören aber aktuell würde ich fast sagen dass ich damit leben könnte (Eindrücke anderer Nutzer die das Problem haben wären auch interessant).

Dank der RPM-Integration im Debug-Modus werden die Schwankungen nun gut dargestellt.
Ich füge absichtlich eine längere Debug-Ausgabe ein, da man gut erkennen kann das die Umdrehungszahl recht unterschiedlich schwankt (von +-10 bis +-140 ca.).
Code:
18:29:07: Polling the sensors
Current fan level: 2 (1861 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:29:10: Polling the sensors
Current fan level: 2 (2005 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:29:14: Polling the sensors
Current fan level: 2 (1882 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:29:17: Polling the sensors
Current fan level: 2 (2005 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:29:21: Polling the sensors
Current fan level: 2 (1897 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:29:24: Polling the sensors
Current fan level: 2 (2005 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:29:28: Polling the sensors
Current fan level: 2 (1912 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:29:31: Polling the sensors
Current fan level: 2 (2012 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:29:35: Polling the sensors
Current fan level: 2 (1897 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:29:38: Polling the sensors
Current fan level: 2 (2002 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:29:42: Polling the sensors
Current fan level: 2 (1909 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:29:45: Polling the sensors
Current fan level: 2 (2012 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:29:49: Polling the sensors
Current fan level: 2 (1894 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:29:52: Polling the sensors
Current fan level: 2 (2012 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:29:56: Polling the sensors
Current fan level: 2 (1894 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:29:59: Polling the sensors
Current fan level: 2 (2012 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:30:03: Polling the sensors
Current fan level: 2 (2029 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:30:06: Polling the sensors
Current fan level: 2 (1965 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:30:10: Polling the sensors
Current fan level: 2 (2012 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:30:13: Polling the sensors
Current fan level: 2 (1943 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:30:17: Polling the sensors
Current fan level: 2 (2025 RPM)
Current sensor values:
    Sensor 0: 39
Setting fan level to 2
Fan level will be set  to 2

18:30:20: Polling the sensors
Current fan level: 2 (1969 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:30:24: Polling the sensors
Current fan level: 2 (2025 RPM)
Current sensor values:
    Sensor 0: 39
Setting fan level to 2
Fan level will be set  to 2

18:30:27: Polling the sensors
Current fan level: 2 (1949 RPM)
Current sensor values:
    Sensor 0: 39
Setting fan level to 2
Fan level will be set  to 2

18:30:31: Polling the sensors
Current fan level: 2 (2022 RPM)
Current sensor values:
    Sensor 0: 39
Setting fan level to 2
Fan level will be set  to 2

18:30:34: Polling the sensors
Current fan level: 2 (1962 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:30:38: Polling the sensors
Current fan level: 2 (2008 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:30:41: Polling the sensors
Current fan level: 2 (1943 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:30:45: Polling the sensors
Current fan level: 2 (2022 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:30:48: Polling the sensors
Current fan level: 2 (1962 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:30:52: Polling the sensors
Current fan level: 2 (1956 RPM)
Current sensor values:
    Sensor 0: 40
Setting fan level to 2
Fan level will be set  to 2

18:30:55: Polling the sensors
Current fan level: 2 (2018 RPM)
Current sensor values:
    Sensor 0: 39
Setting fan level to 2
Fan level will be set  to 2
 
Zuletzt bearbeitet:
Nice! Ich hab mal im Quellcode von thinkfan gewühlt und dabei was interessantes aufgestöbert: thinkfan versucht offenbar die Lüfterstufe so selten wie möglich zu ändern, auch wenn es sich um dieselbe Lüfterstufe handelt. Bei tpfand wird die Lüfterstufe stattdessen alle 3-4 Sekunden eingestellt.

Angenommen, die Temperaturen bleiben einigermaßen konstant und die aktuelle Lüfterstufe ist 2. Dann handelt thinkfan in etwa so:
Code:
t = 0s: Lüfterstufe 2 wählen, fan_watchdog auf 30 Sekunden einstellen
t = 5s: Solange t<30s nichts machen
t = 10s: Solange t<30s nichts machen
t = 15s: Solange t<30s nichts machen
....
t = 30s: t<30s ist falsch, also wieder Lüfterstufe 2 wählen, fan_watchdog auf 30 Sekunden einstellen
...

tpfand geht hingegen folgendermaßen vor:
Code:
t= 0s: Lüfterstufe 2 wählen, fan_watchdog auf 5 S
t= 4s: Lüfterstufe 2 wählen, fan_watchdog auf 5 S
t= 8s: Lüfterstufe 2 wählen, fan_watchdog auf 5 S
...

Bei meinem Z61m verursacht dieses Verhalten kein Pulsieren des Lüfters, da stets dieselbe Lüfterstufe eingestellt wird. Nun ist es scheinbar so, dass sich der Lüfter von T410s anders verhält. Jeder Zugriff auf die Lüftersteuerung, führt zu einer kleinen Änderung der Drehzahl, auch wenn man stets dieselbe Stufe wählt.

Ehrlich gesagt, finde ich es nicht so toll, fan_watchdog auf 30 Sekunden zu stellen, denn wenn thinkfan, aus welchem Grund auch immer, abschmiert, dauert es bis zu 30 Sekunden bis die Lüftersteuerung an das BIOS zurückgegeben wird. Bei tpfand dauert "nur" es bis zu 5 Sekunden. Andererseits ist das Pulsieren des Lüfters so auch nicht hinnehmbar. Wahrscheinlich werde ich versuchen, fan_watchdog als Profilparameter zu definieren, damit jeder das Optimale für sein Modell wählen kann. Eine weitere Beta wird es natürlich auch noch geben :) Nochmal vielen Dank an Shad fürs Testen :thumbup:
 
Kann man den Watchdog nur durch Schreiben der Lüfterstufe zurücksetzen?
 
Nichts zu danken Myon, im Gegenteil.
Ich bin derjenige der sich bedankt, dafür, dass du dich so reinhängst obwohl außer mir scheinbar keiner bzw. kaum welche das Problem hat/haben (und es im Allgemeinen auch nur eine Handvoll betreffen wird).

Und für zukünftige Beta's steh ich natürlich wieder als Tester zur Verfügung.
 
Wie linrunner schon richtig vermutete, kann man den Watchdog auch ohne Änderung der aktuellen Lüfterstufe zurücksetzen. So wird das jetzt auch bei tpfand gemacht. Damit dürfte das Pulsieren (hoffentlich) der Vergangenheit angehören.

Interessanterweise ist es so, dass selbst wenn man die Lüfterstufe konstanthält, kommt es ca. alle 30 Sekunden zu kleineren Änderungen der Drehzahl. Dies ist wohl auf den Embedded Controller zurückzuführen und lasst sich deshalb auch nicht abstellen. Auch dürfte dieser Umstand erklären, warum thinkfan standardmäßig den Watchdog auf 30 Sekunden stellt. Ich gehe mal davon aus, dass dieses Verhalten auch bei thinkfan auftritt, da eben hardwarebedingt. Andererseits merkt man so etwas normalerweise nicht, es sei denn man überwacht andauern die Drehzahl ;)

Anbei ist jedenfalls die 3. Beta (r51 im SVN) von tpfand mit dem Watchdog-Fix.
 
Damit dürfte das Pulsieren (hoffentlich) der Vergangenheit angehören.

So ist es!
Der Lüfter läuft jetzt mit stabilen 1975 RPM (+-5).
Nochmal danke für die Arbeit, ich bin grad richtig begeistert (gibts hier nen "thumbs up" smiley? ;) ).
 
Hääää????

Ich kann tpfand nicht starten weil das thinkpad_acpi mit fan_control=1 geladen ist und thinkpad fan control sagt ich soll genau das sicherstellen. Irgendwie verstehe ich diese ganze tpfnd software nicht. :facepalm::confused: sorry. bekomme das aber nicht z um laufen. was mache ich bloß falsch?

system ist hier linux mint 11

EDIT: Ok also tpfand kann ich nun starten, aber da geht der lüfter kontinuierlich an und wieder aus, ununterbrochen. soweit aber erstaml "ok" ich würde das ja gern einstellen, aber die Thinkpad Fan Control Gui will nicht starten. Grrrr. was ist nu?

EDIT2: Ok nach installation des thinkfan-admin 0.96 beta 2 all statt der tpfan-admin_0.96-ubuntu2_all geht es nun. ist es richtig dass das pulsieren mit der beta 3 version weg ist? ich schau mal wie es läuft das ganze.
 

Anhänge

  • Screenshot.png
    Screenshot.png
    86,5 KB · Aufrufe: 14
Zuletzt bearbeitet:
So, die neuen Versionen von allen drei Packeten soeben hochgeladen. Mein besonderer Dank gebührt Shad, der sich freiwillig als Tester angeboten hat, und so letztendlich zu der Lösung des Problems mit dem pulsierenden Lüfter entescheidend beigetragen hat. Bei solchen Benutzern macht Open Source Entwicklung richtig Spaß:thumbup:

Leider muss ich die Besitzer von neuen Modellen ohne "/proc/acpi/ibm/thermal" noch vertrösten, da ich für einen Fix wesentliche Teile des Codes umkrempeln muss. Das Problem dürfte aber spätestens in April dieses Jahres gelöst sein, denn dann wollte ich mir ein W520 oder ein T520 holen :cool:
 
Hallo zusammen,

ich habe ein L420 mit Pentium B950 Prozessor, wie sollte ich die Lüftersteuerung einstellen das es möglichst leise ist aber auch nicht zu warm wird?

Grüße
 
Wollte mich nur kurz mal bedanken- sehr hilfreiche Software und funktioniert auf meinem X61 prima. :thumbsup:
 
Hmm ich komm leider mit tpfanco auf meinem x61 nicht so gut zurecht. Es läuft irgendwie nicht rund. Irgendwie läuft der Lüfter wenn er aus ist immer wieder an und dann wieder aus, also er dreht auf und dann runter, nicht bis volle RPM aber schon hörbar.
Thinkfan macht seine Arbeit dagegen absolut wie es soll an meinem x61. Einmal kurz eingestellt und der Rechner ist zu 70-80% passiv. Habe schon 2 mal versucht auf tpfanco umzusteigen, aber leider war das echt ein ganz schöner Akt. :confused:
Mache ich was grundlegend falsch? Ist tpfanco besser als thinkfan und wenn ja an welcher Stelle?? :confused:

Ich glaube ich fahre mit thinkfan deutlich besser.
 
Zuletzt bearbeitet:
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben