ice123, der Laptop Mode ist standardmässig deaktiviert, weil er nach wie vor auf einigen Laptops zu unvorhersehbaren System Freezes führen kann. Ich kann jetzt auch nur spekulieren, aber ich persönlich halte das Aktivieren des LM in diesem Fall - sofern es keine Probleme macht - für die komfortablere Lösung. https://wiki.ubuntu.com/PowerManagement 🇬🇧 erklärt das Vorgehen für 8.04 und 8.10.
Die Verwirrung durch den Ikhaya-Artikel ist wohl dadurch entstanden, dass der für 7.04 geschrieben wurde und die laptop-mode.conf in dieser Ubuntu-Version noch andere Werte für hdparm -B enthalten hat. Vermutlich wurde dort noch ein aggressives Powermanagment ausdrücklich unterstützt. Spätestens seit 8.04 wurden diese Werte aber angepasst und für den Netzbetrieb auf -B 254 gesetzt - sprich wenig energiesparend, was somit auch das ständige Parken des Lesekopfes verhindert. In 8.10 wurde dieser Wert auf -B 255 gesetzt, was jetzt das Powermanagment vollkommen deaktiviert. Beides hat allerdings - wie ice123 schon richtig festgestellt hat - einen Temperaturanstieg der Festplatte zur Folge. Ferner ist der Wert für den Batteriebetrieb immernoch auf -B 1, was maximale Energiesparfunktion bedeutet. Also ohne Netzbetrieb geht die Festplatte immer noch steil mit Parkpositionen. Beim Fix ohne LM wird nicht zwischen diesen beiden Betriebsmodi unterschieden, weswegen es in beiden Fällenm funktioniert. Wer also den LM benutz, müsste beide Werte entsprechend anpassen.
Weitere Probleme treten dadurch auf, dass die unterschiedlichen Festplatten scheinbar unterschiedlich auf die jeweiligen Werte reagieren. So scheint es bei einigen gar nicht möglich das Powermanagment völlig zu deaktivieren und bei anderen wiederum kommt man mit -B 254 kein Stück weiter. Einge erkennen auch Zwischenwerte wie -B 128 oder -B 192 nicht. Da es sich dabei um ein Hardware- bzw. Firmwareproblem handelt, ist es eigentlich auch kaum möglich einen allgemeingültigen Fix für das Problem anzubieten. Der Laptop Mode selber hat ausser der Inkompatibilität mit einigen Geräten noch das Problem, dass er nach Hibernate/Suspend nicht wieder angeschmissen wird. Dafür kursieren im Netz auch verschiedene Lösungsansätze.
Ich selber habe einen Inspiron 1525 mit einer 80GB Seagate ST980811AS Festplatte und (X)Ubuntu 8.04. Der Laptop Mode macht bei mir keine Probleme und Suspend/Hibernate benutze ich nicht. Allerdings musste ich mich auch erst einmal durch die laptop-mode.conf wühlen und einige Werte ändern, weil der LM einige überschreibt, die normalerweise anders besetzt sind. Inwieweit das sinnvoll ist, kann ich zur Zeit aber auch nicht sagen. Ich geh im Folgenden einfach mal näher darauf ein, was ich mir aus den zig Artikeln und Kommentaren zu diesem Thema rausgefischt und geändert habe... Vielleicht hilft das ja noch jemandem. Den Bugreport findet man übrigens auf https://bugs.launchpad.net/ubuntu/+source/acpi-support/+bug/59695.
1) Am wichtigsten war natürlich das andauernde Parken der Festplatte durch das aggressive Powermanagment zu verhindern, was auch im LM über hdparm -B geregelt wird.
Default sieht die laptop-mode.conf unter 8.04 in dem Abschnitt so aus:
#
# Power management for HD (hdparm -B values)
#
BATT_HD_POWERMGMT=1
LM_AC_HD_POWERMGMT=254
NOLM_AC_HD_POWERMGMT=254
Im Batteriebetrieb wird also maximales Powermanagment und im Netzbetrieb (egal ob mit oder ohne LM) niedrigstes Powermanagment verwendet. Um das Parken einzustellen habe ich mich an verschiedenen Werten versucht und dabei ein Auge auf die Festplattentemperatur im Idle behalten. Dabei bin ich zu folgendem Ergebnis gekommen:
-B 255 == ~43°C
-B 254 == ~42°C
-B 192 == ~37°C
-B 192 stellt dabei den niedrigsten Wert dar, der das andauernde Parken des Lesekopfes verhindert. Bei -B 191 ging das Elend moderater aber trotzdem wieder los.
Nächstes Problem war die Einstellung für den Batteriebetrieb. Zwar liesse sich dabei auch einfach der gleiche Wert benutzen, aber die Festplatte würde dadurch anfälliger gegen Erschütterungen. Im Bugreport (s.o.) wurde mehrfach vorgeschlagen den Wert -B 128 zu verwenden. Das führt zwar immernoch zu regelmässigem Parken, aber scheinbar weniger exzessiv. Es stellt sich in diesem Fall vor allem die Frage, wie und wie oft/lange der Laptop im Batteriebetrieb verwendet wird. In meinem Fall befindet sich der laufende Laptop selten im Batteriebetrieb und wenn dann eigentlich nur um von Tisch A zu Tisch B bewegt zu werden. Ich habe mich vorerst für -B 128 als Standard entschieden und im Falle des Falles lässt sich der Wert ja auch noch temporär im laufenden Betrieb ändern ($sudo hdparm -B [value]). Das muss wohl jeder für sich selbst entscheiden.
Meine laptop-mode.conf sieht in diesem Abschnitt als jetzt so aus:
#
# Power management for HD (hdparm -B values)
#
BATT_HD_POWERMGMT=128
LM_AC_HD_POWERMGMT=192
NOLM_AC_HD_POWERMGMT=192
2) Ein weiterer Wert, der offensichtlich ebenfalls Einfluss auf die Häufigkeit des Parkens nimmt, ist die Zeit bis die Festplatte bei Nichtaktivität des Lesekopf einparkt. Soweit ich das verstanden habe, hat dieser Wert ansich nichts mit dem Powermanagment zu tun und würde den Lesekopf auch nach dieser Zeit parken, wenn PM gar nicht aktiv ist.
Default sieht die laptop-mode.conf unter 8.04 in dem Abschnitt so aus:
#
# Idle timeout values. (hdparm -S)
# Default is 2 hours on AC (NOLM_HD_IDLE_TIMEOUT_SECONDS=7200) and 20 seconds
# for battery and for AC with laptop mode on.
#
LM_AC_HD_IDLE_TIMEOUT_SECONDS=20
LM_BATT_HD_IDLE_TIMEOUT_SECONDS=20
NOLM_HD_IDLE_TIMEOUT_SECONDS=7200
Wenn der LM aktiv ist, dann wird der Lesekopf also nach 20 Sekunden Nichtaktivität geparkt. Praktisch würde das bedeuten, dass der Lesekopf z.B. bei einem Youtube-Video von wenigen Minuten irgendwann parken würde, sofern nichts anderes auf die Festplatte zugreift. Das scheint wohl auch irgendwie Quatsch zu sein, gerade im Netzbetrieb. Zumindest ich für meinen Teil lege wenig Wert darauf im Netzbetrieb meinen Akku zu schonen - aus offensichtlichem Anlass... Im Batteriebetrieb sieht das etwas anders aus. Da greift halt wieder die Frage, warum und wieso und sowieso wird das Gerät im Batteriebetrieb benutzt und wie ist die Einstellung für das PM. Bei -B 128 übernimmt das PM eh die Intervalle für das einparken. Würde man aber -B 254 verwenden, dann wäre es vermutlich sinnvoll die Zeit bis zum Einparken bei Nichtaktivität im Batteriebetrieb möglichst niedrig zu halten. Vorschgläge im Netz variierten dabei von den 20 Sekunden Standard über 60 Sekunden bis hin zu mehreren Minuten. Wie gesagt, je nachdem wie PM eingestellt ist und wie wichtig einem Batterielaufzeiten sind. Auch dieser Wert kann im Falle des Falles im laufenden Betrieb temporär geändert werden ($sudo hdparm -S [value]).
Meine laptop-mode.confg sieht in diesem Abschnitt jetzt erstmal wie folgt aus:
#
# Idle timeout values. (hdparm -S)
# Default is 2 hours on AC (NOLM_HD_IDLE_TIMEOUT_SECONDS=7200) and 20 seconds
# for battery and for AC with laptop mode on.
#
LM_AC_HD_IDLE_TIMEOUT_SECONDS=3600
LM_BATT_HD_IDLE_TIMEOUT_SECONDS=360
NOLM_HD_IDLE_TIMEOUT_SECONDS=7200
3) Ein weiterer Wert, der ebenfalls eine Rolle bei diesem Problem spielt, ist READAHEAD. Also wie viele Daten die Festplatte sozusagen auf einmal einliest. Ist dieser Wert zu hoch, dann kann es einerseits zu Verzögerungen beim Laden kommen oder aber - was für unseren Fall interessanter ist - es kann zu Überschneidungen mit dem IDLE_TIMEOUT bzw. den Parkintervallen des PM kommen.
Default sieht die laptop-mode.conf unter 8.04 in dem Abschnitt so aus:
#
# Read-ahead, in kilobytes. You can spin down the disk while playing MP3/OGG
# by setting the disk readahead to a reasonable size, e.g. 3072 (3 MB).
# Effectively, the disk will read a complete MP3 at once, and will then spin
# down while the MP3/OGG is playing. Don't set this too high, because the
# readahead is applied to _all_ files that are read from disk.
#
LM_READAHEAD=3072
NOLM_READAHEAD=128
Der Standardwert entspricht mit 3MB etwa einem durchschnittlichen Musikstück. Würde die Zeit bis zum Parken der Festplatte bei z.B. -B 255 (kein PM) also weiterhin 20 Sekunden betragen, dann würde die Festplatte die 3MB Daten einlesen und 20 Sekunden später den Lesekopf parken. Sobald das Stück durch ist also wieder entparken, neues Stück einlesen und dann wieder parken. Überschlagen wir das mal grob mit 3MB == 3 Minuten kommen wir auf etwa 20 Parkpositionen pro Stunde. Das ist zwar deutlich weniger als mit aggressivem PM, aber trotzdem nicht wirklich nötig, wenn man im Netzbetrieb ist. Da der Wert leider nicht für Netz- und Batteriebetrieb getrennt ist, muss es jeder wieder für sich selbst abwägen, wie es für ihn vielleicht am sinnvollsten ist. Im Batteriebetrieb macht es sicherlich Sinn, wenn man -B 255 und -S 20 gesetzt hat, durch ein entsprechendes READAHEAD der Festplatte mal etwas Ruhe zu gönnen.
Meine laptop-mode.conf sieht in diesem Abschnitt jetzt erstmal wie folgt aus:
#
# Read-ahead, in kilobytes. You can spin down the disk while playing MP3/OGG
# by setting the disk readahead to a reasonable size, e.g. 3072 (3 MB).
# Effectively, the disk will read a complete MP3 at once, and will then spin
# down while the MP3/OGG is playing. Don't set this too high, because the
# readahead is applied to _all_ files that are read from disk.
#
LM_READAHEAD=128
NOLM_READAHEAD=128
4) Ich kann leider absolut keine Garantie für Vollständigkeit und hundertprozentige Richtigkeit übernehmen. Dazu - muss ich zugeben - bin ich leider nicht technisch versiert genug und bei den vielen verschiedenen Meinungen zu diesem Thema auch noch ein klein wenig verunsichert. Auch wird in meinem Betrag sicherlich schnell deutlich, dass jeder den Laptop Mode selber an seine Bedürfnisse anpassen muss. Etwas, das ich vielleicht selber noch nicht wirklich für mich geschafft habe. Alles, was ich mit Sicherheit sagen kann, ist, dass mir meine Kiste hier in den vergangenen 48h Laufzeit bei diesen Einstellungen noch nicht abgeraucht ist und auch keine Werte meiner Festplatte in eine unschöne Richtung gegangen sind.
Falls jemand noch etwas Fundierteres dazu beitragen kann, dann wäre ich dankbar, wenn er sich kurz zu Wort meldet... Oder meinetwegen auch klar sagt: dauerflucher, das und das ist schlichtweg Bullshit.