53 votes

Comment empêcher le mouvement de la souris de réveiller un ordinateur suspendu ?

C'est vraiment ennuyeux car je dois débrancher la souris après une suspension pour m'assurer qu'un choc occasionnel ne réveille pas le système. Je n'ai rien trouvé dans les paramètres du système qui pourrait désactiver cela, pas plus qu'en cherchant sur Google.

29voto

Rooker Points 435

Je n'ai pas encore vérifié le BIOS, mais j'ai trouvé une solution !

En bref : En /proc/acpi/wakeup Vous pouvez voir quels sont les appareils qui sont actuellement autorisés à reprendre depuis la suspension. Cette liste indique les noms (abrégés) de ce que l'on appelle les "périphériques". Par exemple, "PWRB" signifie "bouton d'alimentation".

Si vous écrivez des noms de périphériques dans ce fichier, vous les activerez/désactiverez.

J'ai écrit un petit HowTo pour désactiver le réveil par la souris Le site web de la Commission européenne a été mis à jour, sur la base d'un blog où j'ai trouvé cette information.

22voto

Randy Skretka Points 491

Merci à tous les postulants car le réveil de la souris est un inconvénient majeur et j'ai trouvé mes réponses ici. Je souhaite ajouter mon grain de sel aux solutions, car cela pourrait aider dans d'autres cas. J'ai dû désactiver 3 éléments différents dans /proc/acpi/wakeup . Mes appareils : EHC1, EHC2, XHCI . Les deux premières sont des entrées usb2 et la troisième une entrée usb3. Veuillez noter que bien que l'émetteur-récepteur usb de ma souris soit branché sur un port usb2 et que rien ne soit branché sur un port usb3, l'ordinateur se réveillera lors des mouvements de la souris jusqu'à ce qu'il se mette en marche. tous les 3 sont désactivés.

$ cat /proc/acpi/wakeup | sort 
Device  S-state   Status   Sysfs node
EHC1      S3    *disabled  pci:0000:00:1d.0
EHC2      S3    *disabled  pci:0000:00:1a.0
GLAN      S4    *enabled   pci:0000:08:00.0
.. ,, ..
USB7      S3    *disabled
WLAN      S3    *disabled  pci:0000:03:00.0
XHCI      S3    *disabled  pci:0000:07:00.0

Pour que les éléments de réveil soient désactivés à chaque démarrage, vous pouvez ajouter quelque chose comme ceci à /etc/rc.local ..

echo EHC1 > /proc/acpi/wakeup
echo EHC2 > /proc/acpi/wakeup
echo XHCI > /proc/acpi/wakeup

