debian12的默认瑞昱r8169驱动问题

手头一台微星b450m+2400g+rtl8111板载有线网卡,一台微星b550m+5900x+rtl8125板载有线网卡, debian12默认都使用了r8169驱动。因为5900机器在家中2000M光纤环境下,有时使用speedtest-cli检测会掉速到700m/s (正常是2200m/s),所以打算安装8125驱动。

根据官网https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software,下载了 2.5G/5G Ethernet LINUX driver r8125 for kernel up to 6.4 ,运行./autorun.sh失败,错误提示内核headers未在/lib/modules/版本号/build和src中找到。查了一些文档,发现已经安装了linux-headers-版本号。

同类问题网上也有讨论,如https://www.jianshu.com/p/73055cd2cca4,但未完成匹配这里的问题。

大佬们有什么解决思路?

问题好像出在dkms在安装驱动前,会查询headers,但是debian12不知为何虽然最新的linux-headers-6.1.0-18-amd64显示已经安装,但是dkms还是查询不到相关信息,由此导致安装失败。

首先,如果你需要 linux-headers,你应当安装 linux-headers-amd64 这个元包(假设你的电脑是 AMD64 架构),它会自动引用正确版本的 linux-headers-版本号,包括版本升级。Debian 有很多这样的元包,用来解决版本号的问题。

另外,从你的问题描述

来看,我猜你的电脑上有 NVIDIA 显卡,同时你安装了 nvidia-driver 这个包。如果是这样,你可能需要这个:

speedtest-cli 测量的因特网速度,具体数值受网络波动影响很大。如果需要检查网卡稳定性,你应当用其它工具测量,比如在局域网内(你需要确保你的交换机至少支持 2.5GE 接口)使用 iperf 或者 samba 等进行测速。

电脑上一直没有nvidia显卡。5900x + 6900xt的组合。而且debian将微星主板的rtl8125, 8111有线网卡识别成8169并安装8169的驱动不是个案。网上有非常多的案例。如:

又如

终于解决了。费时三天,参考了多篇文章。回头写个心得发在这里。

并不是这样的,r8169 只是个驱动名,实际上它支持 RTL8125:

https://lwn.net/Articles/797806/

至于支持的好坏那就另说了。

我写好了。至少就我这个案例而言,两个驱动的表现真是天差地别。

后续继续跟踪反馈。

虽然我没有这张网卡,但是根据您的测试结果,我支持您认为 r8169 对 rtl8125 支持不佳这件事。但是 rtl8125 网卡使用驱动 r8169 这确实不是 bug:

https://elixir.bootlin.com/linux/v6.1.78/source/drivers/net/ethernet/realtek/r8169_main.c#L137

因为 r8169 只是这个内核模块的名字,它支持 rtl8125(尽管性能表现可能和 realtek 的树外驱动不同)。

至于为什么 linux kernel 没有对于您使用的网卡来说性能更好的驱动,只能是 realtek 没有把驱动提交到 linux kernel,或者其它什么原因。

$ lspci | grep -i realtek
Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)

这下回旋镖了,我用的也是这张卡。不过我没有 2.5GE 交换机,无法测试它的稳定性。我也无所谓多队列性能和 CPU 消耗,至少千兆网跑的还不错…

我在帖子里写了。家里是2000M光纤,115热门资源的下载速度和同机器的win11中差异巨大。这个网卡是2.5G的,我更新了驱动后,效果非常明显。盲测8169这个普适性的驱动对个别的网卡支持不佳。