Hi,
I’m trying to connect an Oculus Quest 3 to my Jetson (Jetpack 6.4) through ADB. The Quest is connected to the Jetson through USB A → USB C, and the Quest shows up in lsusb.
When doing adb devices, no devices come up. This isn’t a Quest-side error, it could connect successfully on Jetpack 5.x. After upgrading to Jetpack 6, no devices come up.
Is this caused by a change in the usb drivers? What would fix it?
Thank you in advance
I know nothing about the particular device, this is just some loose related trivia.
If you see the device in lsusb
, then it implies that the USB is functioning. On rare occasions you will find a USB device which demands a higher speed signal, e.g., mandatory USB 3.1 gen. 1 which cannot back off to USB2 (e.g., some cameras). In that case you will still see something in lsusb
, but a lot will be missing. This is really uncommon, and since part of this shows up, I doubt this is an issue (just pointing it out).
USB is a “plug-n-play” bus. This means that USB detects a plug-in event, and then the hot plug layer will broadcast the nature of the device such that a driver can take ownership (a USB device can self-describe). It is almost always the case in situations like yours that no driver took ownership. In turn, this is usually because the driver is not present (there could be an exception, e.g., not enough power is supplied).
For reference, JetPack is just the GUI front end to the flash software, and what actually gets flashed is L4T (and in turn this is just Ubuntu after adding NVIDIA drivers). JetPack 5.x uses L4T R35.x, and JetPack 6.x uses L4T 36.x. L4T R35.x and previous used NVIDIA’s edited kernel, and as of R36.x, the mainline kernel is used instead. NVIDIA controlled the configuration of the kernel in L4T R35.x, but default kernel configuration (including drivers) in R36.x is chosen by mainline, not by NVIDIA.
It is very very likely that there is just a driver missing. You can grep
for current kernel configuration, but this isn’t useful unless you know what the driver symbol is. I will make a guess that the driver symbol has one of your key words in it (likely I’m wrong), in which case you could check like this:
zcat /proc/config.gz | egrep -i '(adb|oculus|quest)'
Perhaps the driver is (A) missing, but (B) available as a module. In the latter case you don’t need to flash and installing is simple, but default docs do not reflect the easy way to do this. If you find your driver symbol, and if the driver is available as a module, and if you compile against a configuration which otherwise matches the running kernel’s configuration (including CONFIG_LOCALVERSION
), then you basically just copy the module file to the right place under “/lib/modules/$(uname -r)/kernel/
” and you are done (also requires either reboot or “sudo depmod -a
”).
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.