Troubleshooting / Realtek NIC

Realtek r8169 Driver Troubleshooting: Link Speed, WOL, Drops

Fix common Realtek r8169 driver issues on Windows and Linux mini PCs. Covers 100Mbps link, WOL failures, intermittent disconnects and dual-port identification. Tested on Beelink EQi12.

What the r8169 driver controls

The r8169 is the Linux kernel driver for the Realtek RTL8169/8111 family of gigabit Ethernet controllers. If your mini PC, NAS or small-form-factor PC has Realtek networking, this is almost certainly the driver that manages it. On Windows, the equivalent is the Realtek PCIe GbE Family Controller driver, which controls the same physical hardware through a different software path.

The RTL8111H variant is especially common in budget and mid-range mini PCs from Beelink, Minisforum, GMKtec and similar manufacturers. It is a capable gigabit controller, but it has a consistent set of failure modes that are configuration problems rather than hardware defects.

This guide covers those failure modes with tested fixes from a Beelink EQi12 that uses two RTL8111H controllers. The same methods apply to any mini PC or small server with Realtek gigabit networking.

Wired Ethernet connection setup with Cat6 cable connected to mini PC rear port
Wired Ethernet test setup. A Cat6 cable connects the mini PC rear port to a gigabit switch. Both RTL8111H controllers on the EQi12 negotiated at 1000Mbps full duplex immediately with this cable. If your link shows 100Mbps, replace the cable first before checking driver settings.

A gigabit controller negotiating at 100Mbps is the most common r8169 complaint. The hardware is capable of 1000Mbps, but the link settles at one-tenth the expected speed.

Check the negotiated speed

On Linux:

sudo ethtool eth0 | grep Speed

On Windows, open PowerShell:

Get-NetAdapter | Format-Table Name, LinkSpeed, Status

Or check Device Manager, Network adapters, the Realtek controller, Advanced tab, and look for Speed & Duplex.

Work through the causes in order

CauseHow to confirmFix
Bad or damaged cableTry a known-good Cat5e or Cat6 cableReplace the cable
100Mbps switch portCheck the switch model and port ratingMove to a gigabit-capable port
Dirty or bent connector pinsInspect the RJ45 plug and the PC jackClean or reseat
Driver negotiation issueForce 1000Mbps and observeSee below
BIOS power-saving stateUpdate BIOS, check PCIe power settingsUpdate firmware

Force gigabit speed on Linux

Only after confirming the cable and switch support gigabit:

sudo ethtool -s eth0 speed 1000 duplex full autoneg on

If the link drops immediately after forcing 1000Mbps, the physical path cannot support gigabit. Do not leave the force in place; fix the cable or switch instead.

Force gigabit speed on Windows

In Device Manager, open the Realtek adapter, Advanced tab, find Speed & Duplex, and change it from Auto Negotiation to 1.0 Gbps Full Duplex. If the link disappears, the physical path is the problem.

Measured result

Both RTL8111H controllers on the tested EQi12 negotiated at gigabit speed immediately with the supplied cable and a gigabit switch. The measured throughput was 891-941Mbps in both directions, which is the expected range for a healthy 1GbE connection after protocol overhead.

Symptom 2: Wake-on-LAN fails

WOL is a chain that spans the BIOS, the driver, Windows power management and the physical adapter. A failure anywhere in the chain looks like a driver problem, but the r8169 itself is rarely the root cause.

The dual-port trap

Mini PCs with two Realtek controllers show two nearly identical adapter names. Windows may label one as Realtek PCIe GbE Family Controller and the other as Realtek PCIe GbE Family Controller #2. That numbering is not permanent. A driver reinstall or Windows update can swap them.

If you configure WOL on adapter A but the Ethernet cable is connected to adapter B, the magic packet goes nowhere useful.

Fix: connect one cable at a time and record which adapter shows an active link. On Linux:

sudo ethtool eth0 | grep "Link detected"

On Windows:

Get-NetAdapter | Where-Object Status -eq Up | Format-Table Name, InterfaceDescription, MacAddress

Record the hardware ID and MAC address for each physical jack before configuring anything else.

Linux WOL configuration

Install ethtool if it is not present, then verify and enable WOL:

sudo ethtool eth0 | grep -i wake

Enable wake-on-magic-packet:

sudo ethtool -s eth0 wol g

To make the setting persistent across reboots, add it to a NetworkManager dispatcher script or a systemd service, because ethtool WOL settings do not survive a reboot by default.

Windows WOL configuration

Open Device Manager, the active Realtek adapter, Advanced tab:

Under Power Management:

Then disable Windows Fast Startup: Control Panel, Power Options, Choose what the power buttons do, Change settings that are currently unavailable, clear Turn on fast startup.

Test properly

Send the magic packet from a second device on the same LAN. Do not test from the server itself. Shut down (or sleep) the target, wait for network activity to stop, send one packet, and time the response. Repeat five times. A single success proves only that one attempt worked.

For the complete tested procedure and results, see the Realtek Wake-on-LAN guide.

Symptom 3: intermittent disconnects or drops

Periodic link drops on the r8169 can have several causes. Work through them systematically rather than changing driver settings at random.

Physical layer first

Check for errors on Linux

