ewaldc / realtek-r8125-dkms

Rewrite of Realtek 8125 Driver
GNU General Public License v2.0
0 stars 0 forks source link

Realtek r8125 DKMS

Static Badge

This repository provides a comprehensive rewrite of the official Realtek r8125 driver with the following objectives:

The official Realtek 8125 driver has been rewritten with the following objections:

NOTE: This driver is provided as-is, support will be on voluntary basis ("best-effort") via GitHub "issues". The rewrite effort was started because the existing r8125 failed stress testing (data corruptions) while the mainline driver lacked features and performance to support a clustered file server. Testing was done solely on a cluster of 8-core arm64 systems running dual Realtek 8125B NICS on 10G ethernet switches, Ubuntu 24.04 (Noble) and 6.1+ kernels,

Before use

This DKMS package is for Realtek RTL8125 (r8125 in module name) Ethernet, which is designed for the PCI interface.

Installation

There are 3 ways to install this DKMS module. Choose one as your tastes.

Those are not interfering with each other. So you can do all 3 methods but absolutely you don't need to.

Installation using the Debian package is recommended for the sake of getting the newer driver.

Debian package

Released package file

Download the latest Debian package from the Release tab on the Github repository.

Then enter the following command.

sudo dpkg -i realtek-r8125-dkms*.deb

If multiple files selected by the wild card, you should type the specific version of the file.

sudo dpkg -i realtek-r8125-dkms_9.013.02-2_amd64.deb

If dependency error occurs, try to fix that with apt command.

sudo apt install --fix-broken

autorun.sh

Using the autorun.sh script that Realtek provides on their original driver package. This is not installed as a DKMS, only efforts to the current kernel.

Download or clone this repository and move to the extracted directory, then run the script.

sudo ./autorun.sh

Note that the autorun script will stop the r8169 module if present. Hence, do not connect remotely, at least not using this route, as you will be disconnected and the script will be terminated.

dkms-install.sh

This script is from aircrack-ng team. You can install the DKMS module by a simple command.

Download or clone this repository and move to the extracted directory, then run the script.

sudo ./dkms-install.sh

Verify the module is loaded successfully

After installing the DKMS package, you may not be able to use the new r8125 module on the fly. This because the existing r8169 module will be loaded priority to r8125 so that it prevents working of the r8125 module.

Check if the r8169 module loaded currently.

lsmod | grep -i r8169

If there is a result, maybe the r8125 module wasn't loaded properly. You can check out modules currently in use via lspci -k or dmesg too.

To use the r8125 module explicitly you can add the r8169 module to not be loaded by adding it to a blacklist file.

Enter the following command to configure the blacklist.

sudo tee -a /etc/modprobe.d/blacklist-r8169.conf > /dev/null <<EOT
# To use r8125 driver explicitly
blacklist r8169
EOT

To apply the new blacklist to your kernel, update your initramfs via

sudo update-initramfs -u

Finally, reboot to take effect.

  • If you need to load both r8169 and r8125, maybe removing r8125 firmware could make it work. Please enter sudo rm -f /lib/firmware/rtl_nic/rtl8125* to remove all the r8125 firmwares on the system. But it is just a workaround, you should have to do this every time installing the new kernel version or new Linux firmware.
  • In the case of the Debian package, I will update the scripts to make it do this during the installation.

Debian package build

You can build yourself this after installing some dependencies including dkms.

sudo apt install devscripts debmake debhelper build-essential dkms
dpkg-buildpackage -b -rfakeroot -us -uc

LICENSE

GPL-2 on Realtek driver and the debian packaing.

References