USB 3.0 to 2.5Gbps Ethernet adapter review

Late last month, I received hardware to test 2.5GbE and WiFi 6 with namely a Radxa E25 SBC, Xiaomi AX6000 WiFi 6 router, and an 8-port TP-Link 2.5GbE switch. I intended to start testing 2.5GbE networking with UP Xtreme i11 mini PC and Radxa E25, but I thought it might be a good idea to get a USB 3.0 to 2.5Gbps Ethernet adapter just in case.

I purchased a no-name dongle for under $15 (475 THB on Lazada) in Thailand, but a USB 3.0 dongle that looks exactly the same can also be purchased on Aliexpress with either a USB Type-A port or a USB Type-C port. There’s some issue with Radxa E25 (it won’t boot it), so I ended up testing the dongle with UP Xtreme i11 mini PC.

USB 3.0 to 2.5Gbps Ethernet adapter unboxing

USB to LAN 2.5Gbps Ethernet Adapter

The package, marked “USB to LAN Gigabit Ethernet Adapter”, has “USB 3.0” and “2.5 Gbps” ticked, a good sign since it is just what I ordered…

USB to LAN 2.5 Gigabit Ethernet Adapter

The dongle comes with a driver CD, but I did not use it as I connected the dongle to my laptop running Ubuntu 20.04.

2.5GbE USB dongle teardown: RTL8156B inside

I’ve done all testing first before taking it apart, but let’s show the photos of the internals to see exactly what we have here.

RTL8156B adapter

The adapter is based on Realtek RTL8156B “10/100/1000M/2.5G Ethernet controller for USB 3.0 applications”, and a low-profile RJ45 jack that makes it fairly thin (for a USB Ethernet adapter).

2.5GbE USB 3.0 dongle

The back of the XHT156B v2.0 board has an unpopulated footprint with 8 pins. The description of the Realtek chips states that “The RTL8156B(S) features embedded One-Time-Programmable (OTP) memory that can replace the external EEPROM (93C46/93C56/93C66)”. So that must be the footprint for external EEPROM, as for instance, 93C46 EEPROM is available in various 8-pin packages

Info in Ubuntu 20.04

The first time I inserted the adapter into the USB 3.0 port of my laptop, I thought it had some issues as I could not find any new USB messages in dmesg. It turned out there were just some delays, as the Realtek USB LAN device showed up with lsusb:

I did notice some warnings/errors? in /var/log/syslog:

But as I connected the USB dongle to the switch, and check information with inxi, the link was up:

That’s a 2500 Mbps link but only at half-duplex, so I’ll just skip the full-duplex test I normally do with iperf.

Back to the kernel log with dmesg:

As a side note, I’m using Xiaomi AX6000 as the DHCP server, but I have no wired internet in my current location (only through a 4G LTE WiFi modem without RJ45 port), so I have to tick “Use this connection only for resources on its network” in both IPv4 and IPv6 tabs to prevent my laptop from accessing the Internet from the USB LAN port.

use this connection only for-resources on its network

2.5GbE testing with UP Xtreme i11

Once everything is connected we can easily check whether all interfaces are using a 2500 Mbps link by checking the LEDs on the TP-Link switch.

TP-Link 2.5GbE LEDs

If the left LED is green, we have a 2500 Mbps link, if the right LED is green that’s 1000 Mbps, and the orange color would indicate lower speeds (100M/10M). The three connections are then 2500 Mbps. All good!

Since access to the Xiaomi AX6000 router’s interface or/and mobile app only works when the Internet is connected, I had to find another method to list the host in the LAN. I used nmap in a terminal window: is the router, is my laptop, so must be UP Xtreme i11 mini PC…

The mini is also running Ubuntu 20.04, so we can compare the output of inxi:

enp44s0 interface is up with a 2500 Mbps, full-duplex link.

Let’s run iperf to test “upload” speed from laptop to mini PC:


usb3 2.5gbe dongle upload speed

2.35 Gbps on average with some peaks close to 2.46 Gbps. That’s a resounding pass.

Let’s switch to “download” from mini PC to laptop.

usb 3.0 2.5gbe dongle download speed

Now that’s disappointing at just under 600 Mbps. That’s worse than what we would expect from Gigabit Ethernet.

Let’s try again, but this time with iperf3 upload:

and iperf3 download:

So it does not matter whether we use iperf2 or iperf3, the results are the same.

Let’s investigate a bit more by using the Gigabit Ethernet port of my laptop to the 2.5 GbE port of Xtreme i11. iperf3 download (mini PC to laptop):

942 Mbps is the speed I would expect, so the issue appears to be related to the USB Ethernet adapter. But to make sure, let’s reverse the test by connecting the USB 3.0 2.5GbE adapter to the Gigabit Ethernet port of UP Xtreme i11 mini PC:

826 Mbps! Interesting… Not perfect but faster than the 2.5Gbe to 2.5GbE connection.

iperf does not exactly represent a standard use case. So I’ve connected MINIX NEO Storage Plus USB-C dock with a 480GB SSD to the USB-C “Thunderbolt” port of UP Xtreme Mini PC, and created a SAMBA share, so I could copy a large file to/from the SSD’s from the laptop and mini PC over the 2.5GbE network.

SAMBA 2.5GbE Laptop to Mini PC

From the laptop to the mini PC the transfer was done at around 750 Mbps.

SAMBA 2.5GbE Mini PC to LaptopThe mini PC to laptop “download” transfer was also quite slower at under 500 Mbps and ended up with a “software connection abort” transferring only 7.8GB out of the 11.2 GB file.

SAMBA is widely used, but may not be the fastest way to transfer data. Let’s switch to scp transferring the same files from the laptop to the mini PC.

SCP 2.5GbE Laptop to Mini PC

That’s faster. The 11.2GB was transferred in 98 seconds or about 117 MB/s on average (963 Mbps).

Let’s delete the file on the source, and copy it back from the mini PC to the laptop.

SCP 2.5GbE Mini PC to Laptop

A bit slower, but not that bad at around 108.2MB/s on average (865.6 Mbps). I’m not quite sure why scp will show the file size to be 10GB, as it is 11.2GB in Nautilus or 11GB from the terminal:

I was expecting a higher transfer speed, so that’s disappointing, but about what we should expect for both SAMBA and scp based on a blog post on WirelessMoves. If we want to get a higher speed we can use simpler crypto with scp or/and send the data to /dev/null. Let’s give it a try by downloading the file to /dev/null on my laptop:

Wow! That’s catastrophic… What happened here? Let’s try to transfer from the laptop to the mini PC instead:

That’s more like it. But when we look at a live graph showing network transfer speed there’s a lot of variation.

2.5GbE network throughput

I’ll have to test the USB 3.0 to 2.5 Gbps Ethernet USB adapter with Radxa E25 to see how it behaves, and maybe there are some settings to adjust to improve performance, but at this time, I believe I should probably not rely on that USB adapter for testing…

Continue reading “Fixing performance issues with Realtek RTL8156B 2.5GbE USB dongle in Ubuntu“.

Share this:

Support CNX Software! Donate via cryptocurrencies or become a Patron on Patreon

ROCK Pi 4C Plus
Notify of
The comment form collects your name, email and content to allow us keep track of the comments placed on the website. Please read and accept our website Terms and Privacy Policy to post a comment.
Weller PCB manufacturer