Issues with USB2.0 device on xavier

Hi,

I have an issue connecting a USB2.0 camera to the Xavier. If I connect it directly, the device is not recognized and the following output appears in dmesg:

[  524.844638] usb 1-2: new high-speed USB device number 8 using tegra-xusb
[  524.867936] usb 1-2: unable to read config index 0 descriptor/start: -32
[  524.868193] usb 1-2: chopping to 0 config(s)
[  524.869766] usb 1-2: New USB device found, idVendor=199e, idProduct=8302
[  524.869774] usb 1-2: New USB device strings: Mfr=2, Product=1, SerialNumber=3
[  524.869779] usb 1-2: Product: pp
[  524.869782] usb 1-2: Manufacturer: vv
[  524.869785] usb 1-2: SerialNumber: 123
[  524.870632] usb 1-2: no configuration chosen from 0 choices

If I issue a usb reset for this device, it is correctly detected - so maybe this is a timing issue? This is the dmesg output after the reset:

[ 1197.137882] usb 1-2: reset high-speed USB device number 8 using tegra-xusb
[ 1197.157640] usb 1-2: device firmware changed
[ 1197.157784] usb 1-2: USB disconnect, device number 8
[ 1197.277176] usb 1-2: new high-speed USB device number 9 using tegra-xusb
[ 1197.299471] usb 1-2: New USB device found, idVendor=199e, idProduct=8302
[ 1197.299491] usb 1-2: New USB device strings: Mfr=2, Product=1, SerialNumber=3
[ 1197.299495] usb 1-2: Product: pp
[ 1197.299499] usb 1-2: Manufacturer: vv
[ 1197.299502] usb 1-2: SerialNumber: 123
[ 1197.302058] uvcvideo: Found UVC 1.00 device pp (199e:8302)
[ 1198.141530] uvcvideo 1-2:1.0: Entity type for entity Extension 4 was not initialized!
[ 1198.141812] uvcvideo 1-2:1.0: Entity type for entity Processing 3 was not initialized!
[ 1198.141980] uvcvideo 1-2:1.0: Entity type for entity Camera 1 was not initialized!
[ 1198.143049] input: pp as /devices/3610000.xhci/usb1/1-2/1-2:1.0/input/input12

The reset is not reliable though since on the customer machine (same Jetpack version), the device is still not detected after a usb reset.

Is there anything I could tweak to get the device detected more reliably?

Hi,
For more information, could you try to a USB hub?
Would like to know if the issue is present through Xavier USB3 Type A port -> USB HuB -> USB2 camera.

Please also check if you use r32.1

Hi DaneLLL,

I use the SDKManager 0.9.11.3405 with Jetpack 4.2. Does this install R32.1? In /etc/nv_tegra_release, only R32 is shown:

$ cat /etc/nv_tegra_release 
# R32 (release), REVISION: 1.0, GCID: 14531094, BOARD: t186ref, EABI: aarch64, DATE: Wed Mar 13 07:41:08 UTC 2019

Using a USB2 hub improves the situation, but not completely. On my system, when the camera is connected to the hub during boot, the “unable to read config…” error comes up. If I connect the camera after the system is bootet, it is detected most of the time.

Our customer tried a USB 3 hub but this hub did not fix the error in any case. I am awaiting test results with a USB 2 hub from the customer.

@DaneLLL

The customer tried with a USB2.0 Hub and still got the same issue. Is there any known issue with USB2.0 on the Xavier?

Hi,
We don’t see the issue with Logitech c930e usbcam. What is the brand and ID of your camera?

@DaneLLL

This is the camera in question:

https://www.theimagingsource.com/products/industrial-cameras/usb-2.0-color/dfk42buc03/

We manufacture this camera by ourselves and do not observe similar issues on other machines like regular desktop computers.

I will analyze the USB traffic with a bus analyzer and come back to this topic if I find any issue.

On a desktop PC, if you run “lsusb” you will see an “ID”. For example, a recovery mode Xavier is “0955:7019”. You might want to include the verbose lsusb for that particular device (change the ID in this example for whatever your camera shows up as):

sudo lsusb -d -955:7019 -vvv

Use a HUB if you have to to get that information on the host PC. You might then see what the same output is from the Xavier (as a comparison) when using a HUB or anything which gives the best response. I am curious how the two differ, if at all. If they show up as the same, then it is an issue outside of USB…if some parts of USB differ, then it could be narrowed to USB or something USB talks to.