1

I am trying to some solution or run-time fix on this.

Problem: After connecting a 3rd camera, Linux video capture does not work cam3 or Image capture in cam1 fails.

History: Initially, we developed a system for surveillance. The system comprised of 2 cameras.

1. Video capture (Using Motion)
2. Image capture(Using V4L)

We added one more camera to the system, which is causing the mess currently.
3.  Video capture (Using Motion)


  We notice either a video capture or image capture does not work in the system. various forums, suggested for adding quirk=128 in conf, even that idd not work out.

dmesg:

[ 399.544408] uvcvideo: Found UVC 1.00 device USB2.0 Camera (1871:2097)

[ 399.544429] uvcvideo: Forcing device quirks to 0x80 by module parameter for testing purpose.

[ 399.544441] uvcvideo: Please report required quirks to the linux-uvc-devel mailing list.

[ 399.547449] input: USB2.0 Camera as /devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3:1.0/input/input32

[ 399.668599] uvcvideo: Found UVC 1.00 device USB2.0 Camera (1871:0501)

[ 399.668613] uvcvideo: Forcing device quirks to 0x80 by module parameter for testing purpose.

[ 399.668618] uvcvideo: Please report required quirks to the linux-uvc-devel mailing list.

[ 399.671360] input: USB2.0 Camera as /devices/pci0000:00/0000:00:1d.7/usb1/1-4/1-4.4/1-4.4:1.0/input/input33 [ 399.732317] uvcvideo: Found UVC 1.00 device USB2.0 Camera (1871:0f01)

[ 399.732328] uvcvideo: Forcing device quirks to 0x80 by module parameter for testing purpose.

[ 399.732334] uvcvideo: Please report required quirks to the linux-uvc-devel mailing list.

[ 399.735996] input: USB2.0 Camera as /devices/pci0000:00/0000:00:1d.7/usb1/1-8/1-8:1.0/input/input34

Tried getting V4L2_BUF_TYPE_VIDEO_CAPTURE information for the cameera: all connected cameras listed (YUV 4:2:2 (YUYV))

HW Spec: N2600 Aveo technologies camera 3 models with diff VID:PID

I need some guidance in fixing this issue.

0

Finding:

N2600 with 3.16 kernel :(Both with / without Quirk 0x80)

Bandwidth per camera was 328 Mb. In my case overall allocated bandwidth was 656 (For 2 cameras) and max bandwidth for USB controller was 800. So there was no space available for my third camera.

N2600 with 2.6.32 kernel

Same my third camera did not work and memory allocation per camera was 320 Mb

N2600 with 2.6.32 kernel with Quirk 0x80

On applying quirk to uvcvideo memory allocation was drastically reduced from 320 to 128 Mb and all 3 cameras worked as expected.

Solution:

I am not very sure this a very correct solution. However, I would like to thank Stuart (SwDevRefugee) for helping me troubleshoot and giving some pointers to address this issue.

There is this line in uvc_fixup_video_ctrl() in the newer kernel bandwidth = max_t(u32, bandwidth, 1024); and missing in old one. Commented and recompiled my UVC driver and now with quirk 0x80 memory allocation has come down to 128 Mb from 328 and my system works. Rhough this might be helpful to someone with multiple cameras

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.