1 - PVE 8 驱动安装
驱动说明
默认情况下,pve8 使用 r8169 驱动,可以驱动 8125b 2.5g 网卡,因此不需要安装额外的驱动就可以直接使用 r8125b 网卡。
需要单独安装 r8125 驱动的情况有:
-
性能
r8169 驱动没有开启网卡多队列等特性,会导致一个网卡的软中断只能使用固定的一个核心开接收和发送数据。
参考文章:https://zhuanlan.zhihu.com/p/650244240
-
驱动冲突
如果需要同时使用 r8125b 和 r8168 网卡,则需要安装 r8125 驱动。
参考后面为 r8168 网卡安装 r8168 驱动的章节。
安装驱动
deb 安装
参考文章:
从下面的地址下载到 r8125 驱动的最新版本:
https://github.com/awesometic/realtek-r8125-dkms/releases
我当前下载的是 realtek-r8125-dkms_9.015.00-1_amd64.deb。
以下是远程 ssh 上去之后进行安装的步骤:
# 确保安装了 pve-headers 包
apt install pve-headers-$(uname -r)
# 下载 r8125 驱动
wget https://github.com/awesometic/realtek-r8125-dkms/releases/download/9.015.00-1/realtek-r8125-dkms_9.015.00-1_amd64.deb
# 安装 r8125 驱动
dpkg -i realtek-r8125-dkms_9.015.00-1_amd64.deb
# 重启机器
reboot
查看网卡驱动信息:
$ lspci -k
# 更精准一些
$ lspci -k -s 01:00.0
......
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)
Subsystem: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller
Kernel driver in use: r8169
Kernel modules: r8169, r8125
r8169, r8125 两个模块都存在,说明驱动安装成功。但网卡使用的还是 r8169 驱动。
卸载 r8169 驱动,加载 r8125 驱动,重启网卡,这三个命令必须同时送到服务器端执行, 因为删除 r8169 之后网络就会断开:
# 创建黑名单配置文件
echo "blacklist r8169" | sudo tee /etc/modprobe.d/blacklist-r8169.conf
# 禁止内核自动加载 r8169
echo "install r8169 /bin/false" | sudo tee -a /etc/modprobe.d/blacklist-r8169.conf
# 创建驱动优先级配置
echo "options r8125 debug=1" | sudo tee /etc/modprobe.d/r8125.conf
# 更新 initramfs
update-initramfs -u
# 重启机器
reboot
重启之后查看网卡驱动信息:
$ lspci -k -s 01:00.0
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)
Subsystem: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller
Kernel driver in use: r8125
Kernel modules: r8169, r8125
$ lsmod | grep r81
r8125 299008 0
可以看到 r8125 驱动已经加载成功, r8169 驱动已经被禁用。
2 - ubuntu 20.04 驱动安装
归档说明
可能当时用到的这个 r8125 驱动还不够成熟?也许换到2025年新发的版本就解决了?但因为我后来因为升级不再使用 ubuntu 20.04 这个版本了。就不再继续研究。问题
在 ubuntu 20.04 下,Realtek 8125b 网卡无法被识别。
lspci 可以发现该网卡,但 lsmod 只能看到 r8169 模块,而这个模块在启动时会报错。通过执行
dmesg | grep r8139
可以看到这样的日志信息:
r8169 0000:06:00.0: unknown chip XID 641
这个报错是表明 r8139 模块无法驱动 Realtek 8125b 网卡。需要安装 Realtek 8125b 的驱动。
安装驱动
Realtek 8125b 网卡驱动的下载地址:
在 “Unix (Linux)” 下找到 “2.5G Ethernet LINUX driver r8125 for kernel up to 5.19” ,下载下来,然后解压缩并复制到 ubuntu 20.04 下。
然后执行
cd r8125-9.011.01
sudo ./autorun.sh
驱动安装完毕后重启即可。
掉驱动的问题
使用中发现偶尔会出现一个问题:在某一次重启后,安装好的r8125驱动消失了,r8139重新出现。然后由于 r8139 无法驱动 Realtek 8125b 网卡,因此导致这个网卡不可用。
这个问题基本上每隔一两个月就会发生一次。解决的方式也简单,重新再安装一次 r8125 驱动即可。但是如果遇到人在远程就束手无策了。
google了一下,发现这里有人遇到过和我类似的问题:
https://askubuntu.com/questions/1259947/cant-get-rtl8125b-working-on-20-04
After installing r8125, from time to time my PC automatically upgrades the driver to r8169, making internet inaccessible again, do you guys know how to disable this specific upgrade?
这个问题也可以通过升级到高一点版本的内核即可解决,比如 5.10 以上。但由于 hp544+ 网卡驱动的问题,我有些电脑不得不停留在 5.4 内核,因此这个问题总是会偶尔发生一次。
这里也讨论到类似问题:
https://ubuntu-mate.community/t/realtek-rtl8125-2-5gbe-ethernet-not-working-on-amd-b550-mobo/22469/4
有意见说是每当内核更新时,需要重新安装这个驱动。
After each kernel update , you must re install ethernet driver .
So for removing :
sudo modprobe -rfv r8125
sudo dkms remove -m r8125 -v 9.003.05 –all
sudo rm -r /usr/src/r8125-9.003.05
then reinstall with the initial procedure seen before .
ls /usr/src/
kernel-mft-dkms-4.24.0 linux-headers-5.4.0-169-generic linux-headers-5.4.0-170-generic
linux-headers-5.4.0-169 linux-headers-5.4.0-170