Remarque. Les informations contenues dans cette réponse sont pertinentes pour les noyaux plus anciens (jusqu'à 2.6.32). Voir la réponse de tlwhitec pour les informations sur les nouveaux noyaux.
# 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
(Vous devrez peut-être changer usb1 en usb n )
Source :Documentation/usb/power-management.txt.gz
D'après les documents , plusieurs modifications ont été apportées à la gestion de l'alimentation USB à partir des noyaux 2.6.32 , qui semblent s'installer en 2.6.38 . Vous devez maintenant attendre que l'appareil devienne inactif , qui est régi par le pilote de périphérique particulier. Le pilote doit le prendre en charge, sinon l'appareil n'atteindra jamais cet état. Malheureusement, l'utilisateur n'a plus aucune chance de forcer cela. Cependant, si vous avez de la chance et que votre appareil peut devenir inactif, pour désactiver cette option, vous devez :
echo "0" > "/sys/bus/usb/devices/usbX/power/autosuspend"
echo "auto" > "/sys/bus/usb/devices/usbX/power/level"
ou, pour les noyaux autour de 2.6.38 et supérieur :
echo "0" > "/sys/bus/usb/devices/usbX/power/autosuspend_delay_ms"
echo "auto" > "/sys/bus/usb/devices/usbX/power/control"
Cela signifie littéralement, allez suspendre au moment où l'appareil devient inactif.
Donc, à moins que votre ventilateur ne soit quelque chose "d'intelligent" qui puisse être considéré comme un périphérique et contrôlé par un pilote, vous n'aurez probablement pas beaucoup de chance avec les noyaux actuels.