[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Utility to Suspend/Disable/Enable Power Off USB ports



I've written the upower utility allows you to selectively suspend usb 
ports.  It acts similar to the Windows "Stop Removable Device" 
process.  It has only been tested on 7.0-RELEASE.

WARNING: This program may eat your lunch and kick your dog.  You've 
been warned.

Download and compile.

fetch http://am-productions.biz/docs/upower.c
gcc -o upower upower.c

You will need to be root or have rw access to the uhub devices. 
eg. /dev/usbX

Use "usbdevs -v" to find the port/device to suspend.
# usbdevs -v
Controller /dev/usb0:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), 
Intel(0x0000), rev 1.00
 port 1 powered
 port 2 powered
Controller /dev/usb1:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), 
Intel(0x0000), rev 1.00
 port 1 powered
 port 2 addr 2: low speed, power 100 mA, config 1, product 0x0009
(0x0009), vendor 0x045e(0x045e), rev 1.05
Controller /dev/usb2:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), 
Intel(0x0000), rev 1.00
 port 1 powered
 port 2 addr 2: full speed, power 100 mA, config 1, Fingerprint 
Sensor(0x2580), vendor 0x08ff(0x08ff), rev 6.23
Controller /dev/usb3:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), 
Intel(0x0000), rev 1.00
 port 1 powered
 port 2 powered
Controller /dev/usb4:
addr 1: high speed, self powered, config 1, EHCI root hub(0x0000), 
Intel(0x0000), rev 1.00
 port 1 powered
 port 2 powered
 port 3 addr 2: high speed, self powered, config 1, product 
0x005a(0x005a), vendor 0x0409(0x0409), rev 1.00
  port 1 powered
  port 2 powered
  port 3 powered
  port 4 powered
 port 4 powered
Controller /dev/usb5:
addr 1: high speed, self powered, config 1, EHCI root hub(0x0000), 
Intel(0x0000), rev 1.00
 port 1 powered
 port 2 powered
 port 3 powered
 port 4 addr 2: high speed, power 320 mA, config 1, Sirius USB2.0 
Camera(0x3343), Vimicro Corp.(0x0ac8), rev 1.00


Since my built-in USB camera draws power when not in use, I'll suspend 
it to save battery time.

# ./upower /dev/usb5 4 suspend

# usbdevs -v
Controller /dev/usb0:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), 
Intel(0x0000), rev 1.00
 port 1 powered
 port 2 powered
Controller /dev/usb1:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), 
Intel(0x0000), rev 1.00
 port 1 powered
 port 2 addr 2: low speed, power 100 mA, config 1, product 0x0009
(0x0009), vendor 0x045e(0x045e), rev 1.05
Controller /dev/usb2:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), 
Intel(0x0000), rev 1.00
 port 1 powered
 port 2 addr 2: full speed, power 100 mA, config 1, Fingerprint 
Sensor(0x2580), vendor 0x08ff(0x08ff), rev 6.23
Controller /dev/usb3:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000), 
Intel(0x0000), rev 1.00
 port 1 powered
 port 2 powered
Controller /dev/usb4:
addr 1: high speed, self powered, config 1, EHCI root hub(0x0000), 
Intel(0x0000), rev 1.00
 port 1 powered
 port 2 powered
 port 3 addr 2: high speed, self powered, config 1, product 
0x005a(0x005a), vendor 0x0409(0x0409), rev 1.00
  port 1 powered
  port 2 powered
  port 3 powered
  port 4 powered
 port 4 powered
Controller /dev/usb5:
addr 1: high speed, self powered, config 1, EHCI root hub(0x0000), 
Intel(0x0000), rev 1.00
 port 1 powered
 port 2 powered
 port 3 powered
 port 4 addr 2: high speed, power 320 mA, config 1, product 0x3343
(0x3343), vendor 0x0ac8(0x0ac8), rev 1.00

Thanks to Andriy Gapon for pointing me in the correct direction.
-- 
Anish Mistry
amistry_(_at_)_am-productions_(_dot_)_biz
AM Productions http://am-productions.biz/

Attachment: signature.asc
Description: This is a digitally signed message part.


Visit your host, monkey.org