Wenn auf Ihrem Computer ein alter Kernel ausgeführt wird, können Probleme auftreten echo suspend > /sys/bus/usb/devices/X-X/power/level
, um das Anhalten des Geräts zu erzwingen.
Seit 2.6.32 ist dies jedoch nicht mehr möglich:
Wir können Energieverwaltungsereignisse in zwei große Klassen einteilen: externe und interne. Externe Ereignisse sind solche, die von einem Agenten außerhalb des USB-Stacks ausgelöst werden: System-Suspend / Resume (ausgelöst durch Userspace), manuelle dynamische Wiederaufnahme (ebenfalls ausgelöst durch Userspace) und Remote Wakeup (ausgelöst durch das Gerät). Interne Ereignisse werden im USB-Stack ausgelöst : Autosuspend und Autoresume. Beachten Sie, dass alle dynamischen Suspend-Ereignisse intern sind . Externe Agenten dürfen keine dynamischen Suspends ausgeben.
power/control
This file contains one of two words: "on" or "auto".
You can write those words to the file to change the
device's setting.
"on" means that the device should be resumed and
autosuspend is not allowed. (Of course, system
suspends are still allowed.)
"auto" is the normal state in which the kernel is
allowed to autosuspend and autoresume the device.
(In kernels up to 2.6.32, you could also specify
"suspend", meaning that the device should remain
suspended and autoresume was not allowed. This
setting is no longer supported.
(von http://www.kernel.org/doc/Documentation/usb/power-management.txt )
Ich denke, das Beste, was Sie tun können, ist, das Gerät vom Treiber zu trennen , damit keine Aktivität darauf auftritt, und das Gerät dann so zu konfigurieren, dass es so schnell wie möglich automatisch suspendiert wird ( echo auto > /sys/bus/usb/devices/X-X/power/control && echo 0 > /sys/bus/usb/devices/X-X/power/autosuspend_delay_ms
).
Soweit ich die USB-Spezifikationen verstehe , bleibt jedoch auch beim Anhalten des Geräts ein gewisser Einschaltanschluss erhalten, sodass die LED möglicherweise nicht deaktiviert werden kann, wenn sie über ein "dummes" Schema betrieben wird (dh direkt an +5 V und GND angeschlossen ist) Stifte).