本文为转载以供备份
请多支持原创大佬
原文链接 https://evine.win/p/pve-install-realtek-8125-driver/
驱动仓库地址 https://github.com/devome/realtek-r8125-dkms

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
## 更新内核、安装依赖
apt update
apt upgrade
apt install -y dkms proxmox-default-headers
apt install -y dkms pve-headers #pve 8.0.4+建议将pve-headers替换为proxmox-default-headers

## 安装headers
headers=$(dpkg -l | awk '/^ii.+kernel-[0-9]+\.[0-9]+\.[0-9]/{gsub(/-signed/, ""); gsub(/kernel/, "headers"); print $2}' | tr "\n" " ")
eval apt install -y $headers

## 安装刚刚下载好的deb包,此命令只会为当前系统所使用的内核以及刚刚安装的最新内核(也可能当前所使用的内核就是最新内核)安装驱动
dpkg -i realtek-r8125-dkms_*.deb # 如通配符会匹配多个时亦可指定具体的文件名

## 如果想为那些既不是系统当前所使用的内核,也不是刚刚安装的最新内核安装驱动,需要手动指定安装
## 看看哪些内核安装好了驱动
dkms status
## 列出全部内核版本kernel_version,找出那些还没有安装驱动的内核
dpkg -l | awk '/^ii.+kernel-[0-9]+\.[0-9]+\.[0-9]/{gsub(/proxmox-kernel-|pve-kernel-|-signed/, ""); print $2}'
## 手动指定驱动版本(在deb文件名中有体现)和内核版本(从上一句命令的输出中),zsh按tab可自动补全,比如:dkms install realtek-r8125/9.011.01 -k 6.2.16-5-pve
dkms install realtek-r8125/<driver_version> -k <kernel_version>

## 卸载不再需要的headers
eval apt-mark auto $headers
apt autopurge

## 禁用r8169驱动
echo "blacklist r8169" >> /etc/modprobe.d/dkms.conf

## 重启
update-grub
update-initramfs -u -k all
reboot

## 再次查看网卡加载的驱动,现在加载的是r8125了
lspci -s 22:00.0 -k
22: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