Realtek 8157 driver installation (Wavlink WL-NWU340G)

sunseeker2k5

New Member
Jul 25, 2023
21
6
3
Good day Everyone.

I have been using Proxmox over 3 years and very happy with it in my homelab.

I am on the latest 8.3.5 with kernel 6.8.12-9-pve. My proxmox test server is a Minisforum UN100L
I bought this adapter to get 5 Gbps network on Proxmox : https://www.amazon.com/dp/B0DBY23BL...?sp_csd=d2lkZ2V0TmFtZT1zcF9ocXBfc2hhcmVk&th=1

When I connect it to proxmox and do lsusb and lsusb -t, i see it's not using a Realtek driver but the plain USB driver, hence missing speed and functionality :

lsusb
Bus 002 Device 002: ID 0bda:8157 Realtek Semiconductor Corp. USB 10/100/1G/2.5G/5G LAN
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
|__ Port 3: Dev 2, If 0, Class=Communications, Driver=cdc_ncm, 10000M
|__ Port 3: Dev 2, If 1, Class=CDC Data, Driver=cdc_ncm, 10000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
|__ Port 10: Dev 2, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 10: Dev 2, If 1, Class=Wireless, Driver=btusb, 12M

ethtool enx803f5dfdb918
Settings for enx803f5dfdb918:
Supported ports: [ ]
Supported link modes: Not reported
Supported pause frame use: No
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Half
Auto-negotiation: off
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
MDI-X: Unknown
Current message level: 0x00000007 (7)
drv probe link
Link detected: no

Checking the manufacturer returns Realtek on 2-3 :
/sys/bus/usb/devices/2-3# cat /sys/bus/usb/devices/2-3/manufacturer
Realtek

I tried to see if I make it pick up the correct driver by :
bConfigurationValue=1 (was 2 previously)

LSUSB report no driver in this case :

lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
|__ Port 3: Dev 2, If 0, Class=Communications, Driver=, 10000M
|__ Port 3: Dev 2, If 1, Class=CDC Data, Driver=, 10000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
|__ Port 10: Dev 2, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 10: Dev 2, If 1, Class=Wireless, Driver=btusb, 12M

I downloaded the latest driver from Realtek :https://www.realtek.com/Download/List?cate_id=585

Made sure that I have the latest headers
apt install build-essential pve-headers-`uname -r`

Then i tried to compile the driver :
make && make install

make -C /lib/modules/6.8.12-9-pve/build M=/tmp/realt modules
make[1]: Entering directory '/usr/lib/modules/6.8.12-9-pve/build'
make[1]: *** No rule to make target 'modules'. Stop.
make[1]: Leaving directory '/usr/lib/modules/6.8.12-9-pve/build'
make: *** [Makefile:32: modules] Error 2

I would appreciate any help or insight as to how I could get this Realtek 8157 based card to work with proxmox.
 
Last edited:
Thank you for the suggestion, unfortunately, it still shows as using the USB driver :

ethtool enx803f5dfdb918
Settings for enx803f5dfdb918:
Supported ports: [ ]
Supported link modes: Not reported
Supported pause frame use: No
Supports auto-negotiation: No
Supported FEC modes: Not reported
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Half
Auto-negotiation: off
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
MDI-X: Unknown
Current message level: 0x00000007 (7)
drv probe link
Link detected: no

lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
|__ Port 3: Dev 3, If 0, Class=Communications, Driver=cdc_ncm, 10000M
|__ Port 3: Dev 3, If 1, Class=CDC Data, Driver=cdc_ncm, 10000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
|__ Port 10: Dev 2, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 10: Dev 2, If 1, Class=Wireless, Driver=btusb, 12M

uname -a
Linux prxmxtest 6.14.0-1-pve #1 SMP PREEMPT_DYNAMIC PMX 6.14.0-1 (2025-03-26T16:52Z) x86_64 GNU/Linux
 
