Applicable for RTL8111/8168/8411 PCIe GBE NIC.
Using the official driver will resolve sending rate being capped at 4MB/s per tcp connection under tcp-bbr, typically when you're using the default r8169
nic driver on RTL8168 device.
Newer distros like Ubuntu 18.04.3 with a mainline Linux 5.3 should not have the problem any more.
You should try this driver only if you did notice the sending rate degradation.
-
Install dependences (assume
sudo su
)apt update && apt install build-essential libelf-dev linux-headers-$(uname -r)
Note: Download header packages by yourself if you are using Ubuntu PPA kernel.
-
Download and install the driver (assume
sudo su
)This repo contains a copy of the official driver (8.047.05, tested working as of Linux 5.3):
git clone https://github.com/airium/Realtek-PCIe-GBE-NIC-Driver.git cd Realtek-PCIe-GBE-NIC-Driver/r8168-8.047.05 sh autorun.sh # this script will break the network temporarily # on Ubuntu 16/18, your ssh session will be automatically resumed in ~1 minute # on Debian 8/9, you might have to reboot manually after ~5 minutes
Note: You can also check newer drivers from Realtek's official site. You probably have to search for new ones if Realtek once again changed their url). mtorromeo seems to be very happy to do a long-term mirroring.
-
Check if the driver of the network interface in which you are interested has been updated (assume
sudo su
)for i in $(ls /sys/class/net); do echo $i '=====================' ethtool -i $i done
Example of success
enp4s0 ===================== driver: r8168 version: 8.047.05-NAPI firmware-version: expansion-rom-version: bus-info: 0000:04:00.0 supports-statistics: yes supports-test: no supports-eeprom-access: no supports-register-dump: yes supports-priv-flags: no
Note: You need to re-install the driver after changing kernel.
https://www.unixblogger.com/how-to-get-your-realtek-rtl8111rtl8168-working-updated-guide/
Compared with the reference, this guide complements necessary dependencies, and removes the blacklist operation (it seems the Realtek driver will do it for you).