Discussion:
[linux-uvc-devel] uvcvideo not working w/ g_webcam gadget peripheral
Mark Schnittman
2015-02-18 04:15:16 UTC
Permalink
I am a bit new to UVC/v4l2/g_webcam, so I apologize in advanced if any of
my assumptions are poor (including the subject of this message).

I am running two Linux computers that are both running off the 3.10 base
kernel. The machines are Odroid-XU3 single-board computers (ARM-based)
running Ubuntu 14.04. I am running the g_webcam gadget on one of the
computers so that it looks like a UVC webcam, and am connecting it to the
second computer via the first computer's USB OTG port.

When I connect the computer running the g_webcam driver to the host
computer the device is detected, but ultimately no driver is assigned (I
believe this should be the uvcvideo driver), and no video node is created
in the /dev tree.

Hopefully the following output is helpful in understanding the state of
things. I'd really appreciate any suggestions folks might have. Thanks!

$ dmesg

[ 8467.705133] [c0] usb 1-1.4: new high-speed USB device number 11 using
s5p-ehci
[ 8467.813841] [c0] uvcvideo: Probing generic UVC device 1.4
[ 8467.813887] [c0] uvcvideo: Found format YUV 4:2:2 (YUYV).
[ 8467.813902] [c0] uvcvideo: - 640x360 (15.0 fps)
[ 8467.813913] [c0] uvcvideo: - 1280x720 (2.0 fps)
[ 8467.813923] [c0] uvcvideo: Found format MJPEG.
[ 8467.813935] [c0] uvcvideo: - 640x360 (15.0 fps)
[ 8467.813951] [c0] uvcvideo: - 1280x720 (2.0 fps)
[ 8467.813973] [c0] uvcvideo: Found a Status endpoint (addr 81).
[ 8467.813985] [c0] uvcvideo: Found UVC 1.00 device Webcam gadget (1d6b:0102)
[ 8467.814348] [c0] uvcvideo: Added control
00000000-0000-0000-0000-00000000000 1/2 to device 1.4 entity 1
[ 8467.814373] [c0] uvcvideo: Adding mapping 'Exposure, Auto' to control
00000000-0000-0000-0000-000000000001/2.
[ 8467.814396] [c0] uvcvideo: Added control
00000000-0000-0000-0000-000000000101/2 to device 1.4 entity 2
[ 8467.814410] [c0] uvcvideo: Adding mapping 'Brightness' to control
00000000-0000-0000-0000-000000000101/2.
[ 8467.814426] [c0] uvcvideo: Scanning UVC chain: OT 3 <- PU 2 <- IT 1
[ 8467.814454] [c0] uvcvideo: Found a valid video chain (1 -> 3).
[ 8472.810378] [c0] uvcvideo: UVC non compliance - GET_DEF(PROBE) not
supported. Enabling workaround.
[ 8477.810363] [c0] uvcvideo: Failed to query (129) UVC probe control :
-110 (exp. 26).
[ 8477.816698] [c0] uvcvideo: Failed to initialize the device (-5).

---------------

$ lsusb -t

/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=exynos-ohci/3p, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=s5p-ehci/3p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M
|__ Port 1: Dev 3, If 0, Class=Vendor Specific Class,
Driver=smsc95xx, 480M
|__ Port 2: Dev 4, If 0, Class=Vendor Specific Class,
Driver=rtl8192cu, 480M
|__ Port 4: Dev 11, If 0, Class=Video, Driver=, 480M
|__ Port 4: Dev 11, If 1, Class=Video, Driver=, 480M

-----------

$ usb-devices

T: Bus=01 Lev=02 Prnt=02 Port=03 Cnt=03 Dev#= 11 Spd=480 MxCh= 0
D: Ver= 2.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=1d6b ProdID=0102 Rev=03.10
S: Manufacturer=Linux Foundation
S: Product=Webcam gadget
C: #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=0e(video) Sub=01 Prot=00 Driver=(none)
I: If#= 1 Alt= 0 #EPs= 0 Cls=0e(video) Sub=02 Prot=00 Driver=(none)

Thanks again,
mark

Loading...