介绍

Realtek 8168 千兆网卡介绍

介绍

Realtek 8168 千兆网卡, 和 Realtek 8111 千兆网卡非常类似。

但是 RTL8168 的新型号如 RTL8168H,驱动和 RTL8111 不兼容,某些时候会造成问题,因此单独列出来处理。

如何识别

如何识别当前的网卡是 RTL8111 还是 RTL8168H?毕竟两者的信息非常类似,下面是在 linux 下用 lspci 命令的输出,这是一块 RTL8111 的网卡:

$ lspci | grep Real

04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 11)

$ lspci -nn -s 04:00.0
04:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 11)

下面是一块 RTL8168H 的网卡:

$ lspci | grep Real

02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet Controller (rev 2b)

$ lspci -nn -s 02:00.0
02:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 2b)

这两个网卡芯片的PCI 设备 ID 都是 10ec:8168,表示芯片属于 RTL8168 系列(RTL8111 和 RTL8168 共用此 ID,需进一步区分)。上面的信息中仅仅在 rev 字段有区别,RTL8111 的 rev 是 11,RTL8168H 的 rev 是 2b。

在 linux 下,realtek 的驱动 r8169 可以驱动 RTL8111 ,但是无法驱动 RTL8168H,体现为 rRTL8168H 网卡无法加载驱动,无法被识别。 即 lspci 可以看到网卡,但是 ip addr 无法看到。

通过检查 dmesg 日志:

dmesg | grep -i r8169

可以发现如下信息:

[    2.526047] r8169 0000:02:00.0: error -ENODEV: unknown chip XID 6c0, contact r8169 maintainers (see MAINTAINERS file)

到这里就可以清晰的判断出来是 RTL8168H 网卡了:

  • PCI ID:10ec:8168
  • Revision:2b, 版本字段,Rev
  • r8169 驱动报错:unknown chip XID 6c0