uvccamera crashes

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

 



Hello,

I'm a hardware engineer working on a prototype that uses multiple
USB-3.0 UVC cameras. I am using a laptop with a built in USB-2 camera
/dev/video0. The other cameras come up as /dev/video1 ... /dev/video6

My laptop has four USB-3 ports on it, two on the left and two on the right.

I'm using two superspeed USB hubs to split to multiple cameras of the
same type. These hubs are recognized and work:

[  996.992341] usb 2-6: new SuperSpeed USB device number 3 using xhci_hcd
[  997.015308] usb 2-6: New USB device found, idVendor=05e3, idProduct=0616
[  997.015311] usb 2-6: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  997.015312] usb 2-6: Product: USB3.0 Hub
[  997.015313] usb 2-6: Manufacturer: GenesysLogic
[  997.018507] hub 2-6:1.0: USB hub found
[  997.018824] hub 2-6:1.0: 4 ports detected
[  997.052126] usb 1-4: new high-speed USB device number 6 using xhci_hcd
[  997.196957] usb 1-4: New USB device found, idVendor=05e3, idProduct=0610
[  997.196960] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  997.196961] usb 1-4: Product: USB2.0 Hub
[  997.196962] usb 1-4: Manufacturer: GenesysLogic
[  997.197776] hub 1-4:1.0: USB hub found
[  997.198311] hub 1-4:1.0: 4 ports detected

(note: there is much more information included in the attached logs)

At first, several weeks ago, everything worked perfectly, and I had no
problems. Then I got the bright idea of attempting to power the
cameras from the USB port, instead of from the USB hubs external
power. I was curious how the code will handle a possible overload. The
code detected the overload and shut down the ports but the cameras did
not shut off. I pulled the plugs, powered off and rebooted, expecting
everything to go back to normal, but it didn't. Since then USB has
been very unstable. Is it possible I damaged one or more of the
laptop's hubs?

All four ports still work, if I use them for ordinary USB devices, but
one of the ports on the left, cannot even work with a single camera.
It detects the camera, but once VLC initializes it, it fails. I have
dmesg and syslog for that instance with 4.3.3 kernel:

dmesg from kernel 4.3.3:
[   94.139376] usb 2-6: new SuperSpeed USB device number 2 using xhci_hcd
[   94.159982] usb 2-6: LPM exit latency is zeroed, disabling LPM.
[   94.160879] usb 2-6: New USB device found, idVendor=2560, idProduct=c112
[   94.160882] usb 2-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[   94.160883] usb 2-6: Product: See3CAM_11CUG
[   94.160885] usb 2-6: Manufacturer: e-con Systems
[   94.160886] usb 2-6: SerialNumber: 18045300
[   94.161596] uvcvideo: Found UVC 1.00 device See3CAM_11CUG (2560:c112)
[   94.162552] input: See3CAM_11CUG as
/devices/pci0000:00/0000:00:14.0/usb2/2-6/2-6:1.0/input/input21
[   95.140377] hid-generic 0003:2560:C112.0006: hiddev0,hidraw3: USB
HID v1.11 Device [e-con Systems See3CAM_11CUG] on
usb-0000:00:14.0-6/input2
[  162.891394] uvcvideo: Failed to query (GET_CUR) UVC control 2 on
unit 2: -110 (exp. 2).
[  163.756134] uvcvideo: Non-zero status (-71) in video completion handler.
[  163.873255] uvcvideo: Non-zero status (-71) in video completion handler.
[  163.890015] uvcvideo: Non-zero status (-71) in video completion handler.
[  163.899719] uvcvideo: Non-zero status (-71) in video completion handler.
[  163.912279] uvcvideo: Non-zero status (-71) in video completion handler.
[  175.349170] usb 2-6: USB disconnect, device number 2
[  175.349221] xhci_hcd 0000:00:14.0: Cannot set link state.

syslog from kernel 4.3.3:
May 15 10:22:23 computer kernel: uvcvideo: Failed to query (GET_CUR)
UVC control 2 on unit 2: -110 (exp. 2).
May 15 10:22:24 computer kernel: uvcvideo: Non-zero status (-71) in
video completion handler.
May 15 10:22:24 computer kernel: uvcvideo: Non-zero status (-71) in
video completion handler.
May 15 10:22:24 computer kernel: uvcvideo: Non-zero status (-71) in
video completion handler.
May 15 10:22:24 computer kernel: uvcvideo: Non-zero status (-71) in
video completion handler.
May 15 10:22:24 computer kernel: uvcvideo: Non-zero status (-71) in
video completion handler.

If I unplug the device, and plug it back into a right side port, it
works with VLC.

I'm not certain that the preceding issue is related to the next issue.
If I use a left side port, when the crash occurs, the entire USB
subsystem shuts down and all USB devices stop working. I have attached
a bunch of system data from kernel 4.6rc6. Unfortunately, testing with
4.6 isn't practical because the nvidia xorg driver I need does not
compile with 4.6 yet.

I don't know how relevant this is, but I'm using gstreamer-1.6.3 to
stream data from the cameras, when this blizzard of bad activity
happens. I have found that gstreamer has it's own issues (I get
segfaults in "string" randomly). But I don't think the two are
intricately linked.

I have configured the 4.6RC6 kernel for kernel debugging and should be
able to capture the failure in gdb, but I'd really like a link to an
up to date howto. I'll keep googling around for a good one.

Any advice on how to figure this out and fix it would be appreciated.

Thanks for reading all this.

Attachment: usb_camera_crash_info.tar.bz2
Description: BZip2 compressed data


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux