Nota. La información en esta respuesta es relevante para los núcleos más antiguos (hasta 2.6.32). Consulte la respuesta de tlwhitec para obtener información sobre los núcleos más nuevos.
# disable external wake-up; do this only once
echo disabled > /sys/bus/usb/devices/usb1/power/wakeup
echo on > /sys/bus/usb/devices/usb1/power/level # turn on
echo suspend > /sys/bus/usb/devices/usb1/power/level # turn off
(Es posible que deba cambiar usb1 a usb n )
Fuente:Documentación/usb/power-management.txt.gz
Según los docs , hubo varios cambios en la administración de energía USB de kernels 2.6.32 , que parecen instalarse en 2.6.38 . Ahora deberá esperar a que el dispositivo esté inactivo. , que se rige por el controlador de dispositivo particular. El controlador debe admitirlo; de lo contrario, el dispositivo nunca alcanzará este estado. Desafortunadamente, ahora el usuario no tiene posibilidad de forzar esto. Sin embargo, si tiene suerte y su dispositivo puede quedar inactivo, entonces para desactivarlo necesita:
echo "0" > "/sys/bus/usb/devices/usbX/power/autosuspend"
echo "auto" > "/sys/bus/usb/devices/usbX/power/level"
o, para núcleos alrededor de 2.6.38 y superiores:
echo "0" > "/sys/bus/usb/devices/usbX/power/autosuspend_delay_ms"
echo "auto" > "/sys/bus/usb/devices/usbX/power/control"
Esto significa literalmente, ve a suspender en el momento en que el dispositivo se vuelve inactivo.
Entonces, a menos que su ventilador sea algo "inteligente" que pueda ser visto como un dispositivo y controlado por un controlador, probablemente no tendrá mucha suerte con los núcleos actuales.