then your only choice (for now) seems to be to compile the kernel module
you have to downgrade the kernel because on realtek's website it says the driver only supports kernels up to 6.10

check if there is a build log or a verbose option when compiling, maybe it's just a missing dependency / devel package
 
I rolled the kernel back to 6.8.12-9.

The only verbose option I could find was this :

make && make install -k 2>&1 | tee build.log

It records exactly the same as I saw on screen :

cat build.log
make -C /lib/modules/6.8.12-9-pve/build M=/tmp/realt modules
make[1]: Entering directory '/usr/lib/modules/6.8.12-9-pve/build'
make[1]: *** No rule to make target 'modules'.
make[1]: Leaving directory '/usr/lib/modules/6.8.12-9-pve/build'
make: *** [Makefile:32: modules] Error 2

Do you have other suggestions as to how to make it more verbose ?
I feel something is fundamentally wrong here when I read no rule to make target 'modules'
How should I set up rule ?
 
Symlink was missing, this fixed it.
ln -s /usr/src/linux-headers-6.8.12-9-pve /lib/modules/6.8.12-9-pve/build

lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
|__ Port 3: Dev 3, If 0, Class=Vendor Specific Class, Driver=r8152, 10000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
|__ Port 10: Dev 2, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 10: Dev 2, If 1, Class=Wireless, Driver=btusb, 12M

lsusb
Bus 002 Device 003: ID 0bda:8157 Realtek Semiconductor Corp. USB 10/100/1G/2.5G/5G LAN
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

