Jeśli na komputerze działa stare jądro, możesz echo suspend > /sys/bus/usb/devices/X-X/power/level
wymusić zawieszenie urządzenia.
Jednak od wersji 2.6.32 nie jest to już możliwe:
Zdarzenia zarządzania energią możemy podzielić na dwie szerokie klasy: zewnętrzną i wewnętrzną. Zdarzenia zewnętrzne to te, które są wyzwalane przez jakiegoś agenta spoza stosu USB: zawieszanie / wznawianie systemu (uruchamiane przez przestrzeń użytkownika), ręczne wznawianie dynamiczne (również uruchamiane przez przestrzeń użytkownika) i zdalne wybudzanie (uruchamiane przez urządzenie). Zdarzenia wewnętrzne to zdarzenia uruchamiane w stosie USB : automatyczne zawieszanie i automatyczne wznawianie. Zauważ, że wszystkie dynamiczne zdarzenia zawieszenia są wewnętrzne ; agenci zewnętrzni nie mogą wydawać dynamicznych zawieszeń.
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.
(z http://www.kernel.org/doc/Documentation/usb/power-management.txt )
Myślę, że najlepszą rzeczą, jaką możesz zrobić, jest usunięcie powiązania urządzenia ze sterownikiem , aby nie było na nim żadnej aktywności, a następnie skonfigurowanie urządzenia do automatycznego zawieszania tak szybko, jak to możliwe ( echo auto > /sys/bus/usb/devices/X-X/power/control && echo 0 > /sys/bus/usb/devices/X-X/power/autosuspend_delay_ms
).
Jednak, o ile rozumiem specyfikacje USB , nawet jeśli zawiesisz urządzenie, pozostanie trochę zasilania na porcie, więc wyłączenie diody LED może być niemożliwe, jeśli jest zasilane przez „głupi” schemat (tj. Bezpośrednio podłączony do + 5 V i GND szpilki).