On 06/01/16(Wed) 10:17, Martin Pieuchot wrote:
> On 05/01/16(Tue) 13:19, Matt Adams wrote:
> > On 05/01/16 05:10 AM, Martin Pieuchot wrote:
> > >On 03/01/16(Sun) 23:18, Matt Adams wrote:
> > >>Hi,
> > >>
> > >>I noted that uvideo has support for the Logitech QuickCam Pro 5000 - a
> > >>piece
> > >>of hardware that I have. However, ugen appears to attach to this device
> > >>instead of allowing the special firmware (installed via "# fw_install
> > >>uvideo") to configure /dev/video0 or /dev/video1, even though those two
> > >>device files are present in the system.
> > >>
> > >>For example:
> > >>
> > >>-bash-4.3$ luvcview
> > >>luvcview version 2.0
> > >>Video driver: x11
> > >>A window manager is available
> > >>video /dev/video0
> > >>ERROR opening V4L interface
> > >>: Device not configured
> > >>
> > >>Is there something that I am missing here or is my webcam not actually
> > >>supported?
> > >Could you paste the output of "lsusb -v" for your webcam? lsusb(1) is
> > >part of the usbutils package.
> >
> > lsusb -v as follows (webcam portion only):
> >
> > Bus 001 Device 002: ID 046d:08c5 Logitech, Inc. QuickCam Pro 5000
> > Device Descriptor:
> > bLength 18
> > bDescriptorType 1
> > bcdUSB 2.00
> > bDeviceClass 0 (Defined at Interface level)
> > bDeviceSubClass 0
> > bDeviceProtocol 1
> > bMaxPacketSize0 64
> > idVendor 0x046d Logitech, Inc.
> > idProduct 0x08c5 QuickCam Pro 5000
>
> Thanks, does the diff below help?
Could you test the diff? Does it work?
> Index: uvideo.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/usb/uvideo.c,v
> retrieving revision 1.183
> diff -u -p -r1.183 uvideo.c
> --- uvideo.c 20 Dec 2015 10:08:05 -0000 1.183
> +++ uvideo.c 6 Jan 2016 09:14:05 -0000
> @@ -382,6 +382,12 @@ struct uvideo_devs {
> NULL,
> UVIDEO_FLAG_VENDOR_CLASS
> },
> + { /* Incorrectly reports as bInterfaceClass=UICLASS_VENDOR */
> + { USB_VENDOR_LOGITECH, USB_PRODUCT_LOGITECH_QUICKCAMPRO5K_1 },
> + NULL,
> + NULL,
> + UVIDEO_FLAG_VENDOR_CLASS
> + },
> };
> #define uvideo_lookup(v, p) \
> ((struct uvideo_devs *)usb_lookup(uvideo_devs, v, p))