PVE默认R8169网卡驱动不兼容RTL8111/8168/8411问题记录
一、整改记录
近日无事,想要部署一个免费的虚拟化平台,那么我就使用了 Proxmox VE。但是在安装完成之后,网络经常时断时续,并且在主机上出现如下报错:
![[Pasted image 20230203093034.png]]
因为我是第一次碰到这样的问题,我就逐步的进行处理:
更新Deian源,因为PVE是基于Debian进行二次开发的,所以我就使用了Debian镜像站,
安装相关依赖包。PS:我也不确定我是否只是安装了这些包,我根据/var/log/apt/下的history.log和term.log文件进行判断的。
apt-get install ethtool net-tools pacman gcc make autoconf automake gdb tree pve-headers-$(uname -r) pve-kernel-$(uname -r) linux-libc-dev-amd64-cross pve-kernel-libc-dev
查看相关网卡信息:
基于上面的信息,我们知道我们当前的网卡型号是RTL8111/8168/8411
,而我们实际使用的驱动是r8169
,那么在这种情况下就会出现网卡与驱动不匹配,进而导致网络时断时续等问题。
官网下载驱动程序代码:Realtek PCIe FE / GBE / 2.5G / Gaming Ethernet Family Controller Software - 瑞昱半导体
将下载的文件,上传至服务器/mnt/
下并解压:
tar -jxvf r8168-8.051.02.tar.bz2
该文件下面存在一个自动化部署脚本autorun.sh
、源代码目录src
、简单说明文件README
以及Makefile
:
注意:我十分不推荐上来直接使用自动化部署脚本autorun.sh
,因为直接运行该脚本可能会出现在缺少编译环境的情况下,直接卸载了原有能够让你上网的网卡驱动,虽然上网体验度十分差,但至少能上网,能够一些不必要的麻烦。当时做好驱动后就是因为没有拔插网线导致耽误了好长时间。
现在我们开始编译驱动并安装:
make && make install
在编译过程中可能出现了如下几个报错,可以按照第二章报错解决:
正常编译之后的结果如下:
当我们编译没有出现任何错误的时候,我们就可以运行autorun.sh
脚本了。
查看当前主机网卡驱动驱动结果
至此,我们当前的网卡驱动不兼容问题得以解决。但是我们在安装完成网卡驱动后,需要拔插一下网线使网口物理UP/DOWN一次,要不然可能导致网络依然不通的问题。
二、报错解决
1、报错1
该报错我们可以不用理会,在我理解是因为gcc的问题。
2、报错2
3、报错3
在相关目录下缺少需要相关证书文件,只要我们生成证书并放到指定目录就可以解决。如下内容转载至: sign-file: certs/signing_key.pem: 解决方法_知秋贺的博客-CSDN博客
步骤1:建立x509.genkey文件,内容如下:
[ req ]
default_bits = 4096
distinguished_name = req_distinguished_name
prompt = no
string_mask = utf8only
x509_extensions = myexts
[ req_distinguished_name ]
CN = Modules
[ myexts ]
basicConstraints=critical,CA:FALSE
keyUsage=digitalSignature
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid
步骤2:生成相关证书文件
openssl req -new -nodes -utf8 -sha512 -days 36500 -batch -x509 -config x509.genkey -outform DER -out signing_key.x509 -keyout signing_key.pem
步骤3:移动到相关位置
mv signing_key.pem signing_key.x509 /usr/src/linux-headers-5.15.74-1-pve/certs/
4、报错4
这个也是缺少相关文件造成的,如下是解决方式:
ln -s /boot/System.map-5.15.74-1-pve /lib/modules/5.15.74-1-pve/build/System.map