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
 
Edit: erledigt!

mit

$(PYVER) in der Makefile ging alles =]
 
Zuletzt bearbeitet:
Edit: erledigt!

mit

$(PYVER) in der Makefile ging alles =]

:thumbsup:
Übrigens, wo gibts denn python-dmidecode (wird von tpfand benötigt) für Mageia? Auf Anhieb konnte ich kein passendes Mageia-Paket finden, oder gehen Fedora rpms auch?
 
:thumbsup:
Übrigens, wo gibts denn python-dmidecode (wird von tpfand benötigt) für Mageia? Auf Anhieb konnte ich kein passendes Mageia-Paket finden, oder gehen Fedora rpms auch?

also ich gestehe, dass eine Fedora RPM von tpfand läuft =)

ohne dieses dmidecode!

die steuerung ist dennoch voll funktionsfähig, vllt in einem anderen Paket enthalten?
 
also ich gestehe, dass eine Fedora RPM von tpfand läuft =)

ohne dieses dmidecode!
Das hättest du aber früher sagen können :pinch:
Das Fedora-Paket enthält ja noch die uralte Version von 2009. Dort gabs tatsächlich die
Festlegung auf Python 2.5 und noch einige unangenehme Sachen.

Wenn die Version tpfand-0.94-3.1.x86_64.rpm meinst, dann muss bei dir ja auch hal vorhanden
sein.

Warum man dmidecode braucht? Irgendwie muss ja tpfand
das ThinkPad-Modell bestimmen und wenn man es sauber machen will, ist
das ganze nicht ganz trivial. Früher hat man das über hal gemacht, aber weil
hal schon seit 2010 aus den meisten Distris rausgfeflogen ist und überhaupt nicht
mehr entwickelt wird, musste man eine Alternative finden -> dmidecode
Dass es hierzu eine schöne Python-Bibliothek gibt, macht die Sache nur noch angenehmer.

Leider fehlt das entsprechende Paket in aktuellen Mageia Repositories, da müsste man, wie
von maledora4 vorgeschlagen einen Bugreport schreiben.
 
ich habe dieses dmidecode nicht und es zeigt dennoch 1702ay2 an als Modell!
 
ich habe dieses dmidecode nicht und es zeigt dennoch 1702ay2 an als Modell!
Weil Mageia 1 noch hal mitbringt. Das ändert aber nichts an der Tatsache, dass hal seit langem als deprecated gilt.
Deine 2009 tpfand Version funktioniert noch mit hal, neuere tpfanco Versionen brauchen hingegen zwingend python-dmidecode.
 
Oha, ich war schon länger nicht mehr hier. Das liest sich ja super:

Myon schrieb:
Eine kleine Statusmeldung zu tpfanco:

Aktuell bin ich primär mit tpfand beschäftigt. Auch tpfan-admin muss umgebaut werden, das aber erst, nachdem tpfand zufriedenstellend läuft.

Dabei geht es mir pimär um folgende Features:

  • Unterstützung von Thinkpads ohne "/proc/acpi/ibm/thermal" (T520, W520, X220 usw.)
  • Die Möglichkeit, weitere Sensoren (lm-sensors) zu beobachten
  • Die Möglichkeit, minimale Dauer eines Intervals, so wie bereits oben beschrieben, zu definieren
  • Speichern und Laden von benutzerdefinierten Profilen über die GUI

Myon schrieb:
Es geht voran!

Die ersten drei Punkte sind bereits implementiert, auch der Debug-Modus wurde erheblich erweitert. Es bleibt aber noch viel zu tun:

  • asymmetrische D-Bus-Kommunikation zwischen tpfand und tpfan-admin
  • Policy-Kit für alle Aktionen, die Root-Rechte erfordern
  • Aufräumen beim tpfan-admin (GtkBuilder statt Glade, tpfan-admin als normales Fenster)
  • Speichern und Laden von benutzerdefinierten Profilen über die GUI
  • Eingabe von benutzerdefinierten lm-sensors über die GUI

