pve8.0下替换rtl8168网卡驱动

默认分类 · 2023-07-12

在某台闲置的台式机上装了个pve跑虚拟机,偶尔会有网卡断连的情况,重启后恢复正常,在网上搜了一下,应该是pve自带的网卡驱动和物理机的网卡不匹配导致的,记一下网卡驱动替换的过程

环境信息

pve8.0.3 基于debian12
Linux pve 6.2.16-4-pve #1 SMP PREEMPT_DYNAMIC PVE 6.2.16-4 (2023-07-07T04:22Z) x86_64 GNU/Linux

操作流程

  1. 查看当前的驱动版本

    root@pve:~# lspci | grep Eth
    01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express 
          Gigabit Ethernet Controller (rev 15)
    
    root@pve:~# ethtool -i enp1s0
    driver: r8169
    version: 6.2.16-3-pve
    firmware-version: rtl8168h-2_0.0.2 02/26/15

    可以看到pve自带的是r8169的驱动,而物理机的网卡是8168的

    root@pve:~/r8168-8.051.02# lsmod | grep 816
    r8169                 114688  0

    内核中加载的模块也是8169的

  2. 下载non-free软件包
    这里本来是应该下载官网驱动源码来编译的,但官网驱动似乎还不支持linux6.x内核,也可能是缺什么依赖,编译有问题,所以用的现成的驱动
    在debian的non-free软件源中找到:r8168-dkms

    wget http://ftp.cn.debian.org/debian/pool/non-free/r/r8168/r8168-dkms_8.051.02-2_all.deb
    mv ./r8168-dkms_8.051.02-2_all.deb /tmp/
  3. 安装dkms,r8168-dkms

    apt install -y dkms pve-headers-6.2.16-3-pve
    apt install /tmp/r8168-dkms_8.051.02-2_all.deb

    安装r8168-dkms之前,还要安装当前内核的头文件,头文件包在pve的付费订阅源中,这里配了Tuna的免费源,可以直接装

  4. 卸载旧内核模块

    rmmod r8169

    这一步敲完网卡会离线,要重启,也可以在后面跟重启命令 && reboot

  5. 重启系统,查看驱动版本

    root@pve:~# lsmod | grep r81
    r8168                 655360  0
    
    root@pve:~# ethtool -i enp1s0
    driver: r8168
    version: 8.051.02-NAPI
    firmware-version:

    驱动成功替换

相关链接

pve社区bugzilla关于r8169的报告
参考的pve社区安装r8168-dkms的帖子

Theme Jasmine by Kent Liao