Согласно документам , в управлении питанием USB от ядра 2.6.32 было несколько изменений, которые, похоже, устанавливаются в 2.6 0,38 . Теперь вам нужно подождать, пока устройство не станет idle , которое определяется конкретным драйвером устройства. Драйвер должен поддерживать его, иначе устройство никогда не достигнет этого состояния. К сожалению, теперь у пользователя нет шансов форсировать это. Однако, если вам повезло, и ваше устройство может бездействовать, то чтобы отключить это, вам необходимо:
echo "0" > "/sys/bus/usb/devices/usbX/power/autosuspend"
echo "auto" > "/sys/bus/usb/devices/usbX/power/level"
или, для ядер версии 2.6.38 и выше:
echo "0" > "/sys/bus/usb/devices/usbX/power/autosuspend_delay_ms"
echo "auto" > "/sys/bus/usb/devices/usbX/power/control"
Это буквально означает: иди приостанови в тот момент, когда устройство бездействует.
Так что, если ваш вентилятор не является чем-то «интеллектуальным», который можно рассматривать как устройство и которым управляет драйвер, вам, вероятно, не повезет в современных ядрах.