Ceci est lié à la question discutée dans cette question . Résumé: la souris se bloque lorsqu’elle fonctionne sur batterie car elle est suspendue automatiquement après un certain temps et nécessite plus de temps pour se réveiller. Désactiver usb-autosuspend pour le récepteur de la souris dans powertop est une solution temporaire, mais ne survit pas au redémarrage.
Comment puis-je désactiver de manière permanente l’usosuspend usb pour seulement un périphérique spécifique ?
Une solution qui ne nécessite pas l'installation de paquets supplémentaires est préférable (après tout, je veux désactiver quelque chose) mais pas obligatoire. Supprimer powertop (ce qui semble être une solution pour certains) n’est pas ce que je veux - j’aime bien poertop ... Et installer laptop-mode-tools
pour désactiver usb_autosuspend n’est pas ce que je veux, d’où la nouvelle question.
Aussi: cela affectera-t-il la batterie de mon ordinateur portable? Le récepteur unificateur logitech pour la souris reste connecté en permanence. Par conséquent, si cela empêche la suspension automatique de se produire pour tous les périphériques, cela serait probablement mauvais.
Ubuntu 16.04
Sudo apt install tlp
Sudo lsusb
Trouvez l'ID d'entrée du périphérique USB - devrait ressembler à 1234:5678
Editez le fichier Sudo vi /etc/default/tlp
et ajoutez l'ID d'entrée de votre appareil à USB_BLACKLIST
en ajoutant la ligne suivante avec l'ID d'entrée de votre appareil, comme suit:
USB_BLACKLIST="1234:5678"
Ubuntu 14.04
Comme mentionné ici à hecticgeek.com , le tour consiste en deux parties:
Utilisez lsusb
pour déterminer les ID de périphérique des périphériques USB pour lesquels vous souhaitez désactiver la suspension automatique.
Ensuite, ajoutez-les à AUTOSUSPEND_USBID_BLACKLIST
dans le fichier de configuration /etc/laptop-mode/conf.d/runtime-pm.conf
(usb-autosuspend.conf
jusqu’à Ubuntu 14.04) (les détails y sont également bien décrits).
J'ai eu un problème similaire avec les PC sur un KVM Avocent, où les outils de mode portable ne sont pas installés (et je ne voulais en aucun cas le résoudre de cette façon). Dans mon cas, suspendre automatiquement le KVM faisait que le clavier et la souris se comportaient de manière erratique (après quelques secondes d'inactivité, ils suspendaient et perdaient les données d'entrée pendant un certain temps jusqu'à ce que suffisamment de clics et de tremblements les réveillent.)
Lorsque j'ai exécuté powertop et basculé la suspension automatique USB pour Avocent, powertop m'a dit que la commande pour le désactiver à partir de la ligne de commande était la suivante:
echo 'on' > '/sys/bus/usb/devices/3-10/power/control'
Le bit '3-10' sera différent sur différents systèmes. Je ne sais pas comment déterminer cela autrement qu'en exécutant powertop, mais il y a probablement un moyen.
Au lieu de cela, j'ai utilisé une règle udev pour faire correspondre l'ID de produit de mon périphérique:
trent + 14.04: /etc/udev/rules.d$ chat 10-usb-avocent-kvm-pm.rules
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0624", ATTR{idProduct}=="0013", ATTR{product}=="SC Secure KVM", TEST=="power/control", ATTR{power/control}:="on"
Pour obtenir les informations udev appropriées, j’ai couru:
udevadm info -a --path /sys/bus/usb/devices/N-N
Vous trouverez dans /etc/laptop-mode/conf.d/usb-autosuspend.conf
:
# Enable USB autosuspend feature?
# Set to 0 to disable
CONTROL_USB_AUTOSUSPEND="auto"
Vous devriez le changer en CONTROL_USB_AUTOSUSPEND="0"
Cela donnera automatiquement à tout périphérique USB une valeur "on" dans /sys/bus/usb/devices/"DEVICE ID"/power/control
. Cela désactivera la valeur des fichiers autosuspend:
$ cat /sys/bus/usb/devices/"DEVICE ID"/power/autosuspend
2
$ cat /sys/bus/usb/devices/"DEVICE ID"/power/autosuspend_delay_ms
2000
J'ai créé ma propre règle udev: ACTION == "add", ATTR {idVendor} == "0cf3", ATTR {idProduct} == "3004", RUN = "/ bin/sh -c 'echo 0>/sys/\ $ devpath/autorisé '"
Les options d'alimentation pour un périphérique USB sont dans /sys/bus/usb/devices/n-n/power
. Malheureusement, ce que n-n représente pour un périphérique donné demande un peu de temps pour le déterminer. Je pense donc que cela constituera une pierre d'achoppement lorsqu'il s'agira de disposer d'un script qui fonctionne automatiquement.
echo -1 > /sys/bus/usb/devices/3-2/power/autosuspend
désactiver la suspension automatique sur cet appareil. La magie n-n apparaît réellement dans la sortie de
udevadm info --export-db
donc je pense que udev sera votre ami ici; une sorte de script udev associé à un paramètre qui identifie votre souris, puis exécute un script qui renvoie -1 dans le fichier approprié.
Dans Ubuntu 16.04LTS, j'ai trouvé une solution dans /etc/laptop-mode/conf.d/runtime-pm.conf
:
# Auto-Suspend timeout in seconds
# Number of seconds after which the USB devices should suspend
AUTOSUSPEND_TIMEOUT=1800
Il a été défini à l'origine pour 2
pour moi. 30 minutes, c'est beaucoup plus raisonnable.
Sudo service laptop-mode restart
Vous ne savez toujours pas comment le désactiver complètement, mais tout va bien pour moi maintenant.