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.