NVME to USB 3.1 adapter not recognized as drive

Hi Nvidia forums!

I have a NVME to USB 3.1 adapter. It does not work with the latest jetpack.

It shows up in lsusb as:

Bus 002 Device 003: ID 152d:0583 JMicron Technology Corp. / JMicron USA Technology Corp.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

but it does not show up in lsblk.

Here is the dmesg output:

[ 105.951646] tegra-xusb 3530000.xhci: exiting ELPG
[ 105.962287] tegra-xusb 3530000.xhci: Firmware timestamp: 2019-07-08 19:32:42 UTC, Version: 55.15 release
[ 105.964141] tegra-xusb 3530000.xhci: exiting ELPG done
[ 106.199247] usb 2-1: new SuperSpeed USB device number 2 using tegra-xusb
[ 106.222633] usb 2-1: New USB device found, idVendor=152d, idProduct=0583
[ 106.222693] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 106.222720] usb 2-1: Product: USB 3.1 Storage Device
[ 106.222739] usb 2-1: Manufacturer: JMicron
[ 106.222755] usb 2-1: SerialNumber: 0123456789ABD51C
[ 106.277687] scsi host2: uas
[ 106.278644] scsi 2:0:0:0: Direct-Access Samsung SSD 970 EVO 3103 PQ: 0 ANSI: 6
[ 106.326027] tegra-asoc: sound: ASoC: CPU DAI ADMAIF1 not registered
[ 106.332321] tegra-asoc: sound: snd_soc_register_card failed (-517)
[ 114.355857] tegra-asoc: sound: ASoC: CPU DAI ADMAIF1 not registered
[ 114.362215] tegra-asoc: sound: snd_soc_register_card failed (-517)
[ 116.324298] sd 2:0:0:0: [sda] Spinning up disk…
[ 119.338177] .
[ 126.378135] .
[ 133.418151] .
[ 164.950287] sd 2:0:0:0: tag#0 uas_eh_abort_handler 0 uas-tag 1 inflight: CMD
[ 164.950395] sd 2:0:0:0: tag#0 CDB: opcode=0x0 00 00 00 00 00 00
[ 164.950706] scsi host2: uas_eh_bus_reset_handler start
[ 165.079924] usb 2-1: reset SuperSpeed USB device number 2 using tegra-xusb
[ 165.128999] scsi host2: uas_eh_bus_reset_handler success
[ 175.178380] sd 2:0:0:0: tag#0 uas_eh_abort_handler 0 uas-tag 1 inflight: CMD
[ 175.178489] sd 2:0:0:0: tag#0 CDB: opcode=0x0 00 00 00 00 00 00
[ 175.178552] scsi host2: uas_eh_bus_reset_handler start
[ 175.311839] usb 2-1: reset SuperSpeed USB device number 2 using tegra-xusb
[ 175.361039] scsi host2: uas_eh_bus_reset_handler success
[ 175.361183] sd 2:0:0:0: Device offlined - not ready after error recovery
[ 175.361589] ready
[ 175.361870] sd 2:0:0:0: rejecting I/O to offline device
[ 175.368241] sd 2:0:0:0: rejecting I/O to offline device
[ 175.374013] sd 2:0:0:0: rejecting I/O to offline device
[ 175.379851] sd 2:0:0:0: [sda] Read Capacity(16) failed: Result: hostbyte=0x01 driverbyte=0x00
[ 175.379890] sd 2:0:0:0: [sda] Sense not available.
[ 175.386443] sd 2:0:0:0: rejecting I/O to offline device
[ 175.393167] sd 2:0:0:0: rejecting I/O to offline device
[ 175.399356] sd 2:0:0:0: rejecting I/O to offline device
[ 175.405092] sd 2:0:0:0: [sda] Read Capacity(10) failed: Result: hostbyte=0x01 driverbyte=0x00
[ 175.405131] sd 2:0:0:0: [sda] Sense not available.
[ 175.410281] sd 2:0:0:0: rejecting I/O to offline device
[ 175.415943] sd 2:0:0:0: rejecting I/O to offline device
[ 175.421552] sd 2:0:0:0: rejecting I/O to offline device
[ 175.427422] sd 2:0:0:0: [sda] Write Protect is off
[ 175.432385] sd 2:0:0:0: [sda] Mode Sense: 00 00 00 00
[ 175.432500] sd 2:0:0:0: rejecting I/O to offline device
[ 175.438284] sd 2:0:0:0: [sda] Asking for cache data failed
[ 175.443893] sd 2:0:0:0: [sda] Assuming drive cache: write through
[ 175.450024] sd 2:0:0:0: rejecting I/O to offline device
[ 175.455281] sd 2:0:0:0: rejecting I/O to offline device
[ 175.460522] sd 2:0:0:0: rejecting I/O to offline device
[ 175.466074] sd 2:0:0:0: [sda] Attached SCSI disk

Dmesg outputs stops here, check lsblk after shows no device mounted on /dev/sda

System:
uname -r
4.9.140-tegra

Anecdotally, I’ve also tried this on jetpack 3.3 latest. It did not work on the USB 3.0 port but it did on the USB 2.0 port. On that machine it was using the usb-driver not uas. USB 2.0 will not ‘work’ for me as the write speeds are too slow. This works out of the box on my standard 16.04 and 18.04 machines (laptops). My jetsons are on an auvidea j120 carrier.

I believe I’m missing some driver or dtb that will enable this functionality. Can you tell me if this usage is supported and how to fix it?

Thanks,

Alex

Hi,
This probably helps:


Please add the device ID and try again.

Hi Dane,

Thanks for the suggestion. One hitch, the image using is off r28.2.1 and max_burst_quirk_list does not exist in xhci-tegra.c. I don’t know anything about modifying kernel files. Can I just add that under the function disable_usb_persist_quirk_list?

Thanks,

Alex

I’m going to attempt to copy the xhci-tegra.c in the linux 4.9 branch and move it with the suggested changes to the linux 4.4 r 28.2.1 branch

The above fix is for R32 and the xhci-tegra.c has changed dramatically from Linux 4.4 to 4.9. I still tried naively updating the 4.4 r 28.2.1 kernel xhci-tegra to make the 4.9 version with this:

then I built the kernel a flashed it to my jetson with

sudo ./flash.sh -r -k kernel -K /home/user/kernel-out/kernel/arch/arm64/boot jetson-tx2 mmcblk0p1

ubuntu launched fine and could tell no difference from before. dmesg still throws and never I see the drive in lsblk:

[ 1968.990669] usb 1-3: reset high-speed USB device number 3 using xhci-tegra

Do you have a more detailed way of apply the fix in an r28.2.1 based L4T? I have little experience with alter kernel files. If there’s no solution here, I’ll have to move on to a manual work around or start looking at migrating to R32, but that is a whole can of worms for my current project.

Hi,
Does the issue happen on default carrier board? Or specific to Auvidea J120 board? If it is specific to J120 board, you would need to contact Auvidea for further support.

I will try that next.

This does not happen on the jetson tx2 dev board. Thanks for the help