Re: Devices with a front and back webcam represented as a single UVC device
Hey, On Wed, Jul 11, 2018 at 9:51 PM, Hans de Goede wrote: > Hi, > > > On 11-07-18 20:26, Carlos Garnacho wrote: >> >> Hi!, >> >> On Wed, Jul 11, 2018 at 7:41 PM, Hans de Goede >> wrote: >>> >>> Hi, >>> >>> >>> On 11-07-18 18:07, Carlos Garnacho wrote: >>>> >>>> >>>> Hi!, >>>> >>>> On Wed, Jul 11, 2018 at 2:41 PM, Hans de Goede >>>> wrote: >>>>> >>>>> >>>>> HI, >>>>> >>>>> >>>>> On 11-07-18 14:08, Laurent Pinchart wrote: >>>>>> >>>>>> >>>>>> >>>>>> Hi Carlos, >>>>>> >>>>>> On Wednesday, 11 July 2018 14:36:48 EEST Carlos Garnacho wrote: >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Wed, Jul 11, 2018 at 1:00 PM, Laurent Pinchart wrote: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On Wednesday, 11 July 2018 11:37:14 EEST Hans de Goede wrote: >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> Hi Laurent, >>>>>>>>> >>>>>>>>> At Guadec Carlos (in the Cc) told me that on his Acer 2-in-1 only >>>>>>>>> the frontcam is working and it seems both are represented by a >>>>>>>>> single UVC USB device. I've told him to check for some v4l control >>>>>>>>> to flip between front and back. >>>>>>>>> >>>>>>>>> Carlos, as I mentioned you can try gtk-v4l >>>>>>>>> ("sudo dnf install gtk-v4l") or qv4l2 >>>>>>>>> ("sudo dnf install qv4l2") these will both show >>>>>>>>> you various controls for the camera. One of those might do the >>>>>>>>> trick. >>>>>>>>> >>>>>>>>> But I recently bought a 2nd second hand Cherry Trail based HP >>>>>>>>> X2 2-in-1 and much to my surprise that is actually using an UVC >>>>>>>>> cam, rather then the usual ATOMISP crap and it has the same issue. >>>>>>>>> >>>>>>>>> This device does not seem to have a control to flip between the >>>>>>>>> 2 cams, instead it registers 2 /dev/video? nodes but the second >>>>>>>>> node does not work >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> The second node is there to expose metadata to userspace, not image >>>>>>>> data. >>>>>>>> That's a recent addition to the uvcvideo driver. >>>>>>>> >>>>>>>>> and dmesg contains: >>>>>>>>> >>>>>>>>> [ 26.079868] uvcvideo: Found UVC 1.00 device HP TrueVision HD >>>>>>>>> (05c8:03a3) >>>>>>>>> [ 26.095485] uvcvideo 1-4.2:1.0: Entity type for entity Extension >>>>>>>>> 4 >>>>>>>>> was >>>>>>>>> not initialized! >>>>>>>>> [ 26.095492] uvcvideo 1-4.2:1.0: Entity type for entity >>>>>>>>> Processing >>>>>>>>> 2 >>>>>>>>> was >>>>>>>>> not initialized! >>>>>>>>> [ 26.095496] uvcvideo 1-4.2:1.0: Entity type for entity Camera 1 >>>>>>>>> was >>>>>>>>> not >>>>>>>>> initialized! >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> You can safely ignore those messages. I need to submit a patch to >>>>>>>> get >>>>>>>> rid >>>>>>>> of them. >>>>>>>> >>>>>>>>> Laurent, I've attached lsusb -v output so that you can check the >>>>>>>>> descriptors. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>
Re: Devices with a front and back webcam represented as a single UVC device
Hi!, On Wed, Jul 11, 2018 at 7:41 PM, Hans de Goede wrote: > Hi, > > > On 11-07-18 18:07, Carlos Garnacho wrote: >> >> Hi!, >> >> On Wed, Jul 11, 2018 at 2:41 PM, Hans de Goede >> wrote: >>> >>> HI, >>> >>> >>> On 11-07-18 14:08, Laurent Pinchart wrote: >>>> >>>> >>>> Hi Carlos, >>>> >>>> On Wednesday, 11 July 2018 14:36:48 EEST Carlos Garnacho wrote: >>>>> >>>>> >>>>> On Wed, Jul 11, 2018 at 1:00 PM, Laurent Pinchart wrote: >>>>>> >>>>>> >>>>>> On Wednesday, 11 July 2018 11:37:14 EEST Hans de Goede wrote: >>>>>>> >>>>>>> >>>>>>> Hi Laurent, >>>>>>> >>>>>>> At Guadec Carlos (in the Cc) told me that on his Acer 2-in-1 only >>>>>>> the frontcam is working and it seems both are represented by a >>>>>>> single UVC USB device. I've told him to check for some v4l control >>>>>>> to flip between front and back. >>>>>>> >>>>>>> Carlos, as I mentioned you can try gtk-v4l >>>>>>> ("sudo dnf install gtk-v4l") or qv4l2 >>>>>>> ("sudo dnf install qv4l2") these will both show >>>>>>> you various controls for the camera. One of those might do the trick. >>>>>>> >>>>>>> But I recently bought a 2nd second hand Cherry Trail based HP >>>>>>> X2 2-in-1 and much to my surprise that is actually using an UVC >>>>>>> cam, rather then the usual ATOMISP crap and it has the same issue. >>>>>>> >>>>>>> This device does not seem to have a control to flip between the >>>>>>> 2 cams, instead it registers 2 /dev/video? nodes but the second >>>>>>> node does not work >>>>>> >>>>>> >>>>>> >>>>>> The second node is there to expose metadata to userspace, not image >>>>>> data. >>>>>> That's a recent addition to the uvcvideo driver. >>>>>> >>>>>>> and dmesg contains: >>>>>>> >>>>>>> [ 26.079868] uvcvideo: Found UVC 1.00 device HP TrueVision HD >>>>>>> (05c8:03a3) >>>>>>> [ 26.095485] uvcvideo 1-4.2:1.0: Entity type for entity Extension 4 >>>>>>> was >>>>>>> not initialized! >>>>>>> [ 26.095492] uvcvideo 1-4.2:1.0: Entity type for entity Processing >>>>>>> 2 >>>>>>> was >>>>>>> not initialized! >>>>>>> [ 26.095496] uvcvideo 1-4.2:1.0: Entity type for entity Camera 1 >>>>>>> was >>>>>>> not >>>>>>> initialized! >>>>>> >>>>>> >>>>>> >>>>>> You can safely ignore those messages. I need to submit a patch to get >>>>>> rid >>>>>> of them. >>>>>> >>>>>>> Laurent, I've attached lsusb -v output so that you can check the >>>>>>> descriptors. >>>>>> >>>>>> >>>>>> >>>>>> Thank you. >>>>>> >>>>>> It's funny how UVC specifies a standard way to describe a device with >>>>>> two >>>>>> camera sensors with dynamic selection of one of them at runtime, and >>>>>> vendors instead implement vendor-specific crap :-( >>>>>> >>>>>> The interesting part in the descriptors is >>>>>> >>>>>> VideoControl Interface Descriptor: >>>>>> bLength27 >>>>>> bDescriptorType36 >>>>>> bDescriptorSubtype 6 (EXTENSION_UNIT) >>>>>> bUnitID 4 >>>>>> guidExtensionCode >>>>>> {1229a78c-47b4-4094-b0ce-db07386fb938} >>>>>> bNumControl 2 >>>>>> bNrPins 1 >>>>>> baSourceID( 0) 2 >>>>>> bControlSize2 >>>>>> bmControls( 0) 0x00 >>>>>>
Re: Devices with a front and back webcam represented as a single UVC device
Hi!, On Wed, Jul 11, 2018 at 2:41 PM, Hans de Goede wrote: > HI, > > > On 11-07-18 14:08, Laurent Pinchart wrote: >> >> Hi Carlos, >> >> On Wednesday, 11 July 2018 14:36:48 EEST Carlos Garnacho wrote: >>> >>> On Wed, Jul 11, 2018 at 1:00 PM, Laurent Pinchart wrote: >>>> >>>> On Wednesday, 11 July 2018 11:37:14 EEST Hans de Goede wrote: >>>>> >>>>> Hi Laurent, >>>>> >>>>> At Guadec Carlos (in the Cc) told me that on his Acer 2-in-1 only >>>>> the frontcam is working and it seems both are represented by a >>>>> single UVC USB device. I've told him to check for some v4l control >>>>> to flip between front and back. >>>>> >>>>> Carlos, as I mentioned you can try gtk-v4l >>>>> ("sudo dnf install gtk-v4l") or qv4l2 >>>>> ("sudo dnf install qv4l2") these will both show >>>>> you various controls for the camera. One of those might do the trick. >>>>> >>>>> But I recently bought a 2nd second hand Cherry Trail based HP >>>>> X2 2-in-1 and much to my surprise that is actually using an UVC >>>>> cam, rather then the usual ATOMISP crap and it has the same issue. >>>>> >>>>> This device does not seem to have a control to flip between the >>>>> 2 cams, instead it registers 2 /dev/video? nodes but the second >>>>> node does not work >>>> >>>> >>>> The second node is there to expose metadata to userspace, not image >>>> data. >>>> That's a recent addition to the uvcvideo driver. >>>> >>>>> and dmesg contains: >>>>> >>>>> [ 26.079868] uvcvideo: Found UVC 1.00 device HP TrueVision HD >>>>> (05c8:03a3) >>>>> [ 26.095485] uvcvideo 1-4.2:1.0: Entity type for entity Extension 4 >>>>> was >>>>> not initialized! >>>>> [ 26.095492] uvcvideo 1-4.2:1.0: Entity type for entity Processing 2 >>>>> was >>>>> not initialized! >>>>> [ 26.095496] uvcvideo 1-4.2:1.0: Entity type for entity Camera 1 was >>>>> not >>>>> initialized! >>>> >>>> >>>> You can safely ignore those messages. I need to submit a patch to get >>>> rid >>>> of them. >>>> >>>>> Laurent, I've attached lsusb -v output so that you can check the >>>>> descriptors. >>>> >>>> >>>> Thank you. >>>> >>>> It's funny how UVC specifies a standard way to describe a device with >>>> two >>>> camera sensors with dynamic selection of one of them at runtime, and >>>> vendors instead implement vendor-specific crap :-( >>>> >>>> The interesting part in the descriptors is >>>> >>>>VideoControl Interface Descriptor: >>>> bLength27 >>>> bDescriptorType36 >>>> bDescriptorSubtype 6 (EXTENSION_UNIT) >>>> bUnitID 4 >>>> guidExtensionCode >>>> {1229a78c-47b4-4094-b0ce-db07386fb938} >>>> bNumControl 2 >>>> bNrPins 1 >>>> baSourceID( 0) 2 >>>> bControlSize2 >>>> bmControls( 0) 0x00 >>>> bmControls( 1) 0x06 >>>> iExtension 0 >>>> >>>> The extension unit exposes two controls (bmControls is a bitmask). They >>>> can be accessed from userspace through the UVCIOC_CTRL_QUERY ioctl, or >>>> mapped to V4L2 controls through the UVCIOC_CTRL_MAP ioctl, in which case >>>> they will be exposed to standard V4L2 applications. >>>> >>>> If you want to experiment with this, I would advise querying both >>>> controls >>>> with UVCIOC_CTRL_QUERY. You can use the UVC_GET_CUR, UVC_GET_MIN, >>>> UVC_GET_MAX, UVC_GET_DEF and UVC_GET_RES requests to get the control >>>> current, minimum, maximum, default and resolution values, and >>>> UVC_GET_LEN >>>> and UVC_GET_INFO to get the control size (in bytes) and flags. Based on >>>> that you can start experimenting with UVC_SET_CUR to set semi-random >>>> values. >>>> >>>> I'm however worri
Re: Devices with a front and back webcam represented as a single UVC device
Hi!, Thanks Hans for starting this, and hi Laurent. On Wed, Jul 11, 2018 at 1:00 PM, Laurent Pinchart wrote: > Hi Hans, > > On Wednesday, 11 July 2018 11:37:14 EEST Hans de Goede wrote: >> Hi Laurent, >> >> At Guadec Carlos (in the Cc) told me that on his Acer 2-in-1 only >> the frontcam is working and it seems both are represented by a >> single UVC USB device. I've told him to check for some v4l control >> to flip between front and back. >> >> Carlos, as I mentioned you can try gtk-v4l >> ("sudo dnf install gtk-v4l") or qv4l2 >> ("sudo dnf install qv4l2") these will both show >> you various controls for the camera. One of those might do the trick. >> >> But I recently bought a 2nd second hand Cherry Trail based HP >> X2 2-in-1 and much to my surprise that is actually using an UVC >> cam, rather then the usual ATOMISP crap and it has the same issue. >> >> This device does not seem to have a control to flip between the >> 2 cams, instead it registers 2 /dev/video? nodes but the second >> node does not work > > The second node is there to expose metadata to userspace, not image data. > That's a recent addition to the uvcvideo driver. > >> and dmesg contains: >> >> [ 26.079868] uvcvideo: Found UVC 1.00 device HP TrueVision HD (05c8:03a3) >> [ 26.095485] uvcvideo 1-4.2:1.0: Entity type for entity Extension 4 was >> not initialized! >> [ 26.095492] uvcvideo 1-4.2:1.0: Entity type for entity Processing 2 was >> not initialized! >> [ 26.095496] uvcvideo 1-4.2:1.0: Entity type for entity Camera 1 was not >> initialized! > > You can safely ignore those messages. I need to submit a patch to get rid of > them. > >> Laurent, I've attached lsusb -v output so that you can check the >> descriptors. > > Thank you. > > It's funny how UVC specifies a standard way to describe a device with two > camera sensors with dynamic selection of one of them at runtime, and vendors > instead implement vendor-specific crap :-( > > The interesting part in the descriptors is > > VideoControl Interface Descriptor: > bLength27 > bDescriptorType36 > bDescriptorSubtype 6 (EXTENSION_UNIT) > bUnitID 4 > guidExtensionCode {1229a78c-47b4-4094-b0ce-db07386fb938} > bNumControl 2 > bNrPins 1 > baSourceID( 0) 2 > bControlSize2 > bmControls( 0) 0x00 > bmControls( 1) 0x06 > iExtension 0 > > The extension unit exposes two controls (bmControls is a bitmask). They can be > accessed from userspace through the UVCIOC_CTRL_QUERY ioctl, or mapped to V4L2 > controls through the UVCIOC_CTRL_MAP ioctl, in which case they will be exposed > to standard V4L2 applications. > > If you want to experiment with this, I would advise querying both controls > with UVCIOC_CTRL_QUERY. You can use the UVC_GET_CUR, UVC_GET_MIN, UVC_GET_MAX, > UVC_GET_DEF and UVC_GET_RES requests to get the control current, minimum, > maximum, default and resolution values, and UVC_GET_LEN and UVC_GET_INFO to > get the control size (in bytes) and flags. Based on that you can start > experimenting with UVC_SET_CUR to set semi-random values. > > I'm however worried that those two controls would be a register address and a > register value, for indirect access to all hardware registers in the device. > In that case, you would likely need information from the device vendor, or > possibly a USB traffic dump from a Windows machine when switching between the > front and back cameras. > >> Carlos, it might be good to get Laurent your descriptors too, to do >> this do "lsusb", note what is the : for your camera and then >> run: >> >> sudo lsusb -v -d : > lsusb.log >> >> And send Laurent a mail with the generated lsusb > > That would be appreciated, but I expect the same issue :-( Please find it attached. IIUC your last email, it might not be the exact same issue, but you can definitely judge better. Cheers, Carlos Bus 001 Device 004: ID 0bda:56c1 Realtek Semiconductor Corp. Device Descriptor: bLength18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 bDeviceProtocol 1 Interface Association bMaxPacketSize064 idVendor 0x0bda Realtek Semiconductor Corp. idProduct 0x56c1 bcdDevice0.16 iManufacturer 3 Pegatron iProduct1 USB Camera iSerial 2 0x0001 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 963 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 4 USB Camera bmAttributes 0x80 (Bus Powered) MaxPower 500mA Interface Association: bLength 8 bDescriptorType11