Raspberry Pi 4 (4 GB) + Sabrent 2.5G Ethernet-to-USB 3.0 Adapter?


Has anyone tried this? https://www.amazon.com/gp/product/B08979LXJK/

I’ve got a 2.5G switch coming, and have quite a bit of network I/O set up on the Pi, so I’m interested in upgrading its network speed.

Has anyone tried this?

Bonus: Has anyone figured out a way to trunk the built-in 1Gbps ethernet port with a 1G or 2.5G USB adapter?

Even the 1gb over usb3 works at 300mb only. So no point in using 2.5g.
You can give it a try though :wink: and share your results.

Bwahaha. Thank you!

I thought it was just me not knowing how to get maximum power out of the 1Gbps USB ethernet adapter I have. Mine capped out around 300 megabits, as well.

Even the 1gb over usb3 works at 300mb only.

That was true for Raspberry Pi 3 where the 1GB Ethernet was connected over the USB2.0 hub.

Raspberry Pi 4 has its own dedicated RMII connection to the 1GB Ethernet.
and has a PCIe 2.0 single lane dedicated to the USB3.0 controller.

The PCIe→USB3.0 connection should be able to work at ~4 Gbps bandwidth (5 GT/s).
USB3.0 has a bandwidth of ~3 Gbps (depends on the encoding mode).
So approaching 2.5 Gbps Ethernet using an USB3.0 adapter shouldn’t be impossible from a bandwidth point of view.

The remaining question is would the Raspberry Pi’s CPU be able to cope with the load of supporting that network speed + the USB3.0 overhead (though USB3 can require processing than USB2).

There is definitely some success in using high networking speeds with Raspberry Pi 4, though most of the efforts is done by connecting the controllers directly to the PCIe, either by using the compute module which directly exposes it (e.g.: Jeff Gerling tests with network), or by desoldering the VL806 USB3 controller and soldering a passthrough and using a “PCIe over USB cables” expansion slot.
Reaching high network speeds without CPU saturation might require some tweaks.


(I admit I had no idea what RMII was. See: Media-independent interface - Wikipedia )

Thanks, @DrYak . I was definitely well off the mark, there. I checked with iperf3, and got 800Mbps-900Mbps off the Pi. Average was around 867 Mbps or so, which is what I would think would be normal given overhead? I’m not using Jumbo Frames or any other optimization, as I’d need to understand not only how to do the optimization, but figure out what other devices need to also have those optimizations done and how to isolate them on a VLAN to avoid messing with the slower devices on the network. I’ve never even set up a VLAN before, so…one thing at at time. :slightly_smiling_face:

(I saved the results and may try to figure out how to make a fun graph out of them.)

I love Jeff Gearling’s stuff, btw. Watching him got me interested in pushing my Pi further, even if I don’t really have a great need to do so.

I didn’t realize the USB3 connection could work at up to 4 Gbps.

I think the CPU is definitely a bottleneck. I’ve got a USB 3.2Gen2x2 (?!) enclosure for an MVME drive that I’m using as my boot drive. … Okay, it’s 20Gbps, whatever that flavor of USB is this week. Certainly fast enough not to come anywhere close to being a bottleneck on a Pi.

On a read test using hdparm, I see ~300MB/sec, which from Jeff Gearling’s results is exactly what I should be seeing on a drive going as fast as it can on that bus. That’s 2.4 Gbps on a bus with a theoretical max speed of 5 Gbps.

Is that 2.4 Gbps because (1) each USB 3.0 port gets half the available 5 Gbps of the USB 3 bus, shared between them; or (2) the CPU itself really is that much of a bottleneck?

If it’s (1), I’d expect good results with the 2.5GbE adapter. Anything in the 1.8* Gbps-2.2Gbps range would seem to indicate it’s working well.

  • Given my iperf3 result with the onboard Ethernet, I’d expect pair bonding two 1Gbps ports to hit about 1.6-1.8 Gbps. I’d expect a single 2.5Gbps port to outdo a pair of slower ones, unless it really does choke the CPU.