# USB uvc webcam not working

## don quixada

Hi, I'm trying to get my USB webcam to work. I think I have the right stuff in the kernel built-in (or as modules) but when I plug it in I get funny errors:

In a USB2 port:

```
[  444.165188] usb 8-2: Not enough bandwidth for altsetting 11

[ 2853.264080] usb 8-2: USB disconnect, device number 3

[ 2857.410263] usb 3-4: new high-speed USB device number 2 using ehci_hcd

[ 2857.529914] usb 3-4: device descriptor read/64, error -32

[ 2857.759256] usb 3-4: device descriptor read/64, error -32

[ 2857.988597] usb 3-4: new high-speed USB device number 3 using ehci_hcd

[ 2858.108254] usb 3-4: device descriptor read/64, error -32

[ 2858.337597] usb 3-4: device descriptor read/64, error -32

[ 2858.566937] usb 3-4: new high-speed USB device number 4 using ehci_hcd

[ 2858.995708] usb 3-4: device not accepting address 4, error -32

[ 2859.115366] usb 3-4: new high-speed USB device number 5 using ehci_hcd

[ 2859.534159] usb 3-4: device not accepting address 5, error -32

[ 2859.534167] hub 3-0:1.0: unable to enumerate USB device on port 4

[ 2859.942988] usb 7-4: new full-speed USB device number 2 using ohci_hcd

[ 2860.092559] usb 7-4: device descriptor read/64, error -32

[ 2860.351814] usb 7-4: device descriptor read/64, error -32

[ 2860.631012] usb 7-4: new full-speed USB device number 3 using ohci_hcd

[ 2860.780582] usb 7-4: device descriptor read/64, error -32

[ 2861.039838] usb 7-4: device descriptor read/64, error -32

[ 2861.319046] usb 7-4: new full-speed USB device number 4 using ohci_hcd

[ 2861.737836] usb 7-4: device not accepting address 4, error -32

[ 2861.907366] usb 7-4: new full-speed USB device number 5 using ohci_hcd

[ 2862.326148] usb 7-4: device not accepting address 5, error -32

[ 2862.326158] hub 7-0:1.0: unable to enumerate USB device on port 4
```

In a USB3 port:

```
[ 3278.175163] usb 8-2: Not enough bandwidth for altsetting 1

[ 3278.175164] 12:3:1: usb_set_interface failed (-22)

[ 3278.175369] xhci_hcd 0000:02:00.0: ERROR: unexpected command completion code 0x11.

[ 3278.175372] usb 8-2: Not enough bandwidth for altsetting 1

[ 3278.175373] 12:3:1: usb_set_interface failed (-22)
```

... and so on.

Also when I try to run the webcam I get:

```
# cheese

libv4l2: error turning on stream: Invalid argument
```

The webcam seems to be detected and there are no errors thrown when the uvcvideo driver is loaded:

```
# v4l2-ctl --list-devices

UVC Camera (046d:0992) (usb-0000:02:00.0-2):

   /dev/video0
```

So I'm not sure what's up. Any clues? TIA

dq

----------

## dch24

I have a uvc webcam. It seems yours is defective, especially as looks like it doesn't even handle the first steps of USB enumeration.

Do you have a link to someone reporting that your model of webcam works on linux?

----------

## don quixada

No, this definitely works in Linux (it's a Logitech) because I had it working with no problems on my old Gentoo box. The only applicable difference between this new box and my old one is that this new box has USB3 ports. Maybe there's an issue with my usb ports on the motherboard? I also have a PCIe usb3 card but I haven't tried those ports out yet.

dq

----------

## stelth

 *don quixada wrote:*   

> Hi, I'm trying to get my USB webcam to work. I think I have the right stuff in the kernel built-in (or as modules) but when I plug it in I get funny errors:
> 
> In a USB2 port:
> 
> ```
> ...

 

There's the key. When setting the camera up, it claims all of the bandwidth it needs for that resolution and frame rate. It seems that this is too high for the USB hub it's attached to. Either lower the frame rate or resolution to something USB 2.0 can support.

EDIT:

Reread your post, and the new motherboard has USB 3.0 not the old one. I'd still suggest lowering the resolution (start at 640x480 and go up) and see if / when it dies there.

----------

## don quixada

How do I lower the resolution on the webcam? For example, does cheese provide a way to start the camera with a lower resolution? How come the camera worked fine with no issues on my old system? The camera is only a USB2 device.

dq

----------

## dch24

Can you post the exact model of Logitech camera?

It still seems like there is some defective hardware. I don't know why or when the defect appeared, but a webcam shouldn't be claiming all the bandwidth of USB 2.0 much less USB 3.0.

Can you try the webcam on a different Linux box?

----------

## don quixada

Hi, ok the device is a Logitech Quickcam Communicate Deluxe and I tried hooking it into the PCIe USB3 slot and it worked! 

```
[94209.388385] usb 10-4: new high-speed USB device number 3 using xhci_hcd

[94209.542353] usb 10-4: New USB device found, idVendor=046d, idProduct=0992

[94209.542357] usb 10-4: New USB device strings: Mfr=0, Product=0, SerialNumber=2

[94209.542359] usb 10-4: SerialNumber: 9EA1BEDC

[94209.544389] uvcvideo: Found UVC 1.00 device <unnamed> (046d:0992)

[94209.578934] input: UVC Camera (046d:0992) as /devices/pci0000:00/0000:00:05.0/0000:03:00.0/usb10/10-4/10-4:1.0/input/input19
```

So what is the problem? Is my motherboard broken or do I just not have the right drivers for it? The mobo is a Gigabyte GA-970A-DS3 with built-in USB2 and USB3. I just got another USB3 card so I could have front ports on my chassis. Thanks in advance...

dq

----------

## dch24

You have the right drivers:

```
[94209.544389] uvcvideo: Found UVC 1.00 device <unnamed> (046d:0992)
```

It should work exactly the same in the built-in USB2 or USB3 ports. (The driver doesn't care what USB port it appears on.) The good news is, it works great on the PCIe USB ports which shows that the PCIe USB card and the webcam are both ok.

Bad news, it sounds like your motherboard is broken. :-/

----------

## don quixada

Is there another way to test the motherboard. I was having problems with the network port and had to get a separate network card as well but I thought that was a driver issue because I had to try a few different cards with different chipsets in order to get it to work. 

dq

----------

## dch24

Motherboards are designed ground-up starting with power regulation, then CPU and memory, then peripheral devices.

(Note that the core design, like the CPU and memory, was likely done by the CPU vendor and just integrated into the OEM's design.)

What do you know is good? Are you sure your power supply is perfectly stable?

You could run memtest86+ for 24 hours or more to verify that your memory is stable. You could run an intel/AMD torture test to verify that the CPU is stable and thermal management is ok.

Torture testing your on-board ethernet port for 30 minutes should be enough. Run iperf or something similar for that.

...

Still at the end of the day, all you can end up with is pass/fail. It's up to you what you want to do at that point. Maybe the board is still useful sitting in a closet somewhere, maybe not.

----------

## don quixada

I finally got a chance to call Gigabyte and they said that my USB 3.0 ports are etron EJ168 and that I have to find a Linux driver for them "somewhere online". They also said that the USB 2.0 ports are run by the AMD sb950 chipset and that I need to find a driver for that too. Anyway, I hope they weren't just trying to get me off their backs because I'm a Linux user but I'm gonna start looking around for a solution. If anyone else has run into this, kindly let me know. ;-)

dq

----------

