Keine schnelle Lösung in Sicht: Reaktion auf den Stromhunger von Linux-Kernel 2.6.38

28 Juni 2011 Kein Kommentar Autor: Jürgen (jdo)

TuxMichael Larabel von Phoronix untersucht schon länger, warum Kernel 2.6.38 so viel mehr Strom braucht. Von zehn bis 40 Prozent kürzerer Akkulaufzeit gegenüber Windows geht Larabel aus. Schuld ist anscheinend das PCI Subsystem. Einzige Lösung scheint derzeit zu sein, pcie_aspm=force als kernel-Option in GRUB anzugeben. Larabel zeigt sich überrascht, dass bisher kein Entwickler oder Hardware-Hersteller auf ihn zugekommen ist oder an dem Problem wirklich interessiert scheint.

Nun hat sich Jesse Barnes, einer der Wartungs-Beauftragten und Entwickler für das PCI Subsystem des Linux-Kernel, einen Kommentar zu dem Problem abgegeben. Die Untersuchung scheine unglücklicherweise korrekt zu sein. Er bestätigte, dass sie nur ein BIOS-Flag benutzen, um den PCI Express Link-Status zu verwalten. Würde sowohl das BIOS als auch der Kernel versuchen, PCI-E zu verwalten, könnte das in einem Absturz enden.

Somit ist das ein Problem für viele Anwender mobiler Geräte, weil schlicht und einfach die Akkulaufzeit darunter leidet. jesse glaubt, dass Microsoft extra Prüfungen durchführen lässt und dann entscheidet, ob Windows Active-State Power Management behandeln soll oder nicht. Hardware-Treiber unter Windows könnten ebenfalls verantwortlich sein, ASPM zu aktivieren (falls unterstützt). Auf der Linux-Seite scheinen nur wenige Kernel-Treiber bei ASPM anzuklopfen.

Es gebe derzeit keine einfache Lösung. Anwender könnten lediglich PCI-E Active-State Power Management mit dem Kommandozeilenaufruf für den Kernel pcie_aspm=force zu erzwingen. Als langfristige Lösung müssten wohl mehr Kernel-Treiber das ASPM-Bit setzen. Derzeit gebe es allerdings zu viele Geräte, die ASPM nicht gut unterstützen.

Als Alternative wäre eine große White-List von unterstützter Hardware denkbar. Allerdings sei der Aufwand hier so groß, dass man gleich die Treiber entsprechend anpassen könnte. Einen magischen Fix wird es somit wohl auch im Linux-Kernel 3.0 nicht geben.

Wie aktiviert man nun ASPM? (auf eigenes Risiko)

Zunächst einmal können Sie mittels lspci (zum Beispiel lspci -vvv | grep ASPM) herausfinden, ob PCI Express oder ASPM überhaupt Verwendung finden. Wenn ja, dann öffnen Sie die Datei /etc/default/grub und verändern mit root-Rechten die Zeile

  1. GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

in

  1. GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=force"

Ebenfalls mit root-Rechten führen Sie danach update-grub2 aus (oder sudo update-grub2 bei einigen Systemen). Als letzter Schritt ist ein Neustart notwendig.



Du kannst gerne Deinen Senf zu diesem Beitrag geben: Hier geht es zu den Kommentaren


Schreiben macht durstig! Eine kleine Erfrischung kann daher nie schaden. Wem dieser freie Artikel gefallen hat, der darf mir gerne einen frisch gezapften Hopfen-Tee ausgeben (Paypal - der Spenden-Knopf
oder bitcoin - Adresse: 1NacVNwcLLePUVv8uSafu5Ykdwh8QyDfgK). Ich freue mich über jede noch so kleine Spende. Vielen Dank und Prost!
 Alle Kommentare als Feed abonnieren

Antworten