webcamd, usb and two webcams - only one works
Thomas Steen Rasmussen
thomas at gibfest.dk
Thu Nov 26 14:13:59 UTC 2020
On 11/26/20 2:49 PM, Hans Petter Selasky wrote:
> On 11/26/20 2:34 PM, Thomas Steen Rasmussen wrote:
>>
>> On 11/26/20 1:18 PM, Hans Petter Selasky wrote:
>>>
>>> Hi Thomas,
>>>
>>> Try setting the resolution or framerate down, because high resolution
>>> webcams need a lot of USB bandwidth!
>>
>
> Hi,
Hi :)
>
> Try "vga" instead of "xga".
>
I tried vga but it did not make a difference, it still says 640*480 and
only one camera works.
I removed the external USB hub (which is externally powered) from the
picture and plugged both cameras directly into the APU for now, to
eliminate some potential sources of issues. The issue still remains.
Using usbdump I was able to see the USB back-and-forth when taking a
snapshot with pwcview with the working camera. About maybe 100 lines or
so, no errors.
Then I tried the other camera where pwcview never returns, and it looks
similar at first but then gets stuck in a loop of:
=============================================
14:05:25.408143 usbus0.3
SUBM-ISOC-EP=00000084,SPD=HIGH,NFR=128,SLEN=0,IVAL=0
14:05:25.654017 usbus0.3
DONE-ISOC-EP=00000084,SPD=HIGH,NFR=0,SLEN=0,IVAL=0,ERR=TIMEOUT
14:05:25.654030 usbus0.3
DONE-ISOC-EP=00000084,SPD=HIGH,NFR=0,SLEN=0,IVAL=0,ERR=TIMEOUT
14:05:25.654220 usbus0.3
SUBM-ISOC-EP=00000084,SPD=HIGH,NFR=128,SLEN=0,IVAL=0
14:05:25.900003 usbus0.3
DONE-ISOC-EP=00000084,SPD=HIGH,NFR=0,SLEN=0,IVAL=0,ERR=TIMEOUT
14:05:25.900012 usbus0.3
DONE-ISOC-EP=00000084,SPD=HIGH,NFR=0,SLEN=0,IVAL=0,ERR=TIMEOUT
14:05:25.900141 usbus0.3
SUBM-ISOC-EP=00000084,SPD=HIGH,NFR=128,SLEN=0,IVAL=0
14:05:26.146015 usbus0.3
DONE-ISOC-EP=00000084,SPD=HIGH,NFR=0,SLEN=0,IVAL=0,ERR=TIMEOUT
14:05:26.146035 usbus0.3
DONE-ISOC-EP=00000084,SPD=HIGH,NFR=0,SLEN=0,IVAL=0,ERR=TIMEOUT
14:05:26.146244 usbus0.3
SUBM-ISOC-EP=00000084,SPD=HIGH,NFR=128,SLEN=0,IVAL=0
14:05:26.392001 usbus0.3
DONE-ISOC-EP=00000084,SPD=HIGH,NFR=0,SLEN=0,IVAL=0,ERR=TIMEOUT
14:05:26.392017 usbus0.3
DONE-ISOC-EP=00000084,SPD=HIGH,NFR=0,SLEN=0,IVAL=0,ERR=TIMEOUT
14:05:26.392229 usbus0.3
SUBM-ISOC-EP=00000084,SPD=HIGH,NFR=128,SLEN=0,IVAL=0
^C14:05:26.637926 usbus0.3
DONE-ISOC-EP=00000084,SPD=HIGH,NFR=0,SLEN=0,IVAL=0,ERR=TIMEOUT
14:05:26.637939 usbus0.3
DONE-ISOC-EP=00000084,SPD=HIGH,NFR=0,SLEN=0,IVAL=0,ERR=TIMEOUT
14:05:26.638104 usbus0.3
SUBM-ISOC-EP=00000084,SPD=HIGH,NFR=128,SLEN=0,IVAL=0
14:05:26.883934 usbus0.3
DONE-ISOC-EP=00000084,SPD=HIGH,NFR=0,SLEN=0,IVAL=0,ERR=TIMEOUT
14:05:26.883959 usbus0.3
DONE-ISOC-EP=00000084,SPD=HIGH,NFR=0,SLEN=0,IVAL=0,ERR=TIMEOUT
14:05:26.884114 usbus0.3
SUBM-ISOC-EP=00000084,SPD=HIGH,NFR=128,SLEN=0,IVAL=0
14:05:27.129974 usbus0.3
DONE-ISOC-EP=00000084,SPD=HIGH,NFR=0,SLEN=0,IVAL=0,ERR=TIMEOUT
14:05:27.129984 usbus0.3
DONE-ISOC-EP=00000084,SPD=HIGH,NFR=0,SLEN=0,IVAL=0,ERR=TIMEOUT
14:05:27.130124 usbus0.3
SUBM-ISOC-EP=00000084,SPD=HIGH,NFR=128,SLEN=0,IVAL=0
14:05:27.375997 usbus0.3
DONE-ISOC-EP=00000084,SPD=HIGH,NFR=0,SLEN=0,IVAL=0,ERR=TIMEOUT
14:05:27.376006 usbus0.3
DONE-ISOC-EP=00000084,SPD=HIGH,NFR=0,SLEN=0,IVAL=0,ERR=TIMEOUT
14:05:27.376182 usbus0.3
SUBM-ISOC-EP=00000084,SPD=HIGH,NFR=128,SLEN=0,IVAL=0
14:05:27.621937 usbus0.3
DONE-ISOC-EP=00000084,SPD=HIGH,NFR=0,SLEN=0,IVAL=0,ERR=TIMEOUT
14:05:27.621950 usbus0.3
DONE-ISOC-EP=00000084,SPD=HIGH,NFR=0,SLEN=0,IVAL=0,ERR=TIMEOUT
14:05:27.622184 usbus0.3
SUBM-ISOC-EP=00000084,SPD=HIGH,NFR=128,SLEN=0,IVAL=0
210 packets captured
210 packets received by filter
0 packets dropped by kernel
$
=============================================
Note that usbdump is completely quiet when I don't run pwcview on either
camera. If the problem was that the first webcam sends too much data for
the second webcam to work, wouldn't usbdump show that? This makes me
think the problem is elsewhere!
>
> You could try to run webcamd in the foreground. It is also possible to
> enable debugging when you build webcamd from ports. Also, usbdump, can
> dump the traffic of these devices so that you see exactly what is going on.
This is devinfo output with the two webcams plugged directly into the
USB plugs on the APU3:
xhci0
usbus0
uhub1
uaudio0
pcm0
uaudio1
pcm1
Where "uhub1" is uhub1: <0x1022 XHCI root HUB, class 9/0, rev 3.00/1.00,
addr 1> on usbus0
>
> Can you show what usbconfig tell about these two devices when they are
> connected?
I sent the output of dump_all_desc for one of them in the initial email.
I can send both or other output if needed?
This is the brief output for both:
===========================================
$ sudo usbconfig -d ugen0.3 dump_device_desc
ugen0.3: <Jieli Technology USB PHY 2.0> at usbus0, cfg=0 md=HOST
spd=HIGH (480Mbps) pwr=ON (500mA)
bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0200
bDeviceClass = 0x00ef <Miscellaneous device>
bDeviceSubClass = 0x0002
bDeviceProtocol = 0x0001
bMaxPacketSize0 = 0x0040
idVendor = 0x1224
idProduct = 0x2a25
bcdDevice = 0x0100
iManufacturer = 0x0001 <Jieli Technology>
iProduct = 0x0002 <USB PHY 2.0>
iSerialNumber = 0x0000 <no string>
bNumConfigurations = 0x0001
$ sudo usbconfig -d ugen0.2 dump_device_desc
ugen0.2: <Jieli Technology USB PHY 2.0> at usbus0, cfg=0 md=HOST
spd=HIGH (480Mbps) pwr=ON (500mA)
bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0200
bDeviceClass = 0x00ef <Miscellaneous device>
bDeviceSubClass = 0x0002
bDeviceProtocol = 0x0001
bMaxPacketSize0 = 0x0040
idVendor = 0x1224
idProduct = 0x2a25
bcdDevice = 0x0100
iManufacturer = 0x0001 <Jieli Technology>
iProduct = 0x0002 <USB PHY 2.0>
iSerialNumber = 0x0000 <no string>
bNumConfigurations = 0x0001
$
===========================================
> Are you running -stable ?
>
Yes, FreeBSD 12.2-STABLE r367109 GENERIC amd64.
/Thomas
More information about the freebsd-usb
mailing list