Tester les éléments qui doivent être désactivés - comme indiqué aquí - pour chacun des éléments qui ont été affichés en tant que enabled sous cat /proc/acpi/wakeup | sort en exécutant dans le terminal chacune des commandes ci-dessous, puis en testant si la souris réveille le système (sans qu'il soit nécessaire de le redémarrer) :

sudo sh -c "echo EHC1 > /proc/acpi/wakeup"
sudo sh -c "echo EHC2 > /proc/acpi/wakeup"
sudo sh -c "echo XHCI > /proc/acpi/wakeup"

(dans mon cas, le premier a suffi, même après avoir testé d'autres ports USB).


Si le /etc/rc.local le fichier n'existe pas

Selon le post, run :

printf '%s\n' '#!/bin/bash' 'exit 0' | sudo tee -a /etc/rc.local
sudo chmod +x /etc/rc.local

Le fichier devrait ressembler à quelque chose comme :

#!/bin/bash
echo EHC1 > /proc/acpi/wakeup
echo EHC2 > /proc/acpi/wakeup
echo XHCI > /proc/acpi/wakeup

exit 0

Reboot.


Si cela ne fonctionne toujours pas, il se peut que le fichier /etc/systemd/system/rc-local.service est manquante ou mal configurée.

Test avec

sudo /etc/init.d/rc.local start

y

sudo systemctl status rc-local

Suivant Comment activer /etc/rc.local avec Systemd :

Créer le fichier :

sudo nano /etc/systemd/system/rc-local.service

Ajoutez-y ensuite le contenu suivant.

[Unit]
 Description=/etc/rc.local Compatibility
 ConditionPathExists=/etc/rc.local

[Service]
 Type=forking
 ExecStart=/etc/rc.local start
 TimeoutSec=0
 StandardOutput=tty
 RemainAfterExit=yes
 SysVStartPriority=99

[Install]
 WantedBy=multi-user.target

Enregistrez et fermez le fichier. Pour enregistrer un fichier dans l'éditeur de texte Nano, appuyez sur Ctrl+O, puis sur Enter pour confirmer. Pour quitter le fichier, appuyez sur Ctrl+X.

Vérifier que tout va bien et qu'il n'y a pas d'erreur :

sudo systemctl start rc-local.service
sudo systemctl status rc-local.service

Redémarrez pour voir les changements.

12voto

Alexander Abramov Points 603

Mon système est Ubuntu 15.10

J'ai essayé d'utiliser lsusb pour savoir quel est le périphérique de la souris. C'est très simple, vous tapez lsusb puis débrancher la souris (dans mon cas, il s'agit d'un récepteur Bluetooth) et taper lsusb à nouveau. L'appareil se présente comme suit :

Bus 007 Device 008: ID 24ae:2000

Trouvez-le maintenant dans /sys/bus/usb/devices/ en procédant de la même manière (débrancher/rebrancher). Dans mon cas, j'ai constaté qu'ils se trouvaient quelque part dans des dossiers commençant par 7-2* .

Essayez maintenant de lire l'idProduct et l'idVendor. Par exemple : cat /sys/bus/usb/devices/7-2.3/idProduct => 2000 , cat /sys/bus/usb/devices/7-2.3/idVendor => 24ae . C'est tout.

Enfin, je crée un script dans /lib/systemd/system-sleep et donnez-lui le nom que vous voulez.

#!/bin/bash

# From lsusb: Bus 007 Device 008: ID 24ae:2000
idVendor=24ae
idProduct=2000

# Get sys device path by vendorId and productId
function find_device()
{
    local vendor=$1
    local product=$2
    vendor_files=( $(egrep --files-with-matches "$vendor" /sys/bus/usb/devices/*/idVendor) )
    for file in "${vendor_files[@]}"; do
       local dir=$(dirname "$file")
       if grep -q -P "$product" "$dir/idProduct"; then
         printf "%s\n" "$dir"
         return
       fi
    done
}

sysdev=$(find_device $idVendor $idProduct)

if [ ! -r "$sysdev/power/wakeup" ]; then
    echo $idVendor:$idProduct not found 1>&2
    exit 1
fi

case "$1" in
    enabled|disabled)
    echo $1 > "$sysdev/power/wakeup"
    ;;
    *)
    echo "$0 enabled   -- to enable the wakeup for this device"
    echo "$0 disabled  -- to disable the wakeup for this device"
    ;;
esac

grep --color=auto -H ".*" "$sysdev/power/wakeup"
exit 0

Tout est fait.

2voto

mochidino Points 470

Voici mon "tutoriel" étape par étape pour que cela fonctionne pour vous :

  1. Utiliser la commande cat /proc/acpi/wakeup pour afficher la liste des dispositifs de réveil
  2. Utiliser la commande sudo sh -c "echo XXXX >/proc/acpi/wakeup" (remplacez "XXXX" par le code de votre appareil) pour basculer l'état de l'appareil (activé/désactivé). Allez-y un périphérique à la fois et essayez de suspendre votre machine et de la réveiller en utilisant le périphérique que vous voulez désactiver jusqu'à ce que le périphérique mérité ne soit plus en mesure de réveiller la machine. N'oubliez pas de toujours réactiver les périphériques que vous ne voulez pas voir désactivés.
  3. Lorsque vous avez trouvé le bon appareil, créez sur votre bureau le fichier "acpi_wakeup" contenant le code suivant : #!/bin/sh printf "XXXX" > /proc/acpi/wakeup (n'oubliez pas de remplacer "XXXX" par le code de votre appareil)
  4. Déplacer ou copier le fichier dans un dossier /etc/init.d/ . Pour copier le fichier, utilisez la commande suivante : sudo cp /home/USERNAME/Desktop/acpi_wakeup /etc/init.d/acpi_wakeup (remplacez "USERNAME" par votre nom d'utilisateur réel)
  5. Rendre le fichier exécutable : sudo chmod 755 /etc/init.d/acpi_wakeup
  6. Utilisez ensuite 'update-rc.d' pour créer automatiquement les liens symboliques nécessaires dans les autres répertoires : sudo update-rc.d acpi_wakeup defaults (il montre WARNING: ...missing LSB tags and overrides mais c'est bon. Vous n'avez pas à vous en préoccuper.)
  7. Redémarrez votre ordinateur.

Sources et lectures complémentaires :

http://www.das-werkstatt.com/forum/werkstatt/viewtopic.php?f=7&t=1985 http://ubuntuforums.org/showthread.php?t=814939&page=3

2voto

cipricus Points 2121

Dans Kubuntu 19.10, l'option /etc/rc.local a cessé de fonctionner pour moi. J'ai remarqué cela pour la première fois sur un KDE Manjaro, et j'ai trouvé cette solution qui y travaillait. Il fonctionne également dans Kubuntu 19.10, ce qui peut signifier qu'il y a des changements dans les systèmes plus récents (que ce soit lié au noyau ou à la version de Plasma, je ne sais pas).

Ainsi :

sort /proc/acpi/wakeup

et recherchez les éléments marqués "activés". Notez leur nom (par exemple EHC1, EHC2, NXUC). Ensuite, testez les commandes qui, comme ci-dessous, empêchent la souris de réveiller le PC :

sudo sh -c "echo EHC1 > /proc/acpi/wakeup"
sudo sh -c "echo EHC2 > /proc/acpi/wakeup"
sudo sh -c "echo NXUC > /proc/acpi/wakeup"

Créer un dossier ~/.bin

mkdir ~/.bin

(Si vous préférez un autre emplacement, remplacez-le en conséquence dans les fichiers suivants).

Créer un service systemd. Dans le terminal :

nano /etc/systemd/system/wakeup-events.service 

Avec ce contenu :

[Unit]
Description=Disable wakeup events on startup

[Service]
Type=oneshot
ExecStart=/bin/bash ~/.bin/wakeup-events.sh

[Install]
WantedBy=multi-user.target

Enregistrer et saisir le mot de passe.

En terminal :

nano ~/.bin/wakeup-events.sh

avec le contenu suivant :

#!/bin/bash
# Disable wakeup events

echo EHC1 > /proc/acpi/wakeup
echo EHC2 > /proc/acpi/wakeup
echo NXUC > /proc/acpi/wakeup

(Remplacer en conséquence : par exemple EHC1, EHC2, NXUC).

N'oubliez pas :

sudo systemctl enable wakeup-events

Et reboot .

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