Le bureau se réveille de la suspension au hasard (14.04)

9

Mon bureau se réveille de lui-même. Parfois, cela ne prend qu'une minute ou deux, d'autres fois des heures.

Je ne sais pas par où commencer à résoudre ce problème. Toute aide serait grandement appréciée.

twex
la source
1
Est-il connecté à un câble Ethernet? Retirez peut-être le câble et voyez s'il reste endormi.
Jos
D'accord avec Jos. 2 autres questions: Avez-vous Wake On Lan ou Wake On Keyboard actif dans votre BIOS?
Rinzwind
La réponse semble également fonctionner pour d'autres versions d'Ubuntu.
Kaveh

Réponses:

13

Les conseils donnés par Jos et Rinzwind m'ont donné un début, mais n'ont pas réglé le problème. Je n'ai pas de câble Ethernet connecté et je n'ai pas WOL (cela n'existait pas en option dans le BIOS) ou Wake On Keyboard activé.

J'ai essayé de débrancher la souris, un Logitech sans fil avec un récepteur USB, avant de mettre l'ordinateur en veille pendant la nuit - pas de réveils!

Pourquoi n'y ai-je pas pensé avant? J'éteins toujours ma souris lors de la suspension du PC. Je ne pensais pas que cela causerait plus de problèmes.

Alors, comment empêcher la souris / le récepteur de provoquer des réveils? Tout d'abord, exécutez la commande cat /proc/acpi/wakeup. Cette liste répertorie les périphériques pouvant provoquer un réveil.

$ cat /proc/acpi/wakeup 
Device  S-state     Status      Sysfs node
P0P1    S4          *disabled   pci:0000:00:1e.0
USB1    S3          *disabled
USB2    S3          *disabled
USB3    S3          *disabled
USB4    S3          *disabled
USB5    S3          *disabled
USB6    S3          *disabled
USB7    S3          *disabled
RP01    S4          *disabled   pci:0000:00:1c.0
PXSX    S4          *disabled   pci:0000:01:00.0
RP02    S4          *disabled
PXSX    S4          *disabled
RP03    S4          *disabled
PXSX    S4          *disabled
RP04    S4          *disabled
PXSX    S4          *disabled
RP05    S4          *disabled   pci:0000:00:1c.4
PXSX    S4          *enabled    pci:0000:02:00.0
RP06    S4          *disabled
PXSX    S4          *disabled
RP07    S4          *disabled
PXSX    S4          *disabled
RP08    S4          *disabled
PXSX    S4          *disabled
PEG0    S4          *disabled
PEGP    S4          *disabled
PEG1    S4          *disabled
PEG2    S4          *disabled
PEG3    S4          *disabled
GLAN    S4          *disabled
EHC1    S4          *enabled    pci:0000:00:1d.0
EHC2    S4          *enabled    pci:0000:00:1a.0
XHC     S4          *enabled    pci:0000:00:14.0
HDEF    S4          *disabled   pci:0000:00:1b.0
PWRB    S3          *enabled 

Sur le terrain, Statusvous pouvez voir s'ils peuvent réveiller l'ordinateur ( enabled) ou non ( disabled).

EHC1, EHC2Et XHCreprésenter les contrôleurs USB. Visiblement USB1 - USB7aussi, mais ils sont tous désactivés dans mon cas. Je ne peux pas entrer dans les détails parce que je ne sais pas grand-chose à ce sujet.

Je pense que PWRB(dernière ligne) représente le bouton d'alimentation. Ce serait une bonne idée de le laisser activé, car vous voulez probablement pouvoir réveiller votre ordinateur en utilisant le bouton d'alimentation.

En donnant la commande, sudo sh -c "echo EHC1 > /proc/acpi/wakeup"vous basculez le paramètre pour EHC1. Si vous exécutez la commande pour répertorier à nouveau les périphériques, vous verrez que le paramètre de EHC1a changé.

J'ai essayé avec les contrôleurs EHC1, EHC2, XHCpuisque je ne sais pas ce que les commandes du contrôleur ce périphérique USB.

Pour moi, quitter EHC1et XHCactiver et désactiver EHC2me donne le résultat que je voulais. Désormais, ni le clavier ni la souris (même s'ils sont allumés) ne peuvent provoquer un réveil. Je dois appuyer sur le bouton d'alimentation physique de l'ordinateur lui-même.

Malheureusement, le paramètre sera réinitialisé au redémarrage. Pour lutter contre cela, vous pouvez mettre le code ci-dessous dans votre /etc/rc.local. Il doit être édité en utilisant des privilèges élevés: sudo gedit /etc/rc.localpar exemple.

for device in EHC2
do
    if grep -q "$device.*enabled" /proc/acpi/wakeup
    then
        echo $device > /proc/acpi/wakeup
    fi
done

Vous pouvez ajouter plus d'appareils en modifiant la première ligne du code: for device in EHC1 EHC2 XHC USB1et ainsi de suite. J'ai trouvé le script, écrit par l'utilisateur toojays .

Cela a résolu mon problème.

twex
la source
Peut confirmer, cela se produit toujours sur Ubuntu 16.04. Débrancher le récepteur USB a aidé! Je vérifierai la solution programmatique plus tard.
onebree
La désactivation de XHC résout le problème de mon Ubuntu 16.04
HD189733b