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
<[email protected]> 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 <[email protected]>
> > 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