web-dev-qa-db-fra.com

ordinateur portable ne parvient pas à suspendre ou hiberner (se réveille après 2-5 secondes sans interaction de l'utilisateur)

Tout cela a commencé après la mise à niveau vers 13.10, maintenant je suis sous 14.04 et j'ai toujours le même problème.

Lorsque je ferme le couvercle ou que je fais Sudo pm-suspend, le portable est suspendu pendant 2 à 5 secondes et se réveille tout seul.

Il en va de même si j'essaie de faire hiberner.

J'ai le pressentiment que quelque chose est en train de se réveiller/de sortir le processeur du mode suspendre, mais je ne peux pas trouver quoi.

Toute aide pour résoudre ce problème ennuyeux?

Modifier:

Grâce à @Fabian, j'ai pu comprendre qu'il semblerait que la carte Ethernet ne fonctionne pas correctement et même après l'avoir configurée pour qu'elle ne se réveille pas sur LAN (soit en faisant acpitool -W 3 ou echo disabled > /sys/bus/pci/devices/0000:00:19.0/power/wakeup ou echo IGBE > /proc/acpi/wakeup quand je fais acpitool -w

Device  S-state   Status   Sysfs node
---------------------------------------
1. LID    S3    *enabled 
2. SLPB   S3    *disabled
3. IGBE   S4    *enabled   pci:0000:00:19.0
4. EXP1   S4    *disabled  pci:0000:00:1c.0
5. EXP2   S4    *disabled  pci:0000:00:1c.1
6. EXP3   S4    *disabled
7. EXP4   S4    *disabled
8. EXP5   S4    *disabled  pci:0000:00:1c.4
9. EHC1   S3    *disabled  pci:0000:00:1d.0
10. EHC2      S3    *disabled  pci:0000:00:1a.0
11. HDEF      S4    *disabled  pci:0000:00:1b.0

Une idée de comment procéder à partir de là?

Le pilote réseau utilisé par IGBE est e1000e

22
feniix

J'ai le noyau 13.13 et la carte mère basée sur Intel Z77X, et la commande suivante fonctionne pour moi:

Sudo sh -c "echo EHC1 > /proc/acpi/wakeup;echo EHC2 > /proc/acpi/wakeup;echo XHC > /proc/acpi/wakeup"
10
guest

Ce qui suit a fonctionné pour moi:

cat /proc/acpi/wakeup

Recherchez les éléments dont l'état est activé et qui semblent ne pas appartenir à cet élément (pour moi, tout sauf LID0). Puis désactivez-les en disant, par exemple:

Sudo sh -c "echo XHC0 > /proc/acpi/wakeup"

Vérifiez que les entrées correspondantes ont bien été désactivées, envoyez le portable en suspension et attendez le meilleur :)

11
Fabian

Vivre exactement le même problème (ThinkPad T530, Ubuntu 14.04, mais également 13.10 et 13.04, après quelques suspensions, l’ordinateur reprend immédiatement après la suspension).

Désactiver IBGE du réveil n'a pas aidé du tout.

Comme suggéré par Romano, j'ai essayé de supprimer le module e1000e et le tour est joué comme prévu.

Alors:

Sudo rmmod e1000e

avant de suspendre résout le problème.

De manière intéressante, le problème réapparaît immédiatement après avoir réinstallé le module (Sudo modprobe e1000e) et l'avoir suspendu sans le supprimer. Donc, ça devait être quelque chose lié au matériel.

Pour l'automatiser, j'ai créé deux scripts simples de suspension/réveil (testés sur le matériel mentionné ci-dessus, Ubuntu Trusty 14.04): Sudo gedit /etc/pm/sleep.d/99_e1000e_remove:

#!/bin/sh

# Remove e1000e kernel module prior to suspend
rmmod e1000e

et Sudo gedit /etc/pm/power.d/99_e1000e_probe:

#!/bin/sh

# Modprobe e1000e kernel module after resume
modprobe e1000e

Les scripts doivent être exécutables (Sudo chmod +x /etc/pm/sleep.d/99_e1000e_remove /etc/pm/power.d/99_e1000e_probe).

Remarques:

  • Je suppose que les scripts sont assez sûrs à utiliser même quand cela ne résout pas votre problème.
  • Je n'utilise pas le réveil par le réseau local, alors je ne sais pas comment il se comporte avec le correctif.
7
sopvkore

Cela a fonctionné pour moi (tiré d'un autre fil sur askubuntu):

buntu 14.04 se réveille immédiatement après la suspension

Vous pouvez essayer de le désactiver avec un script pstart à chaque démarrage automatiquement:

Créer un fichier etc/init/disable-XHC.conf

Contenu:

start on started dbus
stop on stopping dbus

script
   Sudo -u root sh -c "echo 'XHC' > /proc/acpi/wakeup"
end script
1
Ilian

La solution systemd consiste à créer une instruction pour que systemd-tmpfiles écrive quelque chose dans un fichier lorsqu'il est appelé.

Créez un fichier dans /etc/tmpfiles.d, par exemple. /etc/tmpfiles.d/disable-network-wake.conf, avec le contenu suivant, selon le périphérique pour lequel vous souhaitez désactiver le réveil.

w /proc/acpi/wakeup - - - - XHC

Voir aussi systemd-tmpfiles (8) et tmpfiles.d (5).

Réf.: https://wiki.archlinux.org/index.php/Systemd#Temporary_files

0
FichteFoll