Wie kann ich die automatische USB-Suspendierung für ein bestimmtes Gerät deaktivieren?

18

Dies hängt mit dem Problem zusammen, das unter Drahtlose Maus friert im Akkubetrieb vorübergehend ein (Standby) .

Zusammenfassung: Die Maus friert bei Batteriebetrieb ein, da sie nach einer bestimmten Zeit automatisch suspendiert wird und mehr Zeit zum Aufwachen benötigt.

Das Deaktivieren der automatischen USB-Suspendierung für den Mausempfänger in PowerTOP ist eine vorübergehende Lösung, übersteht jedoch einen Neustart nicht.

Wie kann ich den automatischen USB-Suspend für nur ein bestimmtes Gerät dauerhaft deaktivieren ?

Eine Lösung, bei der keine zusätzlichen Pakete installiert werden, wird bevorzugt (schließlich möchte ich etwas deaktivieren ), ist jedoch nicht erforderlich. Das Entfernen von PowerTOP (das scheint für einige eine Lösung zu sein) ist nicht das, was ich will - ich mag PowerTOP ...

Und die Installation laptop-mode-toolszum Deaktivieren von USB-Autosuspend ist auch nicht das, was ich will, daher die neue Frage.

Außerdem: Wirkt sich das auf den Akku meines Notebooks aus? Der Logitech Unifying-Empfänger für die Maus bleibt die ganze Zeit verbunden. Wenn dies verhindert, dass die automatische Unterbrechung für alle Geräte auftritt, ist dies wahrscheinlich nicht der Fall.

black_puppydog
quelle

Antworten:

25

Ubuntu 16.04 (Xenial Xerus)

sudo apt install tlp
sudo lsusb

Suchen Sie die Eingangs-ID des USB-Geräts - sie sollte so aussehen 1234:5678.

Bearbeiten Sie die Datei sudo vi /etc/default/tlpund fügen Sie die Eingabe-ID Ihres Geräts USB_BLACKLISThinzu, indem Sie die folgende Zeile mit der Eingabe-ID Ihres Geräts wie folgt einfügen:

USB_BLACKLIST="1234:5678"

Ubuntu 14.04 (Trusty Tahr)

Wie hier bei Hekticgeek.com erwähnt , besteht der Trick aus zwei Teilen:

Verwenden Sie lsusb, um die Geräte-IDs der USB-Geräte zu ermitteln, für die Sie die automatische Suspendierung deaktivieren möchten.

Und fügen sie dann AUTOSUSPEND_USBID_BLACKLISTin die Konfigurationsdatei /etc/laptop-mode/conf.d/runtime-pm.conf( usb-autosuspend.confbis Ubuntu 14.04) ein (Details sind dort ebenfalls gut dokumentiert).

dlukes
quelle
Tatsächlich ging meine Maus kurz darauf verloren / wurde gestohlen, daher kann ich das nicht testen. Aber nach der .confAkte zu urteilen, ist genau das, was ich mir erhofft habe :)
black_puppydog
Sieht aus wie es AUTOSUSPEND_RUNTIME_DEVID_BLACKLISTjetzt ist (Ubuntu 17.04)
etwas
2
Die Ubuntu-Laptops von Dell mit Ubuntu 16.04 LTS wurden nicht tlpinstalliert. laptop-mode-toolsWenn Sie also möchten, dass USB-Geräte auf diesen Laptops nicht automatisch in den Suspend-Modus versetzt werden, legen Sie die USB_BLACKLISTEinstellung in der Datei fest /etc/default/tlp- die Änderungen werden sofort
wirksam
HIDs werden bereits von tlp: / etc / default / tlp auf die schwarze Liste gesetzt. # Hinweis: Eingabegeräte (usbhid) werden automatisch ausgeschlossen (siehe unten). # USB_BLACKLIST = "045e: 07a5"
Tom
In der TLP-Dokumentation wird erwähnt, dass es sich um eine Energieverwaltung für Laptops handelt (genauer gesagt für ThinkPad). Funktioniert es für Desktop-PCs?
Konrad Rudolph
7

