Realtek RTL8169 and RTL8110 NIC

Hardware

Any of the following NIC chipsets:

Problem

The r8169 driver included in the installation kernel does not recognize the RTL8110.

Some later update of the kernel's r8169 driver does recognize this NIC. A test using a Fedora 8 Test 1 Live CD (kernel 2.6.23) revealed that it does recognize the RTL8110. However, tests of kernels up to 2.6.22.9 still find the older 2.2LK-NAPI version of the r8169 that doesn't work. See October 2007 update below. The upstream vendor has not backported the newer driver into its kernels.

Output of `lspci -v`

On a Biostar I945G-M7 V.2, lspci -v yields:

02:05.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8169SC
Gigabit Ethernet (rev 10)
Subsystem: Biostar Microtech Int'l Corp: Unknown device 2304
Flags: bus master, 66Mhz, medium devsel, latency 32, IRQ 209
I/O ports at de00 [size=256]
Memory at fdeff000 (32-bit, non-prefetchable) [size=256]
Capabilities: [dc] Power Management version 2

Solution

Download and install the driver from Realtek at http://www.realtek.com.tw/downloads

Note this is the Old Driver -- use the newer r8169 below:

Update October 2007

The Realtek download page has been updated to point to a new r8169 driver -- version 6.006.00-NAPI. This driver version is not included in the main kernel as of kernel 2.6.22.9. Kernels up to at least this version are still using the older 2.2LK-NAPI version that does not recognize the RTL8110.

A check of CentOS 4 kernel 2.6.9-55.0.9.EL showed it was still using the 2.2LK-NAPI version of the driver.

An exchange with Francois Romieu, one of the kernel developers for the r8169 driver, confirmed that the functionality of Realtek's r8168 and r8169 drivers will be incorporated into the kernel's r8169 driver. The kernel changelog shows a merge with Realtek's drivers in July 2007.

Kernel r8169 Changelog

Notes

In the case of the Biostar I945G-M7 V.2, lspci -v stated the NIC was an RTL-8169SC, however loading the driver yielded:

eth0: Identified chip type is 'RTL8110SC'.
eth0: r10001.05, the Linux device driver for Realtek Ethernet Controllers at
0xde00, 00:e0:4d:xx:xx:xx, IRQ 209
Realtek RTL8169/8110 Family Gigabit Ethernet Network Adapter
Driver version:1.05
Released date:2006/10/25

More confusingly, the Biostar documentation and their tech support stated that this motherboard has an RTL8100 10/100 NIC. This is probably a motherboard V.1 to V.2 update problem.

A by-no-means-exhaustive search of a single vendor showed a variety of motherboards using the RTL8110:

Remotely Updating the Kernel

When a NIC driver isn't included in the kernel, updating the kernel remotely can be a problem. A few extra steps can make this possible.

  1. Install the new kernel. Either from RPM or compiling a custom kernel. If installing from RPM, the associated kernel-devel package will also need to be installed.

  2. Do not reboot. The NIC driver hasn't been added to the new kernel yet. Rebooting now means an inactive NIC and a visit to the console.

  3. Go to the src directory of the r1000 source. Edit Makefile.

  4. Change the line
    KVER           := $(shell uname -r)
    to your newly installed kernel version. For example:
    KVER           := 2.6.20.4-MyCustomKernel
  5. Go back to the top directory of the r1000 source and recompile the driver:
    make clean; make; make install;
  6. Confirm that the driver was copied to the right place. For example:
    find /lib/modules/2.6.20.4-MyCustomKernel -name r1000.ko
  7. Update your bootloader configuration and reboot.

CentOS 5 Version

A kernel-module package for the r1000 is available at:

http://wiki.centos.org/HardwareList/CentOS5/RealTek/r1000

Realtek RTL8111B

The RTL8111B is supported by a different Realtek driver. Additional info: RTL8111B Page.

AdditionalResources/HardwareList/RealTekr1000 (last edited 2008-06-04 08:59:08 by RalphAngenendt)