How do you check how much power a USB port can deliver?
Under Linux, you can see this in the tree of lsusb -v
.
Specifically, call lsusb -v |grep 'Bus\|MaxPower'
to avoid excessive output.
Debian / Ubuntu:
Use
sudo aptitude install usbutils
to obtain this tool.Redhat / Fedora:
Use
sudo yum install usbutils
to obtain this tool.Gentoo:
Use
sudo emerge usbutils
to obtain this tool.
A solution on Windows which doesn't require additional software is the Device Manager itself:
Go to Device Manager (
devmgmt.msc
)Click View > Devices by connection.
Click on your Machine Name, hit the * to expand everything.
Look through the properties of the different USB Hubs, you can see what devices are connected.
On the power tab, you get to see the power a device is consuming and what is being offered.
Just like Jeff Atwood explained, the total power available is
500 mA
standard.On the advanced tab, you get to see bandwidth information.
So, this should allow you to see which port provides more power and even power consumption.
If you have bandwidth problems where USB devices work slowly you can also use this to troubleshoot...
One (very cool!) way I found:
https://web.archive.org/web/20130529073635/http://www.ultramobilegeek.com/2007/02/measuring-power-on-peripherals-usb.html
When I write peripheral reviews for ultra-mobile devices, people constantly ask me how significant the power draw is for the device. Previously, I had no answer. Today, I whipped up a rough way to find a solution.
I call it my USB Drawbox. Attached to a multimeter, it measures the number of milliamperes (mA) any given device pulls over USB. Generally, devices will request up to 500 mA. Above that, standard ports will shut down power to the device. Some devices, notably external hard drives and CD-ROM drives, can pull power from two USB ports simultaneously using a Y connector.
This little DIY hack requires a tiny bit of solder, a tiny bit of Dremel skills, and a whole lot of testing and tweaking. The way I did it - in a metal Penguin Mints tin - required some VERY careful insulation on the screws that went through the banana jacks. Other than that, it was pretty straightforward.
I'm not sure why the accepted answer is so upvoted, hwinfo --usb
doesn't provide any power information, neither does lsusb -v -t
. See for yourself:
hwinfo
(Ubuntu 12.04)
% lsb_release -a|grep Des
Description: Ubuntu 12.04.1 LTS
% hwinfo --usb
...
...
14: USB 00.0: 10900 Printer
[Created at usb.122]
UDI: /org/freedesktop/Hal/devices/usb_device_4a9_1069_206NL6_if0_printer_noserial
Unique ID: IO+7.s5u63YPdXG8
Parent ID: Uc5H.d7FDLX76qXB
SysFS ID: /devices/pci0000:00/0000:00:12.2/usb1/1-4/1-4.4/1-4.4:1.0
SysFS BusID: 1-4.4:1.0
Hardware Class: printer
Model: "Canon S820"
Hotplug: USB
Vendor: usb 0x04a9 "Canon"
Device: usb 0x1069 "S820"
SubVendor: "Canon"
SubDevice: "S820"
Revision: "1.02"
Serial ID: "206NL6"
Driver: "usblp"
Driver Modules: "usblp"
Device File: /dev/usb/lp0
Device Number: char 180:0
Speed: 12 Mbps
Module Alias: "usb:v04A9p1069d0102dc00dsc00dp00ic07isc01ip02"
Driver Info #0:
Driver Status: usblp is active
Driver Activation Cmd: "modprobe usblp"
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #11 (Hub)
(Fedora 14)
% lsb_release -a|grep Desc
Description: Fedora release 14 (Laughlin)
% hwinfo --usb
...
...
09: USB 00.0: 10e00 Chipcard Reader
[Created at usb.122]
Unique ID: Bgjr.EgDcOidyXjF
Parent ID: FKGF.0j9+vWlqL56
SysFS ID: /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0
SysFS BusID: 2-1.5:1.0
Hardware Class: chipcard
Model: "Lenovo Integrated Smart Card Reader"
Hotplug: USB
Vendor: usb 0x17ef "Lenovo"
Device: usb 0x1003 "Integrated Smart Card Reader"
Revision: "1.00"
Driver: "usbfs"
Driver Modules: "usbcore"
Speed: 12 Mbps
Module Alias: "usb:v17EFp1003d0100dc00dsc00dp00ic0Bisc00ip00"
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #6 (Hub)
lsbusb -v -t
(Ubuntu 12.04)
% lsusb -v -t
/: Bus 07.Port 1: Dev 1, Class=root_hub, Driver=ohci_hcd/2p, 12M
/: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=ohci_hcd/3p, 12M
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=ohci_hcd/3p, 12M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ohci_hcd/3p, 12M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ohci_hcd/3p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/6p, 480M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/6p, 480M
|__ Port 4: Dev 3, If 0, Class=hub, Driver=hub/4p, 480M
|__ Port 3: Dev 5, If 0, Class=stor., Driver=usb-storage, 480M
|__ Port 4: Dev 4, If 0, Class=print, Driver=usblp, 12M
(Fedora 14)
% lsusb -v -t
Bus# 2
`-Dev# 1 Vendor 0x1d6b Product 0x0002
`-Dev# 2 Vendor 0x8087 Product 0x0020
|-Dev# 3 Vendor 0x046d Product 0xc521
`-Dev# 4 Vendor 0x17ef Product 0x1003
Bus# 1
`-Dev# 1 Vendor 0x1d6b Product 0x0002
`-Dev# 2 Vendor 0x8087 Product 0x0020
So what does work?
Just a regular old lsusb -v
does provide the power info.
% lsusb -v|egrep "^Bus|MaxPower"
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
MaxPower 0mA
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
MaxPower 0mA
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
MaxPower 0mA
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
MaxPower 0mA
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
MaxPower 0mA
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
MaxPower 0mA
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
MaxPower 0mA
Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
MaxPower 100mA
Bus 003 Device 002: ID 046d:c517 Logitech, Inc. LX710 Cordless Desktop Laser
MaxPower 98mA
Bus 001 Device 004: ID 04a9:1069 Canon, Inc. S820
MaxPower 2mA
Bus 001 Device 005: ID 05ac:120a Apple, Inc. iPod Nano
MaxPower 500mA
MaxPower 500mA
NOTE: It should be noted that this does not seem to show the maximum amount the port can deliver, but the maximum amount the device can draw at the given port it’s connected to.
Additional comments
Also I should mention that hwinfo
was not a standard package that was available for my particular version of Fedora. I had to download and compile for myself on Fedora!