43 votes

Comment empêcher un réveil immédiat de la mise en veille et/ou de l'hibernation?

Pendant quelques jours, mon ordinateur de bureau Ubuntu 12.04 se réveille mystérieusement immédiatement après avoir été mis en mode veille.

Depuis l'installation, mon ordinateur portable Ubuntu 12.10 se réveille également immédiatement après la suspension et la mise en veille prolongée.

Comment empêcher cela?

39voto

Bob Probst Points 4502

Ce problème a probablement été causé par des signaux USB étranges. gedit /proc/acpi/wakeup m'a montré que le réveil était activé pour USB0 et USB2.

sudo -s
echo USB0 > /proc/acpi/wakeup
echo USB2 > /proc/acpi/wakeup

Je les ai ensuite désactivés (vérifiés avec gedit /proc/acpi/wakeup de nouveau ou en actualisant la vue du fichier), et après cela, l'ordinateur reste en mode veille comme il se doit. :-)

31voto

ilikerobots Points 411

Récemment, j'ai eu le même symptôme sur Asus Zenbook Pro UX501 sous Ubuntu 15.04. La solution exacte de Bazon n'a pas fonctionné, mais la variation de Vladimir Rutsky l'a fait. En particulier :

Si vous exécutez depuis le terminal cat /proc/acpi/wakeup montre les lignes suivantes

EHC1      S3    *enabled  pci:0000:00:xx.x
EHC2      S3    *enabled  pci:0000:00:xx.x
XHC       S3    *enabled  pci:0000:00:xx.x

(les adresses pci peuvent être différentes)

puis basculez ces trois à disabled en exécutant les commandes suivantes :

sudo -s
echo EHC1 > /proc/acpi/wakeup
echo EHC2 > /proc/acpi/wakeup
echo XHC > /proc/acpi/wakeup

18voto

Pavlos Theodorou Points 2213

Si vous savez quel appareil réveille votre PC, passez à la première étape pour suivre le guide. Si ce n'est pas le cas, ouvrez le terminal et tapez :

cat /var/log/syslog

Et trouvez quel appareil réveille votre PC.

Maintenant :

  1. Tapez dans le terminal :

    grep . /sys/bus/usb/devices/*/power/wakeup

Pour lister tous les ports USB qui réveillent notre PC.

sudo su

Nous avons maintenant les privilèges root.

2. J'ai 8 ports USB et dans cet exemple disons que je veux désactiver l'usb8, donc :

echo disabled > /sys/bus/usb/devices/usb8/power/wakeup

Allez-y et testez. Maintenant, ce périphérique spécifique dans le port USB 8 ne réveillera pas le PC.

Étape suivante, pour rendre le changement permanent après chaque démarrage :

3.

sudo nano /etc/rc.local

Et nous collons la commande de l'étape 2. Dans là (avant le exit 0 bien sûr).

C'est tout.

optionnel Seulement si après le processus de mise en veille / réveil le périphérique USB 8, dans mon exemple, revient à activé.

  1. Écrivez aussi une règle udev pour exécuter la commande après chaque démarrage, mise en veille, réveil.

Ouvrez un terminal et tapez :

lsusb

Dans les informations sur votre périphérique clavier, les 4 premiers chiffres sont l'ID du vendeur et les 4 chiffres suivants sont l'ID du produit capture d'écran

Ensuite tapez :

sudo nano /etc/udev/rules.d/10-wakeup.rules

Où "wakeup" entrez le nom désiré du script. Le numéro 10 est la priorité au cas où vous auriez de nombreuses autres règles udev, plus le nombre est bas, la 'règle' sera exécutée avant les autres.

Copiez-collez ceci et remplacez l'ID du vendeur et l'ID du produit par votre propre ID du vendeur et ID du produit du clavier sans fil.

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="062a", ATTRS{idProduct}=="4101" RUN+="/bin/sh -c 'echo disabled > /sys/bus/usb/devices/usb8/power/wakeup'"

*usb8 pour moi est mon clavier sans fil (vous pouvez également le voir dans la capture d'écran (Bus 008)), remplacez-le par le vôtre.

Ctrl + O pour sauvegarder, Ctrl + X pour quitter et redémarrer.

6voto

Travis Illig Points 6435

Pour rendre la correction permanente

(Je compile les solutions fournies par Bazon, Ilikerobots et Pavlos Theodorou : ensemble, elles traitent mon problème spécifique)

Pour résoudre le problème de manière permanente, que ce soit un port USB qui réveille le système ou autre chose :

  1. Découvrez ce qui est autorisé à réveiller votre système :

gedit /proc/acpi/wakeup

Vous pourriez obtenir ces lignes ou similaires :

EHC1 S3 *enabled pci:0000:00:xx.x

EHC2 S3 *enabled pci:0000:00:xx.x

XHC S3 *enabled pci:0000:00:xx.x

Ensuite, ouvrez :

sudo gedit /etc/rc.local

et ajoutez ces lignes (ou similaires, en fonction des résultats ci-dessus) avant exit 0

echo EHC1 > /proc/acpi/wakeup

echo EHC2 > /proc/acpi/wakeup

echo XHC > /proc/acpi/wakeup

4voto

Rwky Points 286

Ceci est ce qui a fonctionné pour moi sur mon Mac Book Pro 2015

J'ai ajouté ce qui suit à /lib/systemd/system-sleep/wakeup_disable

#!/bin/sh

# /lib/systemd/system-sleep/wakeup_disable
#
# Évite que le système se réveille immédiatement après la suspension ou l'hibernation
#
# Testé sur MacBookPro 2015

case $1 in
  pre)
    if grep -qE '^XHC1.*enabled' /proc/acpi/wakeup; then
        echo XHC1 > /proc/acpi/wakeup
    fi
    if grep -qE '^LID0.*enabled' /proc/acpi/wakeup; then
        echo LID0 > /proc/acpi/wakeup
    fi
    ;;
esac

Remarque cela empêchera le réveil via l'ouverture du couvercle et via le clavier/souris/dispositif USB, vous devrez appuyer sur le bouton d'alimentation.

Références:

  1. https://wiki.debian.org/InstallingDebianOn/Apple/MacBookPro/Early-2015-13-inch#Immediate_wakeup_after_sleep

  2. https://wiki.archlinux.org/index.php/MacBookPro11,x

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X