ethtool enx803f5dfdb918
Settings for enx803f5dfdb918:
Supported ports: [ MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
2500baseT/Full
5000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
2500baseT/Full
5000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Unknown! (255)
Auto-negotiation: on
Port: MII
PHYAD: 32
Transceiver: internal
Supports Wake-on: pumbg
Wake-on: d
Current message level: 0x00007fff (32767)
drv probe link timer ifdown ifup rx_err tx_err tx_queued intr tx_done rx_status pktdata hw wol
Link detected: no

Thanks for thinking with me.
 
Last edited:
I am experiencing the same symptoms with my NIC (WP-UT5). The difference is my syslink seems to be already there. I downloaded and drive and when it gets to modprobe r8152 network connection cuts out and upon reboot the generic driver is running.

VE 8.3.5
uname -r
6.8.12-9-pve

ls -l /lib/modules/$(uname -r)/build
lrwxrwxrwx 1 root root 35 Mar 16 12:18 /lib/modules/6.8.12-9-pve/build -> /usr/src/linux-headers-6.8.12-9-pve

cd ~/r8152-2.18.1 make clean
make
make install
modprobe -r r8152
modprobe r8152
make -C /lib/modules/6.8.12-9-pve/build M=/root/r8152-2.18.1 cleanmake[1]: Entering directory '/usr/src/linux-headers-6.8.12-9-pve' CLEAN /root/r8152-2.18.1/Module.symversmake[1]: Leaving directory '/usr/src/linux-headers-6.8.12-9-pve'make -C /lib/modules/6.8.12-9-pve/build M=/root/r8152-2.18.1 modulesmake[1]: Entering directory '/usr/src/linux-headers-6.8.12-9-pve' CC [M] /root/r8152-2.18.1/r8152.o MODPOST /root/r8152-2.18.1/Module.symvers CC [M] /root/r8152-2.18.1/r8152.mod.o LD [M] /root/r8152-2.18.1/r8152.ko BTF [M] /root/r8152-2.18.1/r8152.koSkipping BTF generation for /root/r8152-2.18.1/r8152.ko due to unavailability of vmlinuxmake[1]: Leaving directory '/usr/src/linux-headers-6.8.12-9-pve'make -C /lib/modules/6.8.12-9-pve/build M=/root/r8152-2.18.1 INSTALL_MOD_DIR=kernel/drivers/net/usb modules_installmake[1]: Entering directory '/usr/src/linux-headers-6.8.12-9-pve' INSTALL /lib/modules/6.8.12-9-pve/kernel/drivers/net/usb/r8152.ko SIGN /lib/modules/6.8.12-9-pve/kernel/drivers/net/usb/r8152.ko DEPMOD /lib/modules/6.8.12-9-pveWarning: modules_install: missing 'System.map' file. Skipping depmod.make[1]: Leaving directory '/usr/src/linux-headers-6.8.12-9-pve'modprobe r8152

lsusb
Bus 004 Device 002: ID 059f:108c LaCie, Ltd Rugged USB-C
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 002: ID 13d3:3563 IMC Networks Wireless_Device
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 2109:0715 VIA Labs, Inc. VL817 SATA Adaptor
Bus 002 Device 002: ID 0bda:8157 Realtek Semiconductor Corp. USB 5G Ethernet

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 0b05:1866 ASUSTek Computer, Inc. N-KEY Device
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

lsusb -t
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
|__ Port 2: Dev 2, If 0, Class=Mass Storage, Driver=uas, 5000M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
|__ Port 4: Dev 2, If 0, Class=Wireless, Driver=btusb, 480M
|__ Port 4: Dev 2, If 1, Class=Wireless, Driver=btusb, 480M
|__ Port 4: Dev 2, If 2, Class=Wireless, Driver=, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 10000M
|__ Port 1: Dev 2, If 0, Class=Communications, Driver=cdc_ncm, 10000M
|__ Port 1: Dev 2, If 1, Class=CDC Data, Driver=cdc_ncm, 10000M
|__ Port 2: Dev 3, If 0, Class=Mass Storage, Driver=uas, 5000M

/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 480M
|__ Port 3: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 12M

Any ideas?
 
I didn't see you executing :
# sudo depmod -a
# sudo update-initramfs -u

This was referenced in the readme.

Try this autorun.sh script, this is what I used and it takes care of all of the above :

Code:
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0-only

# invoke insmod with all arguments we got
# and use a pathname, as insmod doesn't look in . by default

TARGET_PATH=$(find /lib/modules/$(uname -r)/kernel/drivers/net/usb -type d)
if [ "$TARGET_PATH" = "" ]; then
    TARGET_PATH=/lib/modules/$(uname -r)/kernel/drivers/net
fi
echo
check=`lsmod | grep r8152`
if [ "$check" != "" ]; then
        echo "rmmod r8152"
        /sbin/rmmod r8152
fi

echo "Build the module and install"
echo "-------------------------------" >> log.txt
date 1>>log.txt
make $@ all 1>>log.txt || exit 1
module=`ls src/*.ko`
module=${module#src/}
module=${module%.ko}

echo "DEPMOD $(uname -r)"
depmod `uname -r`
echo "load module $module"
modprobe $module

is_update_initramfs=n
distrib_list="ubuntu debian"

if [ -r /etc/debian_version ]; then
    is_update_initramfs=y
elif [ -r /etc/lsb-release ]; then
    for distrib in $distrib_list
    do
        /bin/grep -i "$distrib" /etc/lsb-release 2>&1 /dev/null && \
            is_update_initramfs=y && break
    done
fi

if [ "$is_update_initramfs" = "y" ]; then
    if which update-initramfs >/dev/null ; then
        echo "Updating initramfs. Please wait."
        update-initramfs -u -k $(uname -r)
    else
        echo "update-initramfs: command not found"
        exit 1
    fi
fi

echo "Completed."
exit 0

I also had to do this :
echo 'grub-efi-amd64 grub2/force_efi_extra_removable boolean true' | debconf-set-selections -v -u
apt install --reinstall grub-efi-amd64

for some reason, while I was booting EFI (so not legacy), proxmox complained about not seeing the UEFI config after I applied autorun.sh
 
Last edited:
Hi sunseeker2k5,

Can you write up a step by step guide to get this working, that would be much appreciated.

I have already had to re-install my Proxmox after following different instructions which didn't work correctly and this is the 1st time I'm having to build the kernel in Linux.

Thank you.
 
@DerekG :

0. make sure you are on or below kernel 6.10
1.download the drivers from here https://www.realtek.com/Download/List?cate_id=585,
2.extract them into a folder and create the autorun.sh file from the post i added above. Make the file executable.
3.apt install build-essential pve-headers-`uname -r` to install headers
4. use autorun.sh to kick of the install as root (you need to be in the folder you created in step 2)
5. in my case i was getting build errors when running the script because the symlink was missing,
so if you get make[1]: *** No rule to make target 'modules'.
then you can create the link by
ln -s /usr/src/linux-headers-6.8.12-9-pve /lib/modules/6.8.12-9-pve/build
substitute linux-headers-6.8.12-9-pve with what kernel you are on.
6. If the system complains about grub after step 5 and suggests it (only then!) run the below
echo 'grub-efi-amd64 grub2/force_efi_extra_removable boolean true' | debconf-set-selections -v -u
apt install --reinstall grub-efi-amd64
7.reboot
8. verify that the driver is used
lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
|__ Port 3: Dev 3, If 0, Class=Vendor Specific Class, Driver=r8152, 10000M

You should see r8152 instead of cdc_ncm.

That's it.

To be frank, I ended up sending it back to Amazon as I couldn't get it perform higher than 3.3Gbit/sec.
Your mileage may vary.
Good Luck!
 
Last edited:
  • Like
Reactions: rebelliouswhiz
@sunseeker2k5,

Thanks for putting those instructions together, I'll give it a try tomorrow and let you know how I get on.

If it's any help to you, I've found the same Realtek 5Gbe chipset which plugs into a PCIe M.2 A+E key slot so can replace a Wifi Card if that's available to you. Only it's available on Ali Express so delivery is not for a couple of weeks. That should be more stable than the USB connection, but might have a similar driver issues.

Wishing you all the best out there.
DerekG
 
@sunseeker2k5 thank you very much for the instructions! I successfully built the module and am now using it.

However, I got only iperf3 3.39 Gbits/sec with Realtek 8157 5 Gbps, which is not quite close to the expectations.

I suspect the CPU (i3 4010u, old, I know) limits the speed, but I am unsure.

What's your result with iperf3?
 
@sunseeker2k5 thank you very much for the instructions! I successfully built the module and am now using it.

However, I got only iperf3 3.39 Gbits/sec with Realtek 8157 5 Gbps, which is not quite close to the expectations.

I suspect the CPU (i3 4010u, old, I know) limits the speed, but I am unsure.

What's your result with iperf3?
Glad the guide worked for you.

I had the same results with direct PC to PC connections using a 2meter cat6a cable: 3.3 Gbps max.
I tested it on several CPUs : N100 and 3700X, with SSDs on both sending and receiving end. USBC ports were 3.2Gen2 so definitely 10Gbps.
Both Windows and Linux were tested too.
(IPERF3 tests are below)

1745824825967.png

I was in touch with the vendor (Wavlink) and they sent me an optimization guide but using those settings only resulted in the same performance as above.
I attached it, in case you want to try on your end.

So we agreed on me sending it back. They have a new product that is reportedly capable of full 5Gbps (email below from their customer service) :
We appreciate you bringing the issues you've encountered to our attention. I'm pleased to inform you that we identified these concerns some time ago and have already implemented several significant improvements to the product, including:- Optimized PCB board circuitry- Enhanced heat dissipation performance- Improved system compatibility- Strengthened cable connection stability.These upgrades have resulted in substantial performance improvements compared to our current inventory. The optimized products are currently in transit to our US warehouse. If you're willing to wait a short period, we would be happy to send you one of these new versions free of charge for testing purposes. We genuinely value customer feedback and would appreciate hearing about your experience with the improved model.

So I am waiting for them to send the updated model to test.
 

Attachments

Last edited:
@sunseeker2k5,

Thanks for putting those instructions together, I'll give it a try tomorrow and let you know how I get on.

If it's any help to you, I've found the same Realtek 5Gbe chipset which plugs into a PCIe M.2 A+E key slot so can replace a Wifi Card if that's available to you. Only it's available on Ali Express so delivery is not for a couple of weeks. That should be more stable than the USB connection, but might have a similar driver issues.

Wishing you all the best out there.
DerekG
Good luck with testing
See my story below regarding the improved USB-C model confirmed by the vendor. I will wait for that. Thanks !
 
Glad the guide worked for you.

I had the same results with direct PC to PC connections using a 2meter cat6a cable: 3.3 Gbps max.
I tested it on several CPUs : N100 and 3700X, with SSDs on both sending and receiving end. USBC ports were 3.2Gen2 so definitely 10Gbps.
Both Windows and Linux were tested too.
(IPERF3 tests are below)

View attachment 85488

I was in touch with the vendor (Wavlink) and they sent me an optimization guide but using those settings only resulted in the same performance as above.
I attached it, in case you want to try on your end.

So we agreed on me sending it back. They have a new product that is reportedly capable of full 5Gbps (email below from their customer service) :
We appreciate you bringing the issues you've encountered to our attention. I'm pleased to inform you that we identified these concerns some time ago and have already implemented several significant improvements to the product, including:- Optimized PCB board circuitry- Enhanced heat dissipation performance- Improved system compatibility- Strengthened cable connection stability.These upgrades have resulted in substantial performance improvements compared to our current inventory. The optimized products are currently in transit to our US warehouse. If you're willing to wait a short period, we would be happy to send you one of these new versions free of charge for testing purposes. We genuinely value customer feedback and would appreciate hearing about your experience with the improved model.

So I am waiting for them to send the updated model to test.
I kinda doubt it.. I have read some random articles/videos saying RTL 8517 can reach ~5 Gbps on Windows (https://www.youtube.com/watch?v=EGmMP78iDT0) or mac (https://www.chiphell.com/forum.php?mod=viewthread&tid=2653295&extra=page=1&ordertype=1&page=1, in Chinese, first 2 pics are tested on mac, other 2 pics are tested on a Synology). Others have similar results on Linux. It feels more like a Linux kernel issue with the RTL 8517 chipset.

I just sent a message to Wavlink's Taobao (the Chinese eBay) customer service, and they claimed there's no "updated version" of the 5 Gbps adapter. So it's either a special model supply to the international market, or they just updated the design.

Anyways, let us know your result when you receive the new model!
 
Just to add my input on this subject.

I have the WisPi RTL8157 & a couple of no brand units. Tested on mostly 6th gen Proxmox mini PC's, but I also have an Intel N150 all SSD which is the one I'm really concerned about.

I've found the Tx/Rx rate at around 3.6Gbps on the 6th Gen units, but they are really unstable on the USB3.0 ports, dropping the networks connection, sometimes within an hours light use. So I've returned to the RTL8156 2.5Gbe on the 6th Gen and that is rock solid ~ 2.35 Gbps.

I can confirm that I'm having no problems with the 5Gbs on Windows 11, but that is an 11th Gen laptop. On 6th gen Windows 10 the RTL817 is still unstable but no where near as bad as on Linux.

I've noticed a similar stability issues on the N150, which is why I want to get the driver setup correctly, that one is still a work in progress.

I also have the RTL8126 PCI 5Gbe model on order and that will confirm if the primary issue is the USB 3.0

Note: The latest Proxmox testing kernel 6.14 has the correct r8152 driver built in, but I'm still checking what other issues it might cause before making that leap.

Thanks for all the feedback.

DerekG
 
Just to add my input on this subject.

I have the WisPi RTL8157 & a couple of no brand units. Tested on mostly 6th gen Proxmox mini PC's, but I also have an Intel N150 all SSD which is the one I'm really concerned about.

I've found the Tx/Rx rate at around 3.6Gbps on the 6th Gen units, but they are really unstable on the USB3.0 ports, dropping the networks connection, sometimes within an hours light use. So I've returned to the RTL8156 2.5Gbe on the 6th Gen and that is rock solid ~ 2.35 Gbps.

I can confirm that I'm having no problems with the 5Gbs on Windows 11, but that is an 11th Gen laptop. On 6th gen Windows 10 the RTL817 is still unstable but no where near as bad as on Linux.

I've noticed a similar stability issues on the N150, which is why I want to get the driver setup correctly, that one is still a work in progress.

I also have the RTL8126 PCI 5Gbe model on order and that will confirm if the primary issue is the USB 3.0

Note: The latest Proxmox testing kernel 6.14 has the correct r8152 driver built in, but I'm still checking what other issues it might cause before making that leap.

Thanks for all the feedback.

DerekG
I went to 6.14 as part of my earlier testing (prior to compiling the driver) and there was no driver for 8157 or 8152. It continued to use the USB default driver (cdc_ncm)
 
I kinda doubt it.. I have read some random articles/videos saying RTL 8517 can reach ~5 Gbps on Windows (https://www.youtube.com/watch?v=EGmMP78iDT0) or mac (https://www.chiphell.com/forum.php?mod=viewthread&tid=2653295&extra=page=1&ordertype=1&page=1, in Chinese, first 2 pics are tested on mac, other 2 pics are tested on a Synology). Others have similar results on Linux. It feels more like a Linux kernel issue with the RTL 8517 chipset.

I just sent a message to Wavlink's Taobao (the Chinese eBay) customer service, and they claimed there's no "updated version" of the 5 Gbps adapter. So it's either a special model supply to the international market, or they just updated the design.

Anyways, let us know your result when you receive the new model!
y, it might have been marketing / deception to hold on to the units in hopes of getting something better. I am curious to see if they keep their promise and send me the test unit :)
 
Well gentlemen, I think I have got an USB RTL8157 communicating @ 5Gbe as expected here,

The client rig is a Intel N150 Proxmox node - Linux pve-4 6.8.12-10-pve - All NVMe NAS

Realtek Driver - r8152 - ver. 2.19.2-1

Driver installation with the Debian package installer #dpkg -i realtek-r8152-dkms*.deb - from the following Github
https://github.com/awesometic/realtek-r8152-dkms?tab=readme-ov-file#readme

Unsure if this is required, but added the following (had to manually create the r8152.conf):
#nano /etc/modprobe.d/r8152.conf - give me 5 Gbit/s transfer speeds while achieving power states up to C6:
options r8125 aspm=1
options r8125 eee_enable=0

# update-initramfs -u

Now I have the following where the iperf3 192.168.10.28 server has a 10Gbe link:


Code:
root@pve-4:~# lsusb -t
/:  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 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
    |__ Port 10: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 10: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 20000M/x2
    |__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=r8152, 10000M
    |__ Port 2: Dev 3, If 0, Class=Hub, Driver=hub/4p, 10000M
        |__ Port 1: Dev 4, If 0, Class=Mass Storage, Driver=uas, 10000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
root@pve-4:~#
root@pve-4:~# iperf3 -c 192.168.10.28
Connecting to host 192.168.10.28, port 5201
[  5] local 192.168.10.18 port 45064 connected to 192.168.10.28 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   564 MBytes  4.73 Gbits/sec    0   1.13 MBytes      
[  5]   1.00-2.00   sec   561 MBytes  4.71 Gbits/sec    0   1.13 MBytes      
[  5]   2.00-3.00   sec   561 MBytes  4.71 Gbits/sec    0   1.13 MBytes      
[  5]   3.00-4.00   sec   561 MBytes  4.71 Gbits/sec    0   1.13 MBytes      
[  5]   4.00-5.00   sec   561 MBytes  4.71 Gbits/sec    0   1.13 MBytes      
[  5]   5.00-6.00   sec   561 MBytes  4.71 Gbits/sec    0   1.19 MBytes      
[  5]   6.00-7.00   sec   561 MBytes  4.71 Gbits/sec    0   1.19 MBytes      
[  5]   7.00-8.00   sec   561 MBytes  4.71 Gbits/sec    0   1.19 MBytes      
[  5]   8.00-9.00   sec   561 MBytes  4.71 Gbits/sec    0   1.25 MBytes      
[  5]   9.00-10.00  sec   561 MBytes  4.71 Gbits/sec    0   1.25 MBytes      
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  5.48 GBytes  4.71 Gbits/sec    0             sender
[  5]   0.00-10.00  sec  5.48 GBytes  4.71 Gbits/sec                  receiver

iperf Done.
root@pve-4:~# iperf3 -c 192.168.10.28 -R
Connecting to host 192.168.10.28, port 5201
Reverse mode, remote host 192.168.10.28 is sending
[  5] local 192.168.10.18 port 49322 connected to 192.168.10.28 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   561 MBytes  4.70 Gbits/sec                
[  5]   1.00-2.00   sec   561 MBytes  4.71 Gbits/sec                
[  5]   2.00-3.00   sec   561 MBytes  4.71 Gbits/sec                
[  5]   3.00-4.00   sec   561 MBytes  4.71 Gbits/sec                
[  5]   4.00-5.00   sec   561 MBytes  4.71 Gbits/sec                
[  5]   5.00-6.00   sec   561 MBytes  4.71 Gbits/sec                
[  5]   6.00-7.00   sec   560 MBytes  4.70 Gbits/sec                
[  5]   7.00-8.00   sec   561 MBytes  4.71 Gbits/sec                
[  5]   8.00-9.00   sec   561 MBytes  4.71 Gbits/sec                
[  5]   9.00-10.00  sec   561 MBytes  4.71 Gbits/sec                
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  5.48 GBytes  4.71 Gbits/sec  272             sender
[  5]   0.00-10.00  sec  5.48 GBytes  4.71 Gbits/sec                  receiver

iperf Done.

Setup has been running for an hour now, and seems stable - time will tell I guess.
Note: this is with a no brand RTL8157 - so I believe they are much of a muchness, and the USB 3.0 just can't handle the Tx/Rx USB3.1 and above should be OK.

DerekG
 
Last edited:
Well gentlemen, I think I have got an USB RTL8157 communicating @ 5Gbe as expected here,

The client rig is a Intel N150 Proxmox node - Linux pve-4 6.8.12-10-pve - All NVMe NAS

Realtek Driver - r8152 - ver. 2.19.2-1

Driver installation with the Debian package installer #dpkg -i realtek-r8152-dkms*.deb - from the following Github
https://github.com/awesometic/realtek-r8152-dkms?tab=readme-ov-file#readme

Unsure if this is required, but added the following (had to manually create the r8152.conf):
#nano /etc/modprobe.d/r8152.conf - give me 5 Gbit/s transfer speeds while achieving power states up to C6:
options r8125 aspm=1
options r8125 eee_enable=0

# update-initramfs -u

Now I have the following where the iperf3 192.168.10.28 server has a 10Gbe link:


Code:
root@pve-4:~# lsusb -t
/:  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 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
    |__ Port 10: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 10: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 20000M/x2
    |__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=r8152, 10000M
    |__ Port 2: Dev 3, If 0, Class=Hub, Driver=hub/4p, 10000M
        |__ Port 1: Dev 4, If 0, Class=Mass Storage, Driver=uas, 10000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
root@pve-4:~#
root@pve-4:~# iperf3 -c 192.168.10.28
Connecting to host 192.168.10.28, port 5201
[  5] local 192.168.10.18 port 45064 connected to 192.168.10.28 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   564 MBytes  4.73 Gbits/sec    0   1.13 MBytes   
[  5]   1.00-2.00   sec   561 MBytes  4.71 Gbits/sec    0   1.13 MBytes   
[  5]   2.00-3.00   sec   561 MBytes  4.71 Gbits/sec    0   1.13 MBytes   
[  5]   3.00-4.00   sec   561 MBytes  4.71 Gbits/sec    0   1.13 MBytes   
[  5]   4.00-5.00   sec   561 MBytes  4.71 Gbits/sec    0   1.13 MBytes   
[  5]   5.00-6.00   sec   561 MBytes  4.71 Gbits/sec    0   1.19 MBytes   
[  5]   6.00-7.00   sec   561 MBytes  4.71 Gbits/sec    0   1.19 MBytes   
[  5]   7.00-8.00   sec   561 MBytes  4.71 Gbits/sec    0   1.19 MBytes   
[  5]   8.00-9.00   sec   561 MBytes  4.71 Gbits/sec    0   1.25 MBytes   
[  5]   9.00-10.00  sec   561 MBytes  4.71 Gbits/sec    0   1.25 MBytes   
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  5.48 GBytes  4.71 Gbits/sec    0             sender
[  5]   0.00-10.00  sec  5.48 GBytes  4.71 Gbits/sec                  receiver

iperf Done.
root@pve-4:~# iperf3 -c 192.168.10.28 -R
Connecting to host 192.168.10.28, port 5201
Reverse mode, remote host 192.168.10.28 is sending
[  5] local 192.168.10.18 port 49322 connected to 192.168.10.28 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   561 MBytes  4.70 Gbits/sec             
[  5]   1.00-2.00   sec   561 MBytes  4.71 Gbits/sec             
[  5]   2.00-3.00   sec   561 MBytes  4.71 Gbits/sec             
[  5]   3.00-4.00   sec   561 MBytes  4.71 Gbits/sec             
[  5]   4.00-5.00   sec   561 MBytes  4.71 Gbits/sec             
[  5]   5.00-6.00   sec   561 MBytes  4.71 Gbits/sec             
[  5]   6.00-7.00   sec   560 MBytes  4.70 Gbits/sec             
[  5]   7.00-8.00   sec   561 MBytes  4.71 Gbits/sec             
[  5]   8.00-9.00   sec   561 MBytes  4.71 Gbits/sec             
[  5]   9.00-10.00  sec   561 MBytes  4.71 Gbits/sec             
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  5.48 GBytes  4.71 Gbits/sec  272             sender
[  5]   0.00-10.00  sec  5.48 GBytes  4.71 Gbits/sec                  receiver

iperf Done.

Setup has been running for an hour now, and seems stable - time will tell I guess.
Note: this is with a no brand RTL8157 - so I believe they are much of a muchness, and the USB 3.0 just can't handle the Tx/Rx USB3.1 and above should be OK.

DerekG
Hi DerekG, I found the same github link as you mentioned. I am using the same deb package, but as far as I see it, it's the same as @sunseeker2k5 's method, just packed in a deb.

I tried to make /etc/modprobe.d/r8152.conf and update-initramfs -u, got no luck, still at 3.39 Gbps.

I notice, when I lsusb -t, my adapters show 5000M speed, not 10000M as yours.

Code:
root@prox0:/etc/modprobe.d# cat r8152.conf
options r8125 aspm=1
options r8125 eee_enable=0
root@prox0:/etc/modprobe.d# lsusb -t
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
    |__ Port 1: Dev 2, If 0, Class=Mass Storage, Driver=uas, 5000M
    |__ Port 3: Dev 3, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
    |__ Port 4: Dev 4, If 0, Class=Vendor Specific Class, Driver=r8152, 5000M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/9p, 480M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/8p, 480M

Is it possible that your no-brand RTL8157 is actually RTL8159, which offers 10 Gbps?
 
Last edited: