r8168/r8169 - 我应该使用哪一个?

Pav*_* V. 7 kernel networking realtek drivers

我找到了很多答案,例如“你需要 r8168”“你需要 r8169”,但没有解释。我知道这取决于 Linux 内核,但我在 Google 的前两页中没有找到任何倾向于其中一个或另一个的内核列表。所以我的子问题:

  1. 如何为任何特定的 Ubuntu 内核找到正确的驱动程序?
  2. r8168 和 r8169 之间的主要区别是什么,使得它们仅在某些内核上稳定?
  3. 稍后编辑)如果没有明确的列表,“如果有问题并且你没有r8168,你可能需要它”和“如果有问题并且你已经有r8168,你可能需要它”背后是否有任何规则清除它”?

我有 16.04,内核为 4.15.0-118-generic,但我对一般原则更感兴趣,而不是我现在应该使用的内容。

Pil*_*ot6 10

r8169是一个树内内核驱动程序,支持包括 R8168 在内的一些以太网适配器。

r8168从 Realtek 提供的源代码构建的模块。

在某些情况下,新的适配器在发布后并没有立即得到 Linux 内核的良好支持。在这种情况下,r8168在 Linux 驱动程序修复之前,使用它作为临时解决方案是有意义的。

因此,如果您的以太网适配器工作正常,则无需安装r8168. 如果人们安装r8169-dkms后忘记它,就会遇到问题。后来他们将内核升级到另一个主要版本,但驱动程序没有构建。

如果你跑apt show r8168-dkms,你会看到

该驱动程序只能用于内核驱动程序 r8169 尚不支持的设备。请参阅 README.Debian,了解如何报告 r8169 的错误(这些错误使得必须使用 r8168-dkms)。。安装 r8168-dkms 软件包将禁用内核中的 r8169 模块。要重新启用 r8169,必须清除 r8168-dkms 软件包。。该软件包提供了 r8168 内核模块的 dkms 源代码。编译这些模块需要内核源代码或标头。

  • 正如README所说,r8168只是添加新设备。如果您的以太网使用默认的 r8169,则无需添加新的设备 ID。换句话说,如果默认驱动程序涵盖设备 001、002 和 003,而您的设备是 002 并且与 r8169 一起正常工作,则无需安装仅涵盖较新设备 004 和 005 的 r8168。 (2认同)