ORICO has sent me a sample of a USB 4.0 M.2 NVMe SSD enclosure for review, which was timely as I did not have a fast USB storage option for testing. In this post, I’ll check out the hardware, show how to install an NVMe SSD, and test performance in UP Xtreme i11 mini PC since it happens to come with a USB4 port.
ORICO USB 4.0 M.2 SSD enclosure specs and unboxing
The exact model I received is the ORICO M234C3-U4 with a Rose Gold aluminum enclosure (107x50x17mm), supporting M.2 M-Key and B+M Key 2230, 2242, 2260, 2280 SSDs (more on that later), and offering up to 40 Gbps through its USB 4.0 port.
The device ships with a USB Type-C to USB Type-C/Type-A cable, a thermal pad, a heatsink, two screws, and a multilingual user manual.
There’s only one USB Type-C port one the device.
M.2 NVMe SSD installation
I’ll be using a 256GB Apacer M.2 2280 PCIe Gen3 x4 SSD (AS2280P4) that’s supposed to support 1,800 MB/s read speeds and 1,100 MB/s write speed. 1,800MB/s corresponds to about 14.4 Gbps. That’s not quite close to 40 Gbps, but still higher than the 10Gbps for USB 3.1 Gen 2 ports, so we’ll see if we can reach anything close to those speeds.
My SSD comes with a sticker, and I suppose it should be better to remove it before installing the thermal pad for even better cooling. The only problem is that it serves as a warranty sticker too (See “Warranty void is label removed” at the bottom left corner). So I’ve kept it. Just remember to remove the plastic films before putting the thermal pad on the SSD.
The next step is to clip the heatsink on top of the thermal pad.
We know need to open the enclosure secured with a single screw.
While the specifications mention support for M.2 2230, 2242, 2260, and 2280 SSDs, there are no mounting holes for the smaller size, so getting an M.2 2280 NVMe SSD is the only practical choice.
We can now insert the SSD in the enclosure, secure it with one of the provided crews, before putting the cover back in place.
ORICO USB 4.0 M.2 SSD enclosure in Ubuntu 20.04
Here’s the USB 4.0 enclosure connected to the USB 4.0 Type-C port of UP Xtreme i11 mini PC running Ubuntu 20.04. The metal enclosure is quite hot to the touch even at idle, but that’s a good sign meaning it’s cooling the SSD.
There’s a fairly long output in the kernel log once I insert the device, but it ends with:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[19177.462958] usb usb5: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.13 [19177.462960] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [19177.462961] usb usb5: Product: xHCI Host Controller [19177.462963] usb usb5: Manufacturer: Linux 5.13.0-48-generic xhci-hcd [19177.462964] usb usb5: SerialNumber: 0000:17:00.0 [19177.463074] hub 5-0:1.0: USB hub found [19177.463084] hub 5-0:1.0: 2 ports detected [19177.463190] usb usb6: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.13 [19177.463192] usb usb6: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [19177.463193] usb usb6: Product: xHCI Host Controller [19177.463194] usb usb6: Manufacturer: Linux 5.13.0-48-generic xhci-hcd [19177.463196] usb usb6: SerialNumber: 0000:17:00.0 [19177.463278] hub 6-0:1.0: USB hub found [19177.463286] hub 6-0:1.0: 2 ports detected [19177.473185] nvme nvme0: missing or invalid SUBNQN field. [19178.773047] nvme nvme0: allocated 64 MiB host memory buffer. [19178.784324] nvme nvme0: 8/0/0 default/read/poll queues [19184.657901] thunderbolt 0-1: new device found, vendor=0x8086 device=0x12 [19184.657909] thunderbolt 0-1: Intel USB4.0 SSD |
There are two new USB hubs (Bus 0006 and 005) and an Intel USB4.0 SSD which looks good, but those are USB 3.0 and USB 2.0 root hubs.
1 2 3 4 5 6 7 8 |
$ lsusb Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 002: ID 1934:1202 Feature Integration Technology Inc. (Fintek) Fintek U2U F81532 AA66 Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 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 Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub |
and indeed when I look at the data with lsusb, there’s no USB 4.0 port, nor anything at 40000M:
1 2 3 4 5 6 7 8 |
$ sudo lsusb -t /: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M /: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M |__ Port 9: Dev 2, If 0, Class=Vendor Specific Class, Driver=f81534, 480M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M |
That’s odd. So we probably need to check with thunderbolt/usb4.0 specific tools:
1 |
sudo apt install thunderbolt-tools |
Now I can get more information:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$ tbtadm devices 0-1 Intel USB4.0 SSD authorized not in ACL $ tbtadm topology Controller 0 ├─ Details: │ ├─ Name: Unknown device, Unknown vendor │ └─ Security level: SL0 (none) │ └─ USB4.0 SSD, Intel └─ Details: ├─ Route-string: 0-1 ├─ Authorized: Yes ├─ In ACL: No └─ UUID: 00166a50-7dc4-8680-ffff-ffffffffffff |
But that does not show anything about speed, just that a Thunderbolt device is detected. (Check out the comments section for more information about that). The SSD drive is also properly detected:
1 2 3 4 5 |
$ inxi -D Drives: Local Storage: total: 357.72 GiB used: 49.11 GiB (13.7%) ID-1: /dev/nvme0n1 vendor: Apacer model: AS2280P4 256GB size: 238.47 GiB ID-2: /dev/sda vendor: Transcend model: TS128GSSD452K2 size: 119.24 GiB |
… although not mounted, so I used pmount after modifying /etc/pmount.allow file to resolve the error “device /dev/nvme0n1 is not removable”.
Let’s see what kind of performance we have with iozone:
1 2 3 4 5 6 7 8 9 |
devkit@UPX-i11:/media/nvme0n1$ sudo iozone -e -I -a -s 10000M -r 16384k -i 0 -i 1 -i 2 Iozone: Performance Test of File I/O Version $Revision: 3.489 $ Compiled for 64 bit mode. Build: linux-AMD64 random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 10240000 16384 1115937 1114626 1155245 1154974 1155950 1115576 |
I repeated the benchmark three times with about the same results each time. All results, namely sequential write/read and random read/write, are about in the same range of about 1100 MB/s which may indicate some issue. That number is also close to 10 Gbps, so we may indeed have a USB connection limited to 10 Gbps as reported by lsusb -t command.
For comparison, I’ve also run the fio command used by Hardkernel to test ODROID-M1‘s NVME SSD performance:
1 2 |
devkit@UPX-i11:/media/nvme0n1$ sudo fio --filename=/dev/nvme0n1 --direct=1 --rw=read --bs=1024k --ioengine=libaio --iodepth=64 --size=4G --runtime=10 --numjobs=4 --group_reporting --name=fio-rand-read-sequential --eta-newline=1 --readonly | grep READ READ: bw=1204MiB/s (1263MB/s), 1204MiB/s-1204MiB/s (1263MB/s-1263MB/s), io=12.2GiB (13.2GB), run=10417-10417msec |
1,263MB/s is about 12% higher than the 1,128MB/s read speed found with iozone, but still far from the 1800MB/s advertised for the SSD, and 1,263 MB/s happens to be 10104 Mbps.
It looks like UP Xtreme i11 may be the bottleneck here as the usb4.0 port is advertised as having “usb3.10” capabilities with a maximum speed of 10000Mbit/s:
1 2 3 4 5 6 7 8 9 10 11 |
$ sudo lshw | grep -A10 -i usb .... -usbhost:1 product: xHCI Host Controller vendor: Linux 5.13.0-48-generic xhci-hcd physical id: 1 bus info: usb@4 logical name: usb4 version: 5.13 capabilities: usb-3.10 configuration: driver=hub slots=4 speed=10000Mbit/s |
If I understand that correctly that’s normal we are limited to 10 Gbps speed. I’ll double-check with AAEON to make sure.
[Update: AAEON has purchased a similar ORICO M.2 SSD Thunderbolt enclosure (ORICO-M2V02-C4) and tested it on their side with UP Xtreme i11 and a Samsung MZ-V8V500 SSD with the iozone utility.
That’s a sequential/random write speed of up to 1700MB/s (13.6Gbps), and a sequential/random read speed of up to 2600MB/s (20.8Gbps), so both data transfer rates are over 10Gbps showcasing that the USB4 port can offer up to 20Gbps transfer speeds, double what USB 3.1 Gen2 can do.
]
A closer look at the board’s components
When I installed the SSD, I did not do a full teardown. So let’s do that now to find more details about the hardware.
We have a chip marked “Intel X212TC27 JHL7440” that’s an Intel JHL7440 Thunderbolt 3 controller that should be capable of 40 Gbps speed and a JMS583 chip that sounds familiar as the “USB 3.1 Gen 2 to PCIe NVMe Gen3 x2” has been found in several products covered in CNX Software over the years… I initially found it quite odd to have a 10 Gbps chip in a 40 Gbps device, but that’s for backward compatibility, and if I connect the driver to the USB 3.0 port from my laptop, the JMS583 chip is used instead (See comments for details).
The “USB 4.0” 40Gbps model reviewed here costs $169.99 on Amazon, while the price for the 20Gbps model drops to $54.99, and the 10 Gbps model sells for just $29.99. So if you purchase this item on Amazon, double-check your USB 4.0 / Thunderbolt port does indeed support 40 Gbps, as well as your drive speed in order to avoid overpaying. [Update: an industry insider working on USB4 has confirmed this enclosure has nothing to do with USB4, and it’s just an enclosure combining Thunderbolt 3 with a fallback to USB 3.2 Gen 1]

Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress