web-dev-qa-db-fra.com

Suspendre / hiberner ne fonctionne pas sur un ordinateur portable Asus

J'ai des problèmes pour suspendre Ubuntu 11.04 (Natty Narwhal) sur mon nouvel ordinateur portable Asus U30SD-XA1. C'est un nouvel ordinateur portable sur le marché. Est-ce un problème connu et existe-t-il un correctif?

Fondamentalement, chaque fois que je ferme ou mets l'ordinateur portable en veille, l'écran devient noir, mais la carte vidéo ne s'éteint pas et le ventilateur tourne encore plus vite qu'avant et devient brûlant.

J'ai vu que certaines personnes avaient des problèmes similaires sur d'autres ordinateurs portables et ont réinitialisé le noyau. Je suis novice sur Ubuntu et je ne suis pas très à l'aise avec le noyau.

Je n'utilise pas le pilote 520M Nvidia, car il ne se chargera pas nity après son installation. J'ai également entendu pas mal de mauvaises choses sur les pilotes sur les forums Ubuntu, alors j'ai désactivé le pilote.

10
b1kjsh

Cela semble être un problème courant sur de nombreux ordinateurs portables ASUS. Essaye ça:

Source: http://thecodecentral.com/2011/01/18/fix-ubuntu-10-10-suspendhibernate-not- bogue de travail

Exécutez ceci dans un terminal:

gksu gedit /etc/pm/sleep.d/20_custom-ehci_hcd 

Copiez et collez le contenu des éléments suivants dans l'éditeur de texte:

#!/bin/sh
#inspired by http://art.ubuntuforums.org/showpost.php?p=9744970&postcount=19
#...and http://thecodecentral.com/2011/01/18/fix-ubuntu-10-10-suspendhibernate-not-working-bug    
# tidied by tqzzaa :)

VERSION=1.1
DEV_LIST=/tmp/usb-dev-list
DRIVERS_DIR=/sys/bus/pci/drivers
DRIVERS="ehci xhci" # ehci_hcd, xhci_hcd
HEX="[[:xdigit:]]"
MAX_BIND_ATTEMPTS=2
BIND_WAIT=0.1

unbindDev() {
  echo -n > $DEV_LIST 2>/dev/null
  for driver in $DRIVERS; do
    DDIR=$DRIVERS_DIR/${driver}_hcd
    for dev in `ls $DDIR 2>/dev/null | egrep "^$HEX+:$HEX+:$HEX"`; do
      echo -n "$dev" > $DDIR/unbind
      echo "$driver $dev" >> $DEV_LIST
    done
  done
}

bindDev() {
  if [ -s $DEV_LIST ]; then
    while read driver dev; do
      DDIR=$DRIVERS_DIR/${driver}_hcd
      while [ $((MAX_BIND_ATTEMPTS)) -gt 0 ]; do
          echo -n "$dev" > $DDIR/bind
          if [ ! -L "$DDIR/$dev" ]; then
            sleep $BIND_WAIT
          else
            break
          fi
          MAX_BIND_ATTEMPTS=$((MAX_BIND_ATTEMPTS-1))
      done  
    done < $DEV_LIST
  fi
  rm $DEV_LIST 2>/dev/null
}

case "$1" in
  hibernate|suspend) unbindDev;;
  resume|thaw)       bindDev;;
esac

Enregistrer, puis

Sudo chmod 755 /etc/pm/sleep.d/20_custom-ehci_hcd
9
fossfreedom

Juste un point de données supplémentaire:

J'ai un ASUS UL20FT sous Xubuntu 11.04. Suspend fonctionnait bien jusqu'à récemment. La LED Caps Lock clignotait à chaque fois que j'essayais de suspendre. On m'a dit que c'était une indication d'un crash du noyau.

J'ai essayé le script ci-dessus, mais cela n'a pas fonctionné pour moi. /var/log/pm-suspend.log n'a montré aucune erreur (à l'exception des échecs dans networkmanager et wpa_supplicant, qui étaient transitoires).

Le coupable était les modules du noyau chargés par Virtualbox-4.1.

J'ai enlevé Virtualbox et tout a encore fonctionné.

2
Gilead

J'ai un ordinateur portable asus U46E RAL-7. Après avoir ajouté nolapic à la ligne GRUB_CMDLINE_LINUX_DEFAULT, cela fonctionne à merveille.

2
G. He

Merci fossfreedom! Ce script corrige des problèmes de suspension sur mon Asus 1225B. Je vais encore l'essayer pour 1215N et 1215B et faire rapport ici.

Un petit ajout ... J'avais l'ordinateur portable (1225B) sur le point de suspendre lorsque j'ai fermé le couvercle, ce qui a fonctionné. Mais immédiatement après la suspension, il reprendrait (avec le couvercle toujours fermé). Cela ne faisait pas la même chose si je suspendais d'une autre manière.

Voici comment résoudre le problème de la suspension/du réveil à l'aide du couvercle d'un Asus 1225B:

  1. Activer l'option du BIOS pour se réveiller sur le couvercle
  2. Désactivez l'option de réveil LID dans /proc/acpi/wakeup:
    • Utilisez acpitool (voir acpitool --help)

C'est la seule façon pour moi de le faire fonctionner correctement.

1
Humpparitari