Hi Laurent, Thank you very much for the reply. I tried it on a Windows 10 computer and it worked fine without installing any additional software. Also managed to capture USB traffic on Linux (didn't capture on Windows yet). I don't see a lot of traffic, most of the messages are USB and USBHID protocol messages for GET_STATUS, SET_FEATURE, GET_DESCRIPTOR etc. There is only one USBVIDEO protocol message for GET_CUR (0x81). Seems like this request fails the error "No such file or directory (-ENOENT) (-2). Does this sound like a bug in firmware / cause for the error we saw in dmesg output? Here's the full text of USBVIDEO request and response: REQUEST: Frame 86: 64 bytes on wire (512 bits), 64 bytes captured (512 bits) on interface 0 USB URB [Source: host] [Destination: 2.13.0] URB id: 0xffff89299a435600 URB type: URB_SUBMIT ('S') URB transfer type: URB_CONTROL (0x02) Endpoint: 0x80, Direction: IN Device: 13 URB bus id: 2 Device setup request: relevant (0) Data: not present ('<') URB sec: 1551797452 URB usec: 468271 URB status: Operation now in progress (-EINPROGRESS) (-115) URB length [bytes]: 34 Data length [bytes]: 0 [Response in: 87] Interval: 0 Start frame: 0 Copy of Transfer Flags: 0x00000200 Number of ISO descriptors: 0 [bInterfaceClass: Video (0x0e)] URB setup bRequest: GET CUR (0x81) Control Selector: Probe (0x01) Interface: 0x01 Entity: 0x00 wLength: 34 RESPONSE: Frame 87: 64 bytes on wire (512 bits), 64 bytes captured (512 bits) on interface 0 USB URB [Source: 2.13.0] [Destination: host] URB id: 0xffff89299a435600 URB type: URB_COMPLETE ('C') URB transfer type: URB_CONTROL (0x02) Endpoint: 0x80, Direction: IN Device: 13 URB bus id: 2 Device setup request: not relevant ('-') Data: present (0) URB sec: 1551797457 URB usec: 587755 URB status: No such file or directory (-ENOENT) (-2) URB length [bytes]: 0 Data length [bytes]: 0 [Request in: 86] [Time from request: 5.119484000 seconds] Unused Setup Header Interval: 0 Start frame: 0 Copy of Transfer Flags: 0x00000200 Number of ISO descriptors: 0 [bInterfaceClass: Video (0x0e)] [Interface: 0x01] [Entity: 0x00] [Control Selector: Probe (0x01)] Thank you! Best regards, Amila On Tue, Mar 5, 2019 at 2:46 PM Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> wrote: > > Hi Amila, > > On Mon, Mar 04, 2019 at 03:02:33PM +0100, Amila Manoj wrote: > > Hello Laurent and Kieran, > > > > Thank you very much for the information. > > > > I haven't tried other uvc cameras on the system. This is a fresh Ubuntu > > installation. > > > > Installed all available updates for Ubuntu and now the version is: Ubuntu > > 18.04.2 LTS (4.15.0-45-generic) > > > > I set the quirk as Laurent instructed but the error seems to be same. > > > > dmesg output: > > [ +9,015628] usb 2-2: new SuperSpeed USB device number 5 using xhci_hcd > > [ +0,020584] usb 2-2: LPM exit latency is zeroed, disabling LPM. > > [ +0,000620] usb 2-2: New USB device found, idVendor=4e45, idProduct=5501 > > [ +0,000006] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 > > [ +0,000004] usb 2-2: Product: NSE-CAM > > [ +0,000004] usb 2-2: Manufacturer: NSE > > [ +0,001355] uvcvideo: Probing generic UVC device 2 > > [ +0,000010] uvcvideo: Found format YUV 4:2:2 (UYVY). > > [ +0,000005] uvcvideo: - 1920x1080 (30.0 fps) > > [ +0,000009] uvcvideo: Found a Status endpoint (addr 82). > > [ +0,000004] uvcvideo: Found UVC 1.10 device NSE-CAM (4e45:5501) > > [ +0,000003] uvcvideo: Forcing device quirks to 0x100 by module parameter for > > testing purpose. > > [ +0,000002] uvcvideo: Please report required quirks to the linux-uvc-devel > > mailing list. > > [ +0,000010] uvcvideo: Added control 00000000-0000-0000-0000-000000000101/2 to > > device 2 entity 2 > > [ +0,000005] uvcvideo: Adding mapping 'Brightness' to control > > 00000000-0000-0000-0000-000000000101/2. > > [ +0,000006] uvcvideo: Added control 00000000-0000-0000-0000-000000000101/3 to > > device 2 entity 2 > > [ +0,000003] uvcvideo: Adding mapping 'Contrast' to control > > 00000000-0000-0000-0000-000000000101/3. > > [ +0,000005] uvcvideo: Added control 00000000-0000-0000-0000-000000000101/6 to > > device 2 entity 2 > > [ +0,000004] uvcvideo: Adding mapping 'Hue' to control > > 00000000-0000-0000-0000-000000000101/6. > > [ +0,000005] uvcvideo: Added control 00000000-0000-0000-0000-000000000101/7 to > > device 2 entity 2 > > [ +0,000004] uvcvideo: Adding mapping 'Saturation' to control > > 00000000-0000-0000-0000-000000000101/7. > > [ +0,000005] uvcvideo: Added control 00000000-0000-0000-0000-000000000101/8 to > > device 2 entity 2 > > [ +0,000004] uvcvideo: Adding mapping 'Sharpness' to control > > 00000000-0000-0000-0000-000000000101/8. > > [ +0,000005] uvcvideo: Added control 00000000-0000-0000-0000-000000000101/10 > > to device 2 entity 2 > > [ +0,000005] uvcvideo: Adding mapping 'White Balance Temperature' to control > > 00000000-0000-0000-0000-000000000101/10. > > [ +0,000005] uvcvideo: Added control 00000000-0000-0000-0000-000000000101/11 > > to device 2 entity 2 > > [ +0,000004] uvcvideo: Adding mapping 'White Balance Temperature, Auto' to > > control 00000000-0000-0000-0000-000000000101/11. > > [ +0,000004] uvcvideo: Scanning UVC chain: OT 4 <- XU 3 <- PU 2 <- IT 1 > > [ +0,000014] uvcvideo: Found a valid video chain (1 -> 4). > > The GET_DEF(PROBE) is gone, this shows the quirk has been applied > correctly. > > > [ +10,161183] uvcvideo: Failed to query (129) UVC probe control : -110 (exp. > > 34). > > But this error still occurs :-( > > > [ +0,000009] uvcvideo: Failed to initialize the device (-5). > > > > "modinfo uvcvideo" output: > > filename: /lib/modules/4.15.0-45-generic/kernel/drivers/media/usb/uvc/ > > uvcvideo.ko > > version: 1.1.1 > > license: GPL > > description: USB Video Class driver > > author: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx> > > srcversion: DBA8F055BDC0120170B3498 > > alias: usb:v*p*d*dc*dsc*dp*ic0Eisc01ip01in* > > alias: usb:v*p*d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v2833p0211d*dc*dsc*dp*icFFisc01ip00in* > > alias: usb:v2833p0201d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v1C4Fp3000d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v1B3Bp2951d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v19ABp1000d00*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v19ABp1000d01[0-1]*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v19ABp1000d012[0-6]dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v199Ep8102d*dc*dsc*dp*icFFisc01ip00in* > > alias: usb:v18ECp3290d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v18ECp3288d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v18ECp3188d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v18CDpCAFEd*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v1871p0516d*dc*dsc*dp*icFFisc01ip00in* > > alias: usb:v1871p0306d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v17EFp480Bd*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v17DCp0202d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v174Fp8A34d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v174Fp8A33d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v174Fp8A31d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v174Fp8A12d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v174Fp5931d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v174Fp5212d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v152Dp0310d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v13D3p5103d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v0E8Dp0004d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v0BD3p0555d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v0AC8p3420d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v0AC8p3410d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v0AC8p332Dd*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v06F8p300Cd*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v05E3p0505d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v05C8p0403d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v05ACp8600d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v05ACp8501d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v05A9p7670d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v05A9p264Ad*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v05A9p2643d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v05A9p2641d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v05A9p2640d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v058Fp3820d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v04F2pB071d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v046Dp082Dd*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v046Dp08C7d*dc*dsc*dp*icFFisc01ip00in* > > alias: usb:v046Dp08C6d*dc*dsc*dp*icFFisc01ip00in* > > alias: usb:v046Dp08C5d*dc*dsc*dp*icFFisc01ip00in* > > alias: usb:v046Dp08C3d*dc*dsc*dp*icFFisc01ip00in* > > alias: usb:v046Dp08C2d*dc*dsc*dp*icFFisc01ip00in* > > alias: usb:v046Dp08C1d*dc*dsc*dp*icFFisc01ip00in* > > alias: usb:v045Ep0723d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v045Ep0721d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v045Ep00F8d*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v0458p706Ed*dc*dsc*dp*ic0Eisc01ip00in* > > alias: usb:v0416pA91Ad*dc*dsc*dp*ic0Eisc01ip00in* > > depends: videodev,videobuf2-core,videobuf2-v4l2,videobuf2-vmalloc,media > > retpoline: Y > > intree: Y > > name: uvcvideo > > vermagic: 4.15.0-45-generic SMP mod_unload > > signat: PKCS#7 > > signer: > > sig_key: > > sig_hashalgo: md4 > > parm: clock:Video buffers timestamp clock > > parm: hwtimestamps:Use hardware timestamps (uint) > > parm: nodrop:Don't drop incomplete frames (uint) > > parm: quirks:Forced device quirks (uint) > > parm: trace:Trace level bitmask (uint) > > parm: timeout:Streaming control requests timeout (uint) > > > > In there anything else I could try? > > Have you tried connecting the camera to a Windows or Mac host to see if > it works there ? I'd like to rule out the option of a defective camera. > > If that works, at this stage I would usually try to capture USB trafic > when the camera is connected to a working host, and compare that with > the requests sent by the uvcvideo driver. I'm afraid I can't help you > with capturing USB trafic with Windows or Mac though. > > I would also recommend contacting the vendor to report the problem, just > in case. > > -- > Regards, > > Laurent Pinchart