Linux auf Mobilen Geräten

Betreibt man Linux auf mobilen Geräten wie etwa LinuxHardware/NoteBooks, ergeben sich einige besondere Anforderungen, um z.B. möglichst lange Akkulaufzeiten zu erhalten.

Stromsparmöglichkeiten

Festplatte

Hardware

siehe hdparm, Power Mangement.

Software

Ein wichtiger Parameter beim Mounten von Dateisystemen, um (unnötige) Schreibzugriffe auf die Platte zu vermeiden, ist "noatime". Dieser schaltet das ändern der access-Timestamps ab, welche normalerweise bei jedem Lesezugriff auf eine Datei auf die aktuelle Uhrzeit gesetzt werden.

Der zweite Schritt ist die Identifikation aller Prozesse, die in kurzen abständen Zugriffe auf Dateien verursachen. Leider bietet der Kernel dafür keine große Unterstützung (naja, es gibt schon z.B. fam, welcher Prozesse benachrichtigt, wenn sich Dateien ändern - aber kennt dafür jemand ein Tool, welches dann mitprotokolliert, welcher Prozess auf welche Dateien zugreift?). Mit find -xdev -maxdepth 5 -mmin -2 kann man sich aber alle Dateien ausgeben lassen, welche in den letzten 2 Minuten modifiziert wurden und von diesen dann auf die Verursacher Rückschlüsse ziehen.

Hier eine Liste der üblichen Verdächtigen sowie was gegen die Zugriffe unternommen werden kann:

Mit dem noflushd kann man die Platte automatisch nach einiger Zeit herunterfahren lassen. Dies funktioniert leider nicht mehr bei den heute üblichen jurnaling filesystemen wie ext3 oder ReiserFS.

Zudem kann man einige Kernelparameter verändern um die Anzahl der Schreibzugriffe zu verringern, z.B. mit folgenden Eintrag in der /etc/sysctl.conf (Kernel 2.4.18):

(hier bin ich aber noch auf der Suche nach besseren Werten, wobei die obigen schonmal ganz gut sind; Erklärung dazu kommt auch noch irgendwann ;) -- MichaelReinsch 2002-07-01 02:05:54)

Entbehrliche Stromfresser-Devices

IRDA

Die meisten Notebooks haben ein IrDA-Device. Hat man den IrDA-Daemon laufen, werden ständig discovery-Nachrichten versendet um zu prüfen, ob ein anderes IrDA-Gerät in der Nähe liegt. Praktisch aber verbraucht halt auch Strom. Daher am besten abschalten, wenn es nicht benötigt wird.

Hintergrundbeleuchtung

OffeneFrage: weiß jemand, ob es einen allgemeinen Weg gibt, die Hintergrundbeleuchtung des Displays ebenfalls abzuschalten, wenn man das Display per apm abschaltet? Bei mir bleibt das immer an...

Akkus

Soll ein Akku lange halten, muss er entsprechend behandelt werden. Ein paar Hintergrundinformationen über Akkus waren z.B. im Artikel "Akku-Knigge für mobile Anwender" in c't 10/2002, Seite 208 (leider nicht online) zu finden.

Wesentlich ausführlichere Informationen zu diesem Thema findet man in dem Buch Batteries in a Portable World (englisch), welches man auch online lesen kann. Die Frequently Asked Questions about Rechargeable Batteries sind ein guter Einstiegspunkt. Besonders interessant ist wohl das Kapitel Getting the Most from your Batteries und davon die Seite How to Prolong Lithium-based Batteries.

Sicherungsmöglichkeiten

Portable Geräte sind meist auch einfacher zu klauen; sobald jemand physikalischen Zugriff auf einen Rechner hat, kommt er auch problemlos an die darauf gespeicherten Daten - wenn man nicht einige Vorsichtsmaßnahmen trifft. Dafür gibt es kryptographische Dateisysteme (CryptoLoopDevice, weitere Links?). Die meisten Notebooks haben eine Öffnung für ein sogenanntes Kensington-Schloss (siehe Kensington+lock+laptop). Dabei handelt es sich um ein Stahlseil mit einer Schlaufe am einen Ende. Damit lässt sich das Notebook blitzschnell festketten. Auf Messen, im Zug oder auch in einem offenen Büro lässt sich das Gerät damit gegen schnelle Zugriffe sichern. Das Schloss gibt es auch mit Bewegungsmelder-Alarm.

CPU Speed

wenn powernow_k7 geladen ist (z.B. K7 Kernel), gibt es unter /sys/devices/system/cpu/cpu0/cpufreq folgende Dateien:

affected_cpus

Nummer der CPUS

cpuinfo_cur_freq

aktuelle CPU Frequenz ?

cpuinfo_max_freq

maximale CPU Frequenz

cpuinfo_min_freq

minimale CPU Frequenz

scaling_available_frequencies

Liste der moeglichen CPU Frequenzen

scaling_available_governors

Liste der moeglichen Governors ?

scaling_cur_freq

aktuelle CPU Frequenz

scaling_driver

Treiber, der die CPU steuert

scaling_governor

aktueller Governor ?

scaling_max_freq

aktuell eingestellte max. Frequenz

scaling_min_freq

aktuell eingestellte min. Frequenz

scaling_setspeed

aktuell eingestellte Frequenz

Mit

cat cpuinfo_min_freq > scaling_max_freq

kann man die CPU-Frequenz auf die minimale festnageln.

Mit

cat cpuinfo_min_freq > scaling_setspeed

kann man die CPU-Frequenz auf das Minimum setzen.

Mit

echo 663000 > scaling_setspeed

kann man die CPU-Frequenz auf einen bestimmten Wert setzen, dabei muss der Wert einer der bei

cat scaling_available_frequencies

ausgegebenen sein.

OffeneFrage: Warum ist scaling_setspeed bei mir nicht vorhanden? -- ThomasHochstetter 2006-03-18 21:06:27

Du musst den scaling_governor auf 'userspace' setzen.

LinuxMobil (zuletzt geändert am 2007-12-23 22:47:26 durch localhost)