web-dev-qa-db-fra.com

Comment puis-je désactiver usb-autosuspend pour un périphérique spécifique?

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.

17
black_puppydog

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).

21
dlukes

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
6
Bryce

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
5
Mahmoud Mubarak

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é '"

3
trey

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é.

3
Alex Dekker

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.

1
Berto