Ich hatte ein ähnliches Problem mit PCs auf einem Avocent KVM , auf denen keine Tools für den Laptop-Modus installiert waren (und die ich auf keinen Fall so lösen wollte). In meinem Fall hat das automatische Suspendieren des KVM zu einem fehlerhaften Verhalten von Tastatur und Maus geführt (nach einigen Sekunden im Leerlauf wurden die Eingabedaten angehalten und gingen für eine Weile verloren, bis sie durch Klicken und Schütteln aufgeweckt wurden).

Als ich PowerTOP ausführte und die automatische USB-Suspendierung für den Avocent ausschaltete, sagte mir PowerTOP, dass der Befehl zum Deaktivieren über die Befehlszeile lautete:

echo 'on' > '/sys/bus/usb/devices/3-10/power/control'

Das '3-10'-Bit ist auf verschiedenen Systemen unterschiedlich. Ich bin mir nicht sicher, wie ich das bestimmen soll, außer dass PowerTOP ausgeführt wird, aber es gibt wahrscheinlich einen Weg.

Stattdessen habe ich eine udev- Regel verwendet, um der Produkt-ID meines Geräts zu entsprechen:

trent + 14.04: /etc/udev/rules.d$ cat 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"

Um die richtigen udev-Informationen zu erhalten, habe ich ausgeführt:

udevadm info -a --path /sys/bus/usb/devices/N-N
Bryce
quelle
6

In /etc/laptop-mode/conf.d/usb-autosuspend.conffinden Sie:

# Enable USB autosuspend feature?
# Set to 0 to disable
CONTROL_USB_AUTOSUSPEND="auto"

Sie sollten es in ändern CONTROL_USB_AUTOSUSPEND="0".

Dadurch wird jedes USB-Gerät automatisch auf den Wert "Ein" gesetzt /sys/bus/usb/devices/"DEVICE ID"/power/control. Dadurch wird der Wert der Autosuspend-Dateien deaktiviert:

$ cat /sys/bus/usb/devices/"DEVICE ID"/power/autosuspend
2
$ cat /sys/bus/usb/devices/"DEVICE ID"/power/autosuspend_delay_ms
2000
Mahmoud Mubarak
quelle
5

Die Energieoptionen für ein USB-Gerät sind in /sys/bus/usb/devices/n-n/power. Unglücklicherweise erfordert es einige Zeit, um herauszufinden, was nn für ein bestimmtes Gerät ist, und ich denke, dies wird ein Stolperstein sein, wenn es darum geht, ein Skript zu haben, das dies automatisch tut

echo -1 > /sys/bus/usb/devices/3-2/power/autosuspend

um die automatische Suspendierung auf diesem Gerät zu deaktivieren. Das magische nn erscheint tatsächlich in der Ausgabe von

udevadm info --export-db

Ich denke also, Udev wird dein Freund hier sein. Eine Art udev-Skript, das auf einen Parameter angewendet wird, der Ihre Maus identifiziert, und dann ein Skript ausführt, das -1 in die entsprechende Datei überträgt.

Alex Dekker
quelle
4
Wird dies einen Neustart überleben? Das Echo in / sys scheint nicht permanent zu sein, nicht wahr?
black_puppydog
2
Geben Sie den Befehl in Ihrer /etc/rc.local vor der Zeile 'exit 0' ein
Bryce
4

Ich habe meine eigene udev- Regel erstellt:

ACTION=="add", ATTR{idVendor}=="0cf3", ATTR{idProduct}=="3004", RUN="/bin/sh -c 'echo 0 >/sys/\$devpath/authorized'"
trey
quelle
2

In Ubuntu 16.04 LTS (Xenial Xerus) habe ich eine Lösung gefunden in /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

Es war ursprünglich 2für mich eingestellt. 30 Minuten ist weitaus sinnvoller.

Nach der Änderung machen Sie:

sudo service laptop-mode restart

Ich bin immer noch nicht sicher, wie ich es vollständig deaktivieren soll, aber das ist für mich jetzt in Ordnung.

Berto
quelle