Bei meinem Schnelltest mit dem Asus X53E musste ich leider feststellen, dass das Gerät nicht in richtig in den Standby fahren kann. Drückt man auf den Netzschalter und wählt Bereitschaft bzw. Ruhezustand, so wird der Bildschirm schwarz und der Lüfter dreht hoch, mehr tut sich leider nicht mehr. Um das System wieder zu beleben, muss man es hart abschalten und neu starten. In den Kommentaren kam von Matthias von brainoverflow.de der Hinweis auf die Lösung des Problems.

Da das wohl zahlreiche Laptops von Acer, über Asus und Dell bis hin zu MSI sowie auch „normale“ Mainboards wie auch Kompakt-PCs betrifft übernehme ich hier einmal die Lösung. Sie lässt sich auch auf andere Linux-Distributionen übertragen. In den Kommentaren des ursprünglichen Beitrags sieht man auch Nutzer von Fedora Core oder LMDE, die den Standby ihres Rechners fixen konnten. Das Skript ist sicherlich keine Allheilmittel für alle Laptops mit Problemen mit dem Energiemanagement, doch vielleicht hilft es euch ja.

Das Problem scheint mit den USB-Controllern zusammenzuhängen, sie werden wohl beim Herunterfahren nicht korrekt deaktiviert und behindern das Übergehen in den Standby/Suspend. Um das Problem nun anzugehen legt man ein zusätzliches Skript für den PowerManager unter /etc/pm/sleep.d/ an…

$ gksudo gedit /etc/pm/sleep.d/20_custom-ehci_hcd

…und fügt den folgenden Inhalt ein. Ihr müsst in dem Skript nichts anpassen, Ihr könnt es eins zu eins übernehmen.

#!/bin/sh

TMPLIST_E=/tmp/ehci-dev-list
TMPLIST_X=/tmp/xhci-dev-list
E_DIR=/sys/bus/pci/drivers/ehci_hcd
X_DIR=/sys/bus/pci/drivers/xhci_hcd
E_BIND=$E_DIR""/bind
E_UNBIND=$E_DIR""/unbind
X_BIND=$X_DIR""/bind
X_UNBIND=$X_DIR""/unbind


#param1 = temp file, param2 = device dir, param3 = unbind 
unbindDev (){
#inspired by http://art.ubuntuforums.org/showpost.php?p=9744970&postcount=19    
  echo -n '' > $1
    for i in `ls $2 | egrep '[0-9a-z]+\:[0-9a-z]+\:.*$'`; do
      echo -n "$i" | tee $3
      echo "$i" >> $1
  done
}

#param1 = tem file, param2 = bind
bindDev(){
  [ -f $1 ] || return
  
  for i in `cat $1`; do
    echo -n "$i" | tee $2

  done
  rm $1
}

case "" in
  hibernate|suspend)
    unbindDev $TMPLIST_E $E_DIR $E_UNBIND
    unbindDev $TMPLIST_X $X_DIR $X_UNBIND
        ;;
  resume|thaw)
    bindDev $TMPLIST_E $E_BIND
    bindDev $TMPLIST_X $X_BIND
        ;;
esac

Abschließend müsst nur noch die Rechte so abändern, dass das Skript ausgeführt werden kann…

$ sudo chmod +x /etc/pm/sleep.d/20_custom-ehci_hcd

…und dann zum Test das Notebook in den Standby schicken. Das Skript sollte sofort seine Wirkung zeigen und – hoffentlich – das Notebook nun endlich ordentlich in den Bereitschafts- bzw. Ruhezustandsmodus gehen. Sollte sich die Aktion als Nullnummer erweisen, so könnt Ihr das Skript wieder löschen…

$ sudo rm /etc/pm/sleep.d/20_custom-ehci_hcd

…und weiter auf die Suche nach einer Lösung gehen, das Skript wird euch dann leider nicht helfen. Anbei noch eine Liste mit Laptops, bei denen sich der Standby/Suspend mit dem Skript beheben lies. Sie ist bei weitem nicht vollständig und soll nur erste Anhaltspunkte liefern, ob sich das Skript bei euch positiv auswirken kann.

  • Acer Aspire 5750-6690 unter Ubuntu Maverick 10.10
  • Asus EEEPC 1000H unter Linux Mint 10 LXDE
  • Asus B53F unter Ubuntu Natty 11.04 und Maverick 10.10
  • Asus K52F unter Ubuntu Natty 11.04
  • Asus K72JR
  • Asus N53J unter Fedora Core 14 und N53SN unter Ubuntu Natty 11.04
  • Asus N73JG unter Fedora Core 15 (Rawhide)
  • Asus P31F unter Ubuntu Natty 11.04
  • Asus U35JC und U36JC unter Ubuntu Natty 11.04
  • Asus U50F unter Ubuntu Maverick 10.10
  • Asus X53E-SX107V unter Ubuntu Natty 11.04
  • Averatec 2200
  • Dell E4300 unter Ubuntu Natty 11.04
  • Dell E6400 unter Ubuntu Natty 11.04
  • Dell Studio 1558
  • HP EliteBook 8540p
  • HP Envy 17 unter Ubuntu Maverick 10.10
  • HP Compaq 6730b
  • IBM T410s unter Ubuntu Natty 11.04
  • Lenovo ThinkPad SL500 unter Ubuntu Maverick 10.10
  • Lenovo 3000 Y410 unter Ubuntu Natty 11.04
  • Sony Vaio VPC-F115FM und VPC-F13S1E
  • Sony Vaio WGN-FW235J unter Ubuntu 11.04 (Nur Ruhezustand)
  • Toshiba Satellite U500-1DV unter Ubuntu Maverick 10.10

