Enabling full potential of USB (Realtek) Nic 2.5Gbe on debian
Let's allow debian to maximize Realtek's R8152's performance.
I am a big fan of Linux (especially Debian-based distros), and I am also passionate about maximizing network speeds.Even after upgrading my network to 2.5Gbit (and my backbone to 10Gbit), my Linux Hypervisor (running Proxmox - more on that later) failed to run full duplex from one of its USB ports.
At first, you check if the driver is correcty loaded anyhow:
dmesg | grep enx
When the driver isn't correctly loaded, the output will be something like:
cdc_ncm 5-2:2.0 enxXXXXXXXX: renamed from eth0
cdc_ncm
indicates that the realtek drivers (in my case r8152) are not loaded, affecting network properties (running in half-duplex mode, for example) and resulting in subpar performance.
The solution
The solution is actually very straightforward; you just need to tell your system to load these drivers by default by creating a .rules
file in udev. Be sure to place the contents of https://github.com/bb-qq/r8152/blob/master/50-usb-realtek-net.rules in /etc/udev/rules.d/50-usb-realtek-net.rules
.
wget https://raw.githubusercontent.com/bb-qq/r8152/master/50-usb-realtek-net.rules
mv 50-usb-realtek-net.rules /etc/udev/rules.d/50-usb-realtek-net.rules
Give the system a reboot and then you start over again by dmesg | grep enx
, and check the output. If it shows something like:
r8152 6-2:1.0 enxXXXXXXXX: renamed from eth0
then it means you are good to go - the drivers are correctly loaded, allowing full usage of the 2.5GBit nic.