Réveiller son Ubuntu à partir d'un périphérique USB

J’ai maintenant l’habitude de mettre le PC en veille plutôt que de l’éteindre, et de le “réveiller” d’un simple appui sur une touche du clavier. C’est d’abord beaucoup plus rapide qu’un redémarrage, et l’on retrouve tout son environnement tel qu’il était au moment de la mise en veille.

Sauf que… cela fait deux fois que suite à des mises à jour d’Ubuntu, je perds cette fonctionnalité : l’appui d’une touche clavier ne réveille plus le PC, il faut que je me baisse pour appuyer sur le bouton ON/OFF. Rien de pire que la perte d’un truc très pratique !

Info

FEV. 2022 : J’ai fini par trouver pourquoi cette sortie de veille par clavier ne fonctionnait pas ou de manière aléatoire. Mon problème était lié au microcode Intel installé par le système. Voir cet article pour plus d’information.

Info

SEPT. 2020 : Depuis cet article qui date un peu maintenant, j’ai eu l’occasion de faire une réinstallation complète du système, avec Ubuntu 20.04. La sortie de veille par le clavier a fonctionné de suite, sans manipulation particulière.

Puis je me suis rendu compte qu’au gré des mises à jour système, cette fonctionnalité disparaissait puis revenait, pour disparaître à nouveau.
J’ai fini par mettre à jour le BIOS de la carte mère, mais cela n’a fondamentalement rien changé au caractère aléatoire de la chose.
-=-
Par contre, la règle “udev” créée dans cet article n’existe pas par défaut. Je ne sais pas comment le système gère cela de façon native, seul le clavier est bien configuré à “enabled” dans “../power/wakeup”.
-=-

Alors voilà, à vous de voir, un conseil : commencez par mettre votre BIOS à jour, c’est la première chose à faire. !

Et sachez que créer ces règles ne règle pas forcément le problème… Ça peut être bien de tester cette solution, sans plus. :sad:

Après quelques recherches sur internet, je suis d’abord tombé sur cette page d’AskUbuntu : Wake up from suspend using wireless usb keyboard or mouse (for any linux distro). J’ai effectué les deux manips, et cela a fonctionné jusqu’à il y a quelques jours : retour au bouton ON/OFF !

Nouvelle recherche, et cette fois je suis tombé sur une manipulation plus complète, et qui a fonctionné : Ubuntu - Resume your computer from any USB device (keyboard, mouse, remote, …). La page étant en anglais, je vais résumer sans entrer dans les détails les actions qu’il faut faire.

Côté système, j’utilise Ubuntu 16.04. Je n’ai pas eu besoin d’installer le paquet “zenity”, mais au cas où il n’est pas installé, taper la commande suivante :

sudo apt-get install zenity

Info

Mars-2020 : La commande ‘update-usbids’ n’existe plus, et cette étape n’est à priori plus nécessaire. Passer directement aux scripts.

Il faut aussi mettre à jour la liste des vendeurs de périphériques USB et PCI :

sudo update-usbids

On va se connecter à www.linux-usb.org et récupérer la dernière liste disponible :

Puis deux scripts seront utilisés : le premier va vous lister vos périphériques USB et vous laisser choisir le ou lesquels vous désirez utiliser, puis créer la règle système (udev rule) ; il appelle ensuite le second script (il faudra éditer le premier si vous placez les fichiers ailleurs) qui va configurer la chaîne de connexion du périphérique USB pour le “réveil”.

Je les ai mis à disposition ici : select-resume-devices et enable-wakeup. Il suffit de les enregistrer sur votre système, idéalement dans /usr/local/sbin, puis de leur donner le droit d’exécution :

sudo chmod +x /usr/local/sbin/select-resume-devices
sudo chmod +x /usr/local/sbin/enable-wakeup

Voilà, tout est prêt, il suffit de lancer le premier script :

sudo /usr/local/sbin/select-resume-device.sh

Et la fenêtre suivante s’affiche, permettant de sélectionner le (ou les) périphérique de votre choix (pour moi, ce sera le clavier Logitech “Illuminated Keyboard”) :

Enfin, pour rendre la règle opérationnelle, il faut soit redémarrer le PC, soit débrancher/rebrancher le (ou les) périphérique sélectionnés.

Voilà deux commandes utiles pour identifier les périphériques, et vérifier que celui sélectionné par le premier script est bien activé pour le réveil (le clavier Logitech dans mon cas) :

Et pour ensuite vérifier que la règle a bien été créée :

pascal$ ls /etc/udev/rules.d/
70-snap.canonical-livepatch.rules  70-snap.core.rules
70-snap.chromium.rules             90-hid-wakeup-enable.rules
[~]
pascal$ more /etc/udev/rules.d/90-hid-wakeup-enable.rules
# udev rule for USB wake-up of selected devices
#
# Logitech, Inc. Illuminated Keyboard
SUBSYSTEM=="usb", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c318" RUN+="/usr/local/bin/enable-wakeup $env{DEVPATH}"
[~]

Enfin, si la fonctionnalité disparaît à nouveau suite à une mise à jour, il faudra simplement relancer le script.

Il faut parfois insister un peu (voir un des commentaires), je ne sais pas trop pourquoi, mais cela finit par fonctionner. Ça m’est arrivé aussi récemment avec Ubuntu 19.10.

Pour finir, je ne l’ai pas mentionné, mais il faut que l’option soit activée dans le BIOS du PC (genre USB Wake Enable).

Blog ouvert depuis le 25 décembre 2005
Généré avec Hugo
Thème Stack conçu par Jimmy