Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Mar 2008 04:11:09 -0500
From:      Anish Mistry <amistry@am-productions.biz>
To:        freebsd-usb@freebsd.org
Cc:        Andriy Gapon <avg@icyb.net.ua>
Subject:   Utility to Suspend/Disable/Enable Power Off USB ports
Message-ID:  <200803050411.17074.amistry@am-productions.biz>

next in thread | raw e-mail | index | archive | help
--nextPart3042565.XioZt6oEyu
Content-Type: multipart/mixed;
  boundary="Boundary-01=_tOmzHfSfSNJmvWy"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

--Boundary-01=_tOmzHfSfSNJmvWy
Content-Type: text/plain;
  charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

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

WARNING: This program may eat your lunch and kick your dog.  You've=20
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.=20
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),=20
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),=20
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),=20
Intel(0x0000), rev 1.00
 port 1 powered
 port 2 addr 2: full speed, power 100 mA, config 1, Fingerprint=20
Sensor(0x2580), vendor 0x08ff(0x08ff), rev 6.23
Controller /dev/usb3:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000),=20
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),=20
Intel(0x0000), rev 1.00
 port 1 powered
 port 2 powered
 port 3 addr 2: high speed, self powered, config 1, product=20
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),=20
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=20
Camera(0x3343), Vimicro Corp.(0x0ac8), rev 1.00


Since my built-in USB camera draws power when not in use, I'll suspend=20
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),=20
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),=20
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),=20
Intel(0x0000), rev 1.00
 port 1 powered
 port 2 addr 2: full speed, power 100 mA, config 1, Fingerprint=20
Sensor(0x2580), vendor 0x08ff(0x08ff), rev 6.23
Controller /dev/usb3:
addr 1: full speed, self powered, config 1, UHCI root hub(0x0000),=20
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),=20
Intel(0x0000), rev 1.00
 port 1 powered
 port 2 powered
 port 3 addr 2: high speed, self powered, config 1, product=20
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),=20
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.
=2D-=20
Anish Mistry
amistry@am-productions.biz
AM Productions http://am-productions.biz/

--Boundary-01=_tOmzHfSfSNJmvWy--

--nextPart3042565.XioZt6oEyu
Content-Type: application/pgp-signature; name=signature.asc 
Content-Description: This is a digitally signed message part.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (FreeBSD)

iD8DBQBHzmOtxqA5ziudZT0RAsHdAJ9NZi70JvRFa6dXN+Ev/Y4nBJFhQACg4D8s
cr7A9oeRWxoMWf7tv1ez8qc=
=Ml36
-----END PGP SIGNATURE-----

--nextPart3042565.XioZt6oEyu--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200803050411.17074.amistry>