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

22

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

Lorsque je ferme le couvercle ou que je le fais, sudo pm-suspendl'ordinateur portable se met en veille 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 sentiment instinctif que quelque chose est en train de s'éveiller / de retirer le processeur du mode suspension, mais je ne peux pas comprendre quoi.

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

Modifier:

Grâce à @Fabian, j'ai pu comprendre qu'il semble que la carte Ethernet se comporte mal et même après avoir configuré la carte pour qu'elle ne se réveille pas sur le réseau local (que ce soit en faisant acpitool -W 3ou echo disabled > /sys/bus/pci/devices/0000:00:19.0/power/wakeupou echo IGBE > /proc/acpi/wakeup, l'ordinateur portable continue de se réveiller et de le montrer quand je le 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

feniix
la source
3
utiliser dmesgpour voir les derniers messages du noyau, quelque chose pourrait vous donner une idée de ce qui se passe.
roadmr
Avez-vous désactivé la fonction Wake-On-Lan dans le BIOS?
Mitch
Oui, c'est la première chose que j'ai essayée.
feniix

Réponses:

10

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"
client
la source
11

Ce qui suit a fonctionné pour moi:

cat /proc/acpi/wakeup

Recherchez tous les éléments dont le statut est activé et qui semblent ne pas y appartenir (pour moi, sauf LID0). Ensuite, 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, mettez le portable en veille et espérez le meilleur :)

Fabien
la source
Très bonne avance, maintenant je dois découvrir pourquoi la carte Ethernet intégrée continue de se réveiller même si j'ai défini le mode de réveil pour qu'elle soit désactivée
feniix
1
Bonne chance avec ça :)
Fabian
1
Avez-vous essayé rmmodle chauffeur avant de suspendre? (Juste un coup dans le noir)
Rmano
Même problème ennuyeux dans Ubuntu 16.04.1. Cette réponse n'a malheureusement pas aidé.
Dan Dascalescu
+1 C'est la seule solution qui a fonctionné pour moi.
Bandi Kishore
7

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

La désactivation d'IBGE depuis le 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.

Fait intéressant, le problème réapparaît immédiatement après l'installation du module back ( sudo modprobe e1000e) et la suspension sans sa suppression. Donc, ça devait être quelque chose de matériel.

Pour l'automatiser, j'ai créé deux scripts de suspension / réveil simples (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 LAN, donc je ne sais pas comment il se comporte avec le correctif.
sopvkore
la source
L'ordinateur portable a le même problème avec Windows (je viens d'installer Windows 7 pour ma femme dans l'ordinateur parce que j'en ai un nouveau) et il fait exactement la même chose. Il peut donc être lié au matériel / firmware
feniix
1
Salut. J'utilise Ubuntu 14.04 LTS avec un Thinkpad X201s. Cette solution supprimant e1000e avec les petits scripts d'aide a permis de remettre la suspension en marche. Merci beaucoup !
apos
1
Je peux confirmer que la même solution fonctionne sur un Thinkpad T540p et Ubuntu 14.04. Quelque chose semble aller mal à l'intérieur du e1000emodule. Cela ne se produit que de temps en temps, la plupart du temps, la suspension fonctionne bien. Si le problème apparaît, je rmmod e1000epuis je peux suspendre avec succès. Cependant, si je modprobele refais après la reprise, la prochaine suspension fonctionnera même avec le module présent. Donc, "réinitialiser" le e1000emodule semble faire l'affaire pour moi.
mindriot
1

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

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

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

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
Ilian
la source
0

La solution systemd consiste à créer une instruction pour que les fichiers systemd-tmp écrivent quelque chose dans un fichier lors de son appel.

Créez un fichier dans /etc/tmpfiles.d, par exemple /etc/tmpfiles.d/disable-network-wake.conf, avec le contenu suivant, en fonction de l'appareil 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

FichteFoll
la source