Якщо ваша машина працює зі старим ядром, ви можете echo suspend > /sys/bus/usb/devices/X-X/power/level
видалити призупинення роботи пристрою.
Однак з 2.6.32 це вже неможливо:
Ми можемо класифікувати події управління енергією у двох широких класах: зовнішній та внутрішній. Зовнішні події - це ті, що викликаються деяким агентом поза стеком USB: призупинення / відновлення системи (викликане простором користувача), відновлення динамічного вручну (також викликане простором користувача) та віддалене пробудження (викликане пристроєм). Внутрішні події - це ті, що спрацьовують усередині USB-стеку : автозапуск і автозапуск Зауважте, що всі динамічні події призупинення є внутрішніми ; зовнішнім агентам заборонено видавати динамічні призупинення.
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.
(з http://www.kernel.org/doc/Documentation/usb/power-management.txt )
Я думаю, що найкраще, що ви можете зробити, - це від’єднати пристрій від драйвера , так що на ньому не буде активності, а потім налаштувати пристрій якнайшвидше ( echo auto > /sys/bus/usb/devices/X-X/power/control && echo 0 > /sys/bus/usb/devices/X-X/power/autosuspend_delay_ms
).
Однак, наскільки я розумію специфікації USB , навіть якщо ви призупинили пристрій, деяка потужність на порту залишатиметься, тому може бути неможливо відключити світлодіод, якщо він працює за схемою "німий" (тобто безпосередньо підключений до + 5 В та GND шпильки).