TLP Programmdokumentation: Unterschied zwischen den Versionen

Aus ThinkPad-Wiki
Zeile 170: Zeile 170:
Bei der Paketinstallation muß '''/etc/init.d/tlp''' mit der vorgesehenen Methode der Zieldistribution in die Runlevel eingehängt werden (bei Suse z.B. mit chkconfig). Unterstützt die Zieldistribution keine SysV-Skripte, ist ein eigenes Skript zu implementieren, das die relevanten Funktionen aus '''tlp.init''' übernimmt.
Bei der Paketinstallation muß '''/etc/init.d/tlp''' mit der vorgesehenen Methode der Zieldistribution in die Runlevel eingehängt werden (bei Suse z.B. mit chkconfig). Unterstützt die Zieldistribution keine SysV-Skripte, ist ein eigenes Skript zu implementieren, das die relevanten Funktionen aus '''tlp.init''' übernimmt.


== Test ==
== Installationsskripte ==

Version vom 20. April 2011, 20:03 Uhr

Qsicon inArbeit.png *** IN ARBEIT ***

Zielgruppe

Diese Anleitung wendet sich an Programmierer bzw. Paketierer, die TLP anpassen und für weitere Linux-Distributionen verfügbar machen wollen.

Wer TLP nur benutzen möchte, liest bitte hier weiter.

Einleitung

TLP besteht - abgesehen von Manpages und Dokumentation - ausschließlich aus POSIX-kompatiblen (d.h. ohne Bash-Erweiterungen) Shell-Skripten.

Programmbestandteile

Tabelle 1 listet die Inhalte des Source-Tarballs tlp_VERSION.orig.tar.gz auf:

Datei Installationsort Verwendung
49bay /usr/lib/pm-utils/sleep.d/ Skript zum Sichern und Wiederherstellen des Wechselschacht- bzw. Ultrabay-Schaltzustands. Wird von pm-utils vor einem Suspend bzw. Hibernate und nach dem darauffolgenden Resume aufgerufen.
49wwan /usr/lib/pm-utils/sleep.d/ Skript zum Sichern und Wiederherstellen des WWAN-Schaltzustands. Wird von pm-utils vor einem Suspend bzw. Hibernate und nach dem darauffolgenden Resume aufgerufen.
default /etc/default/ Zentrale Konfigurationsdatei.
tlp /usr/sbin/ TLP-Hauptprogramm.
tlp.desktop /etc/xdg/autostart/ Autostart nach der Benutzeranmeldung (derzeit ohne Funktion).
tlp-functions /usr/lib/tlp-pm/ Funktionsbibliothek allgemein.
tlp-ifup /etc/networking/if-up.d/ Skript zum Setzen des WLAN-Power-Save-Modus:
  • wird vom System stets nach dem Start eines IP-Interfaces aufgerufen
  • wir nur aktiv, wenn es sich um ein WLAN-Interface handelt

Installationsort und das Skript selbst müssen ggf. distributionsspezifisch angepaßt werden.

tlp.init /etc/init.d/tlp Systemstartskript (SysV) - schaltet Funkgeräte aus und setzt die Akkuladeschwellen.
tlp-nop /usr/lib/tlp-pm/ Dummyskript - liefert rc=0.
tlp-rf /usr/bin/bluetooth
wifi
wwan
Hauptprogramm zum Schalten der Funkgeräte (3 Hardlinks auf dasselbe Skript).
tlp-rf-func /usr/lib/tlp-pm/ Funktionsbibliothek zum Schalten der Funkgeräte.
tlp-run-on /usr/bin/run-on-bat
run-on-ac
Bedingtes Starten von Befehlen in Abhängigkeit von der aktiven Stromquelle (2 Hardlinks auf dasselbe Skript).
tlp-stat /usr/bin/ Statusbericht aller aktiven Einstellungen.
tlp.upstart n/a Systemstartskript für Upstart (derzeit nicht verwendet).
zztlp /usr/lib/pm-utils/power.d/ Skript zum Setzen aller Einstellungen in Abhängigkeit von der aktiven Stromquelle:
  • ruft tlp auf
  • wird von pm-utils bei jedem Wechsel der Stromquelle sowie beim Systemstart aufgerufen (via pm-powersave)
