Plugable makes this inexpensive 2.5 Gigabit Ethernet USBC-E2500 adapter. It is based on Realtek RTL8156B chip. On Windows and macOS it works out of the box. If you want to use it on a Linux machine like WLAN Pi Pro or Raspberry Pi 4, expect some troubles along the way, but good performance when you get there.
Windows 11
When they say “update the driver using Windows Update first”, they mean it. Windows 11 will recognise the adapter and you can start using it, but the default driver distributed with Windows 11 significantly reduces this adapter’s performance.
Now, let’s use Windows Update to download the latest driver.
As you can see, download throughput (from iperf3 server to iperf3 client) has dramatically improved.
Although the box suggests Jumbo frame support, Windows driver settings don’t give me any option to edit the MTU size. So, I assume Jumbo frames are not supported.
MacOS Monterey
On macOS, this adapter works out of the box with no additional driver installation required. That’s a very nice surprise. And performance is great.
Auto-negotiation worked just fine. If you want to configure speed or MTU manually, you can, but Jumbo frames are not supported on macOS either.
Linux
Now the bad news. If you are considering to use this adapter on a Linux machine, the default driver cdc_ncm
is a trouble as it only supports 2.5 Gbps Half duplex. Setting Full duplex manually using ethtool
command doesn’t work either.
As you might expect, with the default driver and Half duplex, throughput is very poor.
On WLAN Pi Pro and Raspberry Pi 4 running 5.15 Linux Kernel I managed to fix the duplex issue by the steps listed below. But I hit new auto-negotiation issue between the Plugable adapter and Cisco Catalyst WS-C3560CX-8XPD switch. It took the adapter to eventually negotiate 2.5 Gbps Full duplex around 15 minutes of constantly flapping the interface. Forcing speed and duplex on the Plugable adapter by ethtool
did not work. Certainly not ideal, and definitely worth testing before you commit to the Plugable adapter. With other multigigabit adapters, the Plugable had no negotiation issues.
How to force Linux to use the right driver
To enable Full duplex capability, we need to tell Linux to use Realtek r8156
driver instead of the default cdc-ncm
.
- Download the latest driver from Realtek’s website
- Unzip it and copy the
50-usb-realtek-net.rules
file to your Linux machine - On the Linux machine copy this file here
sudo cp 50-usb-realtek-net.rules /etc/udev/rules.d/
- Reboot by
sudo reboot
- Verify that the adapter negotiated 2.5 Gbps Full duplex and is using the Realtek r8156 driver.
Hi Jiri, thanks for your answer on the other thread about the 5GBE Sabrant. And today I tested the Sabrent 2.5 GBE USB Adapter on a Raspberry Pi 4. And thanks to your advice I could get approx 2 Gbit/s from the Pi 4, after copying the rules files from the driver. I didn’t compile and installed the driver, I’m not sure why it’s not needed, but anyway it works. Thanks a lot.