Se sua máquina executar o kernel antigo, você poderá emitir echo suspend > /sys/bus/usb/devices/X-X/power/level
para forçar a suspensão do dispositivo.
No entanto, desde 2.6.32, isso não é mais possível:
Podemos categorizar eventos de gerenciamento de energia em duas grandes classes: externa e interna. Eventos externos são aqueles acionados por algum agente fora da pilha USB: suspensão / retomada do sistema (acionada pelo espaço do usuário), retoma dinâmica manual (também acionada pelo espaço do usuário) e ativação remota (acionada pelo dispositivo). Eventos internos são aqueles acionados na pilha USB : suspensão automática e retoma automática. Observe que todos os eventos de suspensão dinâmica são internos ; agentes externos não têm permissão para emitir suspensões dinâmicas.
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.
(em http://www.kernel.org/doc/Documentation/usb/power-management.txt )
Acho que a melhor coisa que você pode fazer é desvincular o dispositivo do driver , para que não haja atividade e, em seguida, configure o dispositivo para suspender automaticamente o mais rápido possível ( echo auto > /sys/bus/usb/devices/X-X/power/control && echo 0 > /sys/bus/usb/devices/X-X/power/autosuspend_delay_ms
).
No entanto, tanto quanto eu entendo as especificações USB , mesmo se você suspender o dispositivo, alguma porta de energia permanecerá, portanto, pode ser impossível desativar o led se ele for alimentado por um esquema 'burro' (isto é, diretamente conectado a + 5V e GND pinos).