Myon, hast du das eingecheckt oder sonst irgendwie verfügbar gemacht? Die letzten Commits bei code.google.com sind schon etwas älter und ich sehe keinen Hinweis, wo man sich den derzeitigen Stand sonst herunterladen könnte. Es wäre ja vielleicht auch während der Entwicklungsphase nicht uninteressant, den ein oder anderen zu haben, der sich den aktuellen Stand installiert und ausprobiert. Ich z.B. bin T520-Besitzer und würde das bestimmt tun.
 
Nö, ist noch nicht eingecheckt, weil tpfan-admin aktuell nicht in der Lage ist, mit dem modifizierten tpfand zu kommunizieren. Am tpfan-admin
müssen aber sowieso noch umfangreiche Veränderungen vorgenommen werden, wozu mir gerade leider die Zeit fehlt.

Deshalb kann ich aktuell nur "It's done, when it's done" sagen
 
Ich brauche mal wieder Hilfe:

Tpfand: 0.95.2

System: Sabayon9, Mate UI

Python: 2.7.2

Error:
Traceback (most recent call last):
File "/usr/sbin/tpfand", line 22, in <module>
import tpfand.control
ImportError: No module named tpfand.control

Muss wieder an Python liegen.

Hab einfach ganz dirty alles aus der .deb entpackt und entsprechend eingefügt.

kann mir jetzt jemand sagen, wie ich diesen error wegbekomme, tpfan-admin ist zweitrangig.

;)

ich danke im vorraus!
 
kann mir jetzt jemand sagen, wie ich diesen error wegbekomme, tpfan-admin ist zweitrangig.
Die Trunk-Version von tpfand trägt "/usr/share/pyshared" automatisch in PATH ein. Daher sollte das reichen:
Code:
svn checkout [url]http://tpfanco.googlecode.com/svn/trunk/[/url] tpfanco-read-only
cd tpfanco-read-only/tpfand
sudo make install
/etc/init.d/tpfand restart

tpdand wird aber trotzdem nicht funktionieren, weil es für Sabayon kein python-dmidecode Packet gibt
Code:
 * Restarting ThinkPad fan control daemon tpfand                                                                                                              Traceback (most recent call last):
  File "/usr/sbin/tpfand", line 26, in <module>
    import tpfand.control
  File "/usr/share/pyshared/tpfand/control.py", line 30, in <module>
    from tpfand import build, settings
  File "/usr/share/pyshared/tpfand/settings.py", line 30, in <module>
    import dmidecode
ImportError: No module named dmidecode
 
Very easy! Gentoo/Sabayon mit kernel 3.4.0 - Lüftersteuerung



1.)https://launchpad.net/ubuntu/+archive/primary/+files/python-dmidecode_3.10.11.orig.tar.gz entpacken, make install
2.) svn checkout http://tpfanco.googlecode.com/svn/trunk/ tpfanco-read-only
3.) make install
4.) neustart
5.) tpfand

UND GUT!
Tpfan-admin