ip -s link show eth0

Look for increasing RX/TX errors, dropped packets or overruns. A small number may be normal; a growing count during idle indicates a real problem.

dmesg | grep r8169

Look for link-up and link-down events, firmware load failures, or timeout messages. The r8169 driver logs state changes to the kernel ring buffer.

Check for errors on Windows

Open PowerShell:

Get-NetAdapterStatistics -Name "Realtek PCIe GbE Family Controller"

Or open Event Viewer, System log, and filter for the Realtek driver source. Look for warning or error events around the time of the disconnects.

Energy-saving conflicts

Some Realtek drivers expose an Energy Efficient Ethernet (EEE) or Green Ethernet option. These can cause link renegotiation or drops on certain switches. Disable EEE in the driver Advanced tab on Windows, or on Linux:

sudo ethtool --set-eee eth0 eee off

If the disconnects stop after disabling EEE, the switch and the NIC were negotiating an energy-saving mode that neither handled cleanly.

Driver version

On Linux, check the loaded driver version:

sudo ethtool -i eth0

On kernels 5.15 and newer, the in-tree r8169 is stable for the RTL8111H. If you are on an older kernel and experiencing issues, upgrading the kernel is a better path than installing the out-of-tree r8168 driver.

On Windows, download the latest Realtek driver from the mini PC manufacturer’s support page or from Realtek’s website. Do not rely on Windows Update for the newest version; it often lags behind.

Symptom 4: r8168 vs r8169 鈥?which driver to use

The Realtek RTL8111H family has two Linux drivers:

DriverTypeStatus
r8169In-kernel, maintainedRecommended for kernel 5.15+
r8168Out-of-tree, Realtek-providedLegacy fallback for older kernels

Historically, the r8168 driver was more stable for some controllers. That gap has closed. On modern kernels, the r8169 handles the RTL8111H correctly for link negotiation, WOL and standard throughput.

When to consider r8168

How to switch

Blacklist r8169 and load r8168 instead. The exact steps depend on the distribution. On Ubuntu-based systems:

echo "blacklist r8169" | sudo tee /etc/modprobe.d/blacklist-r8169.conf
sudo update-initramfs -u
sudo reboot

If the r8168 module is not present, install it from the manufacturer’s package or build it from source. Revert the blacklist if the replacement does not improve the situation.

Close-up of mini PC rear panel showing dual Ethernet ports and other connectors
Rear panel of the tested EQi12 showing dual RJ45 Ethernet ports. Both ports are driven by identical RTL8111H controllers. When configuring Wake-on-LAN or troubleshooting link issues, always verify which physical port maps to which adapter 鈥?the Windows #2 suffix is not permanent.

Dual-port mini PC identification guide

Many home-server mini PCs have two identical Realtek controllers. Here is a reliable identification method that works on both Linux and Windows.

Linux

for iface in $(ls /sys/class/net | grep -E '^en|^eth'); do
  echo "=== $iface ==="
  echo "Driver: $(sudo ethtool -i $iface 2>/dev/null | grep driver)"
  echo "MAC: $(cat /sys/class/net/$iface/address)"
  echo "Link: $(sudo ethtool $iface 2>/dev/null | grep 'Link detected')"
  echo "PCI: $(ethtool -i $iface 2>/dev/null | grep bus-info)"
  echo
done

Connect the cable to one port, note which interface shows Link detected: yes, then move it to the other port and repeat. The PCI bus-info value tells you which physical slot each interface maps to.

Windows

Get-NetAdapter | Format-Table Name, InterfaceDescription, MacAddress, Status, LinkSpeed -AutoSize
Get-NetAdapter | Get-NetAdapterHardwareInfo | Format-Table Name, BusNumber, DeviceNumber, FunctionNumber -AutoSize

Move the cable between ports and record which adapter name changes state. Label the physical jack on the mini PC case with a marker so the mapping survives driver changes.

Performance expectations

For a healthy Realtek RTL8111H gigabit connection:

MetricExpected range
Negotiated link speed1000Mbps full duplex
iperf3 TCP throughput900-940Mbps
SMB large-file transfer100-110MiB/s
Idle packet errors0
WOL from S5 shutdownShould work within 5 seconds of magic packet
SMB raw transfer log showing bidirectional large and small file transfers with hash verification
SMB transfer log from the EQi12 network test. Large-file transfers reached 863-898 Mbps in both directions, within the expected range for a healthy 1GbE connection. SHA-256 hash verification confirmed data integrity after each transfer.

If your throughput is below 900Mbps on a local gigabit path, the bottleneck is usually storage, antivirus, SMB configuration or file size distribution, not the r8169 driver. Use the network transfer time calculator to estimate real-world transfer times at your measured rate.

Troubleshooting flowchart

  1. Link at 100Mbps? Replace cable, check switch port, force 1000Mbps.
  2. WOL fails? Map physical port, enable magic packet, disable Fast Startup, test 5 cycles.
  3. Intermittent drops? Check dmesg / Event Viewer, disable EEE, update driver.
  4. Dual-port confusion? Use the identification method above before changing any settings.
  5. Still failing after all steps? Test with a different OS (Linux Live USB or Windows PE) to isolate hardware from software.