man/bluetooth.1
run-on-ac.1
run-on-bat.1
tlp.8
tlp-stat.8
wifi.1
wwan.1
n/a Manpages für die gleichnamigen Kommandos. Installation ist distributionsspezifisch und daher nicht im Makefile enthalten.
Makefile n/a Installation aller Skripte und der Konfigurationsdatei an die angegebenen Installationsorte.
README n/a README zu TLP. Installationsort ist distributionsspezifisch und daher nicht im Makefile enthalten.
COPYING n/a Angaben zum Copyright - Lizenzierung nach GPL v2. Installationsort ist distributionsspezifisch und daher nicht im Makefile enthalten. Die Installation dieser Datei auf dem Zielsystem (oder die Aufnahme in ein distributionsspezifisches Template) ist dient zur Einhaltung der Lizenz.
LICENSE n/a Angaben zum Programmautor.

Tabelle 1 - Quellcode

Die in Tabelle 2 aufgeführten Ubuntu- bzw. Debian-spezifischen Metadaten können als Vorlage für die Paketierung nützlich sein. Man erhält sie durch Patchen der ausgepackten Quellen per

zcat tlp_VERSION.diff.gz | patch -p1
Datei Verwendung
debian/control Enthält Kurzbeschreibungen von TLP.
debian/changelog Changelog von TLP.
debian/tlp.postinst Skript das nach der Installation des Pakets auszuführen ist - siehe Abschnitt Installationsskripte.
debian/tlp.postrm Skript das nach dem Entfernen des Pakets auszuführen ist - siehe Abschnitt Installationsskripte.

Tabelle 2 - Metadaten von Ubuntu/Debian

Abhängigkeiten

TLP baut auf den folgenden Tools auf, die vom erstellten Paket als Abhängigkeiten angezogen werden sollten:

pm-utils

(immer erforderlich)

Stellt das Framework bereit, um TLP beim jedem Wechsel der Stromquelle aufzurufen.

Hinweis: pm-utils mit den Skripten im Verzeichnis /usr/lib/pm-utils/power.d/ diverse Stromsparfunktionen an, die auch durch TLP bereitgestellt werden. Daher sollten bei der Installation von TLP die pm-utils-Skripte deaktiviert werden. Wie das geht beschreibt der Abschnitt Installationsskripte.

wireless-tools

(immer erforderlich)

Wird für die WLAN-Stromsparfunktionen und für das Schalten der Funkgeräte (rfkill) benötigt.

Hinweis: rfkill wird von manchen Distributionen als separates Paket abgebildet.

ethtool

(optional)

Wird für das Deaktivieren von Wake On LAN benötigt.

smartmontools

(optional)

Ermöglicht tlp-stat das Anzeigen von SMART-Werten zu den Festplatten.

tp-smapi

(optional bei ThinkPads)

Wird für das Einstellen von Akkuladenschwellen bei ThinkPads benötigt. Es handelt sich um Kernelmodule, deren Implementierung, wegen der Abhängigkeit zur Kernelversion, je nach Distribution sehr unterschiedlich sein kann. Es macht daher keinen Sinn eine direkte Abhängigkeit ins TLP-Paket zu schreiben.

Systemstart

Bei der Paketinstallation muß /etc/init.d/tlp mit der vorgesehenen Methode der Zieldistribution in die Runlevel eingehängt werden (bei Suse z.B. mit chkconfig). Unterstützt die Zieldistribution keine SysV-Skripte, ist ein eigenes Skript zu implementieren, das die relevanten Funktionen aus tlp.init übernimmt.

Installationsskripte