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.
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.
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.
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
- Download the latest driver from Realtek’s website
- Unzip it and copy the
50-usb-realtek-net.rulesfile 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
- Verify that the adapter negotiated 2.5 Gbps Full duplex and is using the Realtek r8156 driver.