Fixing the Realtek RTL8126 5GbE Ethernet Issue on Arch Linux
Fixing the Realtek RTL8126 5GbE Ethernet Issue on Arch Linux
Systems upgraded or installed with Arch Linux on modern hardware featuring the Realtek RTL8126 5GbE Ethernet controller may exhibit a recognized network interface that fails to establish a link. Typical symptoms include the Ethernet interface (enp14s0 or similar) displaying NO-CARRIER despite being physically connected.
This guide provides a detailed explanation and resolution procedure for this issue.
Problem Analysis
The standard Linux kernel driver for Realtek Ethernet chips, known as r8169, supports a wide range of Realtek NICs but has limited support for newer controllers like the RTL8126. When r8169 loads for an RTL8126 device, the driver fails to properly configure the PHY (Physical Layer) registers. This misconfiguration leaves the chip in a low-power or inactive state, resulting in the Ethernet port displaying no connection (NO-CARRIER).
Resolution requires Realtek’s dedicated driver for the RTL8126, available via the AUR (r8126-dkms). Additionally, the RTL8126’s PHY registers persist through warm reboots due to residual auxiliary power. A regular reboot does not clear these registers; a full power cycle is required.
Step-by-Step Solution
Step 1: Install Required Tools
Install the necessary packages to build and manage DKMS drivers:
1
sudo pacman -Syu --needed base-devel dkms linux-headers git
Step 2: Install the Correct Driver from AUR
Install the specific Realtek driver (r8126-dkms) for the RTL8126 chipset:
1
yay -S r8126-dkms
Verify the driver supports the RTL8126 chipset:
1
modinfo r8126 | grep 8126
The output should contain the RTL8126 PCI ID (10ec:8126).
Step 3: Blacklist the Problematic r8169 Driver
The kernel may default to loading the incorrect r8169 driver. Prevent this by explicitly blacklisting it:
1
echo "blacklist r8169" | sudo tee /etc/modprobe.d/blacklist-r8169.conf
Step 4: Ensure the Correct Driver Loads Automatically
Configure the r8126 driver to load on boot:
1
echo "r8126" | sudo tee /etc/modules-load.d/r8126.conf
Step 5: Update the Initial RAM Filesystem (initramfs)
Update the kernel’s initial RAM filesystem to apply changes on the next boot:
1
sudo mkinitcpio -P
Critical Step: Perform a Hard Power Cycle
This step is mandatory. A standard reboot does not clear the residual register state of the RTL8126 PHY. The following procedure is required:
Fully shut down the computer:
1
sudo shutdown -h now
Once powered off, physically switch off the computer’s PSU or unplug the system’s power cord from the wall.
Wait a minimum of 10 seconds. This allows residual charge in the motherboard and NIC capacitors to dissipate fully, resetting the NIC’s PHY registers.
After 10 seconds, reconnect or switch on the PSU, and power the computer back on.
This full power-down procedure ensures the NIC initializes cleanly with the correct PHY settings.
Step 6: Verify Correct Driver Loading
After the system boots, verify that the RTL8126 is using the correct driver:
1
lspci -k | grep -A3 8126
Expected output:
1
Kernel driver in use: r8126
Step 7: Bring Up the Network Interface
Manually bring up the interface and request an IP address via DHCP:
1
2
sudo ip link set enp14s0 up
sudo dhclient enp14s0
The Ethernet connection should now be active and fully functional.
Troubleshooting
- Link remains down: Verify that
r8169is correctly blacklisted and that the PC was properly power-cycled. - Verify connection speed: Run
ethtool enp14s0. The output should display the negotiated link speed (e.g., 2500Mb/s). - Persistent issues after suspend: Consider disabling network power management features in the BIOS or operating system settings.
Summary
The critical, often overlooked step of physically powering down the system ensures the RTL8126’s PHY resets completely, allowing the specialized r8126-dkms driver to function correctly. This procedure permanently resolves connectivity issues for systems experiencing “no carrier” errors with Realtek’s 5GbE Ethernet controllers.