TEILEN
Mittwald: Webhosting. Einfach intelligent.

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 "${1}" 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.

44 KOMMENTARE