NVMe to USB 3.1 enclosure buggy in Linux (RTL9210B chipset)

I purchased a Samsung 970 evo plus NVMe SSD and a “UnionSine Dual Protocol M2 NVMe to USB 3.1” enclosure to go along with it. The enclosure seems high quality, all metal, and includes a thermal transfer paste. Doesn’t seem to be cheap chinese stuff.

The SSD was thoroughly checked with badblocks on linux, no errors come up. When I connect the same drive through the enclosure, various weird behavior can be noticed. Sometimes the drive appears as a 512kB drive in the lsblk list. Other times, it works for a while, but if I dd the drive it will, again, freak out and disappear, or re-appear as the 512kB drive. Switching cables hasn’t solved the issue (in case a USB cable was at fault). I tried this on Debian testing, but also re-installed Debian stable to be absolutely sure this isn’t a case with the testing distribution. Sometimes testing it through badblocks works, but I haven’t left it to completion.

The cases use the RTL9210B chipset as per the product page on where I bought it (aliexpress). I wonder if this is a case of said chipset not having proper support in the linux kernel (6.1.x). Can anybody shed some light?

I also found this guy online, possibly facing some similar issues, but I am not sure I can understand what he is talking about:
https://www.youtube.com/watch?v=KSHmi5KhKG8

You have a very lengthy thread about controllers here:

I own one, currently hosting a cheap Lexar drive and it works without a problem. I used it to clone my OS drive before reinstalling the system.

Mine reports as Bus 004 Device 002: ID 0bda:9210 Realtek Semiconductor Corp. RTL9210 M.2 NVME Adapter in lsusb, as Realtek RTL9210B-CG (1.00) in gnome-disk-utility and is marked RTL9210B on the die. Host OS is Fedora 38 with kernel 6.4.4-200.fc38.x86_64.

Did you try it in different USB ports (as is, connected to a different controller internally) or other machines? Maybe you’re just unlucky with a faulty unit.

My general experience has been that nvme to usb is pretty dodgy.

Outside of flawed chipsets/firmware, one thing tgat can silently happen is overheating.

I have a dual sata ssd set to raid1 adapter that I’ve been running a portable windows install on. The setup has it’s quirks. Originally it would occasionally just drop out under load. Putting a heatsink on the chip seems to resolve that.

If the system crashes, the drive may not show up on next reboot, and this will persist no matter the amount of reboots. I’ve found that booting to the boot source selection selection screen of the UEFI/BIOS and unplugging and plugging back in will allow it to show up again shortly, but not immediately.

Rarely, moving the device/cable may cause a crash because the connection gets lost. Maintaining a reliable usb3 connection is not easy apparently.

One thing that happened a lot with nvme to usb enclosures I’ve tried was the drive getting caught in a bad state, even on a safe shutdown, requiring a power cycle procedure to get it working again. It’s possible proper shutdown commands were not being properly sent by the controller. In particular samsung consumer drives seem to have issues, and either some of the old small 16-32gb optanes or an old consumer intel nvme also possibly had this occur as well, but I can’t remember clearly. Another samsung enterprise drive from ebay straight up became irrecoverable.

I wonder how possible/viable it would be for an SoC to present it’s storage as a block device via USB or Ethernet to another system would be.

I have a couple of these 0bda:9210, NVME/SATA dual, and they detect as 10Gb/s UAS, and work well, I can get 80% bandwidth doing a ZFS resilver. I have some other ones that don’t work so well, I think similar USB connection, but I have have them in front on me now. Pay you money, take you chances it seems, unfortunately.

Problem resolved.

My issue was that the drive was not getting enough power. I use a nettop, and it seems the USB ports are a bit weak (it is constantly powering 2x 2.5’’ drives though). Once I used the NVMe to USB drive over a new powered hub, it not only works flawlessly, it is also incredibly fast (dd reaches 440MB/sec, I need to do more testing to make sure). The drive is also getting very warm.

Now it seems like I may move both of the 2.5’’ drives over to the hub. Their performance hasn’t been good

4 Likes

This thread was a big help! I had a Sabrent NVME enclosure with a 2TB SSD that was getting full speed on USB 3.2 10GB ports on my desktop and laptop, but was pulling USB2 speeds on my media servers USB 3.0 ports. Ubuntu reported the enclosure as a Realtek RTL9210 controller and USB version 2.1.
After finding the last update on this thread, I tossed it on a USB 3.0 5GB hub that uses power from a 2nd USB port, and now getting full USB 3.0 5GB speed on the media servers USB 3.0 controller.
Appears that possibly the NVME enclosures will throttle to USB2 speeds if they cant pull enough power, or drop offline

This topic was automatically closed 273 days after the last reply. New replies are no longer allowed.