Weitere Informationen lassen sich auch noch in einem Thread auf ubuntuforums.org finden, aus dem heraus dieser Workaround entstanden ist.

48 KOMMENTARE

    • Generell sind alle diese Energieverwaltungsgeschichten extrem aufwändig. Das Problem ist, dass es zig verschiedene Bios-Hersteller gibt, die immer wieder am Bios drehen und keine Standards befolgen. Das Ergebnis ist, dass wird ein Hase und Igel-Spielchen haben, wo Linux leider immer etwas hintendran ist.

  1. Super,

    auf meinem Fujitsu Siemens Celsius H250 ist es jetzt wieder möglich den Standby-Modus zu nutzen. Neustarten und Herunterfahren ist aber leider nach wie vor nicht möglich bei dem Gerät. Betriebssystem ist Natty 64 Bit. Mit Lucid 64 Bit hat alles wunderbar geklappt, ich denke ich werde wieder zurückruden, da mir das im Herbst bevorstehende Upgrade auf 11.10 zur Zeit eh nicht behagt.

    Vielen Dank und viele Grüße

  2. Ich habe eine Frage zu Linux Mint 11 KXDE im Bezug auf ein chiligreen Netbook pico gt:
    Das Skrypt habe ich erfolgreich kopiert und angewendet. Das aktivieren und deaktivieren des Standbymodus funktioniert einwandfrei. Was aber nicht funktioniert ist der Bildschirmschoner bzw. das schwärzen des Bildschirmes am Netbook. Hier stürzt das Ding einfach ab. Kann mir jemand sagen, ob es ein anderes Skrypt gibt, was das behebt?

  3. Hey, cool, funktioniert auf Anhieb mit ASUS U53JC Bamboo und LinuxMint 11 …
    DAS ist mal ’n Fortschritt ..
    Mir ist nur eine Kleinigkeit aufgefallen: Ich benutze gpointing-device-settings zum scrollen mit einem alten Trackball. Die Scrollfunktion geht nach dem Aufwachen nicht mehr.
    Danke für die gut erklärte und einfache Lösung!

  4. Skript funktioniert auf:
    Asus R252B, 4GB, Linux Mint 13-Mate (Ubuntu 12,04 LTS).

    Allerdings ist der Zustand nach dem Aufwachen aus Hibernate
    wie nach einem Neustart – alle Arbeitsflächen sind ‚leer‘.
    Vor dem Einsatz des Skripts habe ich den Swap-Space auf
    ca. 9GB erhöht. In mehreren Forem wurde darauf hingewiesen,
    dass bei zuwenig Swap Standby-Modi nicht funktionieren.

    Gruß tli

  5. Es gibt noch einen anderen möglichen Workaround, wenn sich der Rechner nicht schlafen legt.

    Im Verzeichnis /etc/pm/config.d eine Datei mit dem Namen s2ram.config anlegen mit diesem Inhalt:

    S2RAM_OPTS=“-f -a 3″

    Dann Rechner neu starten und mit „pm-suspend“ testen, ob der Rechner schlafen geht.

    Dieser Workaround ist für die User, bei denen sich der Rechner nicht schlafen legt, wo also der Aufruf von pm-suspend einfach nichts bewirkt.

  6. Hallo,

    bei meinem HP Compaq 8510w unter Xubuntu 13.04 hat das Skript leider nicht funktioniert. Ich habe schon alles Mögliche probiert.

    Der Tip von Malte (besten Dank) versetzt den HP zumindest sicher in den Standby-Mode. Nach dem Einschalten drehen allerdings die Lüfter auf Maximum, so daß ein Arbeiten mit dem Gerät zur Tortur wird.

    Bin also noch nicht am Ziel. Gibt es weitere Anregungen?
    Danke!

  7. Danke, es hat auch auf meinem Asus 1000h funktioniert (Eeepc BJ2008) unter Mint 17.3 Mate, aber erst nach Kernel-Update von Standard 3.19.0.32… auf 3.19.0.59 (Letzter 3.19.0.80 funktioniert auch).

    Ich musste schon etwas schmunzeln, dass dieses aus 2011 stammende Linux-Thema auch Ende 2017 noch hochaktuell und in Standard-Distris weiterhin ungelöst zu sein scheint. 🙂

    Leider scheint Mint17.x auf diesem Rechner das letzte System aus dieser Serie zu sein was anständig läuft. Bei 18.x habe ich massive Probleme festgestellt mit ACPI im Zusammenhang mit der Erkennung des Einsteckens der Spannungsversorgung bzw. des Akku-Ladens. Diese Änderungen werden auf der Oberfläche nur extrem zeitverzögert erkannt und damit auch die Umschaltung der Bildschirmhelligkeit auf Akku-Betrieb (liegt vermutlich an den neueren Kernels). Habe bislang noch keine Idee, was ich nach dem EndOfLife von 17.x im April 2019 machen werde, sollte der Rechner dann noch funktionieren.

    Sehr schöne Seite, danke für alles.