linuxusb

Controlling a USB power supply (on/off) with Linux


Is it possible to turn on/off power supplies from USB manually with Linux?

There's this external USB cooling fan (the kind you use to cool yourself off, not the PC), and it would be nice to be able to control it from the terminal, because I want to position the fan somewhere far away.

I suppose this could also be useful for a variety of other things as well, because there's a lot of USB toys out there. Maybe air purifiers, etc. (I heard they don't really work though).


Solution

  • Note. The information in this answer is relevant for the older kernels (up to 2.6.32). See tlwhitec's answer for the information on the newer kernels.

    # 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
    

    (You may need to change usb1 to usb n)

    Source: Documentation/usb/power-management.txt.gz