1.) svn checkout http://tpfanco.googlecode.com/svn/trunk/ tpfan-admin-read-only
2.) Makefile an das hier ändern: (Zeile 1,2 unter install:all
install -d ${DESTDIR}/usr/lib/python2.7/site-packages/tpfanadmin
install -m 644 src/tpfanadmin/* ${DESTDIR}/usr/lib/python2.7/site-packages/tpfanadmin
3.) make install
4.) rsvg-python oÄ installieren!
5.) tpfan-admin starten

UND GUT!
Profile fehlen noch!
 
Zuletzt bearbeitet:

Leider nicht, dmidecode!=python-dmidecode
Grund: dmidecode ist eine allgemeine Bibliothek zum Auslesen von BIOS-Informationen. python-dmidecode ist ein Python Modul, das Python-Anwendungen den Zugriff auf dmidecode ermöglicht.

Man könnte natürlich versuchen, das Ding (python-dmidecode) aus dem Source per Hand zu bauen, z.B. so
Code:
wget http://ftp.de.debian.org/debian/pool/main/p/python-dmidecode/python-dmidecode_3.10.13.orig.tar.gz
tar -zxvf python-dmidecode_3.10.13.orig.tar.gz
cd python-dmidecode-3.10.13/
sudo make install
Aber da ich null Erfahrung mit Gentoo/Sabayon habe, kann ich dir da leider nichts garantieren. Sollte es doch klappen, brauchts du natürlich auch dmidecode. Das sollte aber in Sabayon-Repositories sein.
 
Leider nicht, dmidecode!=python-dmidecode
Grund: dmidecode ist eine allgemeine Bibliothek zum Auslesen von BIOS-Informationen. python-dmidecode ist ein Python Modul, das Python-Anwendungen den Zugriff auf dmidecode ermöglicht.

Man könnte natürlich versuchen, das Ding (python-dmidecode) aus dem Source per Hand zu bauen, z.B. so
Code:
wget http://ftp.de.debian.org/debian/pool/main/p/python-dmidecode/python-dmidecode_3.10.13.orig.tar.gz
tar -zxvf python-dmidecode_3.10.13.orig.tar.gz
cd python-dmidecode-3.10.13/
sudo make install
Aber da ich null Erfahrung mit Gentoo/Sabayon habe, kann ich dir da leider nichts garantieren. Sollte es doch klappen, brauchts du natürlich auch dmidecode. Das sollte aber in Sabayon-Repositories sein.

hat geklappt siehe über dir!
 
Hallo alle,

ich habe jetzt für Archlinux Pakete für tpfanco und python2-dmidecode gebaut: https://aur.archlinux.org/packages.php?ID=63481
Hoffe, es hilft jemandem.

Ein Profil für ein LENOVO ThinkPad T400 (647411G) (laut tpfan-admin) hat nicht zufällig eine/r, oder?

Grüße,
Andreas

PS. Das sind natürlich keine Pakete im strengen Sinn, sondern Arch-eigene Bauanleitungen, mit denen das Programm dann automatisch ausgecheckt und zum Arch-Paket gebaut wird.
 
Zuletzt bearbeitet:
So, jetzt arbeitet es mit dem Coretemp Treiber und dem einen hwmon sensor

So wie es ist ist dieser Codeblock nur für CPUs ab Sandy Bridge geeignet. Aber eben die der T/W*20 Generation.

def get_temperatures(self):
"""returns list of current sensor readings, +/-128 or 0 means sensor is disconnected"""
try:
tempfile = open(IBM_thermal, 'r')
elements = tempfile.readline().split()
tempfile.close()
tempfile = open("/sys/devices/platform/coretemp.0/temp1_input", 'r')
elements.extend(tempfile.readline().split())
tempfile.close()
elements = map(int,elements)
newelements = [x/1000 for x in elements]
newelements.append(-128)
newelements.append(-128)
newelements.append(-128)
newelements.append(-128)
newelements.append(-128)
newelements.append(-128)
return newelements
except IOError, e:

Das ganze ist in der Datei control.py

Natürlich muss das IBM_thermal am Anfang der Datei auch auf /sys/devices/virtual/hwmon/hwmon0/temp1_input angepasst werden.
 
Zuletzt bearbeitet:
Die Package Temp ist aber meistens höher als die Coretemp :/ Heißt also, dass ich das auch aus meiner .conkyrc werfen kann?
 
Nur Du selbst kannst wissen ob Du deiner CPU auf die Kerne schauen willst oder nicht.
 
Habe nun auf jeden fall den von mir geposteten Codeblock angepasst. Überlege, ob ich das als .deb bereitstelle. Myon meinte jedoch, dass er bereits für lm-sensors integriert hat. Dürfte also überflüssig sein.
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben