Centos7升级内核&编译安装网卡驱动
Centos7升级内核&编译安装网卡驱动
环境介绍
业务需要,公司的k8s环境负载过高,需要增加一个node节点,我们的操作系统是centos7.9版本3.1内核系统,由于安装k8s需要5.x版本以上
升级内核遇到的问题
问题难点:内核升级完成后发现网卡竟然不会识别,我们的服务器上有两个网卡一个内置集成网卡和一个pie网卡,在终端输入ifconfig命令发现只能看见一个lo回环网络接口,没有eth0网卡
此时按照网上教程说的,手动创建ifcfg-eth0文件并写入网络配置信息,发现并不能解决问题,仍找不到网卡设备。经过分析,确定是没有相应网卡驱动。
以下是完整的安装流程
安装步骤
1、下载5.4.196内核,上传到对应服务器 (可以在nas上下载5.4.196内核,上传到对应服务器 官网地址)
2、安装gcc9(编译驱动使用)
3、下载网卡驱动,官网地址 (执行lspci -v查看需要的的module版本)
4、重启网卡或者重启服务器
5、安装显卡驱动,官网链接:
centos7内核升级
安装内核
- 内核安装好以后重启服务器,[网盘地址](链接:https://pan.baidu.com/s/1pHQnO1TYypO2CsdMj3-7hw
提取码:1234[)
1 | sudo rpm -ivh kernel-lt-5.4.196-1.el7.elrepo.x86_64.rpm |
设置启动默认内核(可选)
1、查看已安装可用内核并打印内核启动顺序
sudo awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
机器上如果存在多个内核,我们要使用最新版本,可以通过grub2-set-default 0
命令生成 grub 配置文件
2、设置默认的内核启动项:
sudo grub2-set-default 0 #初始化页面的第一个内核将作为默认内核
1 | #cat /boot/grub2/grub.cfg |grep menuentry 有三个默认的内核启动项可选 |
安装gcc环境
gcc主要是编译内核使用
1 | yum -y install gcc dkms kernel-devel |
下载网卡驱动
[网盘地址](链接:https://pan.baidu.com/s/1aIUD7LD0MT9177_s6wRFWg
提取码:1234)
- 因为我们内核升级到5.x发现网卡消失,下图使用
lspci -v
从这里可以看出网卡的型号是RTL8111/8168/8411,但是centos7 3.10内核识别为8169,所以导致升级完内核后会丢失网卡,所以我们要下载网卡驱动,然后上传到centos7。
- 上传驱动到centos7
由于我网卡是两个所以上传了两个不同版本的驱动版本可以lspci查看
r8168-8.051.02.tar.gz
r8125-9.011.00.tar.gz
上传好以后解压文件然后执行脚本autorun.sh即可
1 | tar -zxf r8168-8.051.02.tar.gz |
- 重启网卡并查看网卡是否显示
systemctl restart network
ifconfig -a #如果网卡显示那么恭喜你内核升级完成,这个时候可以使用
lspci -v
查看mode型号是否一样
安装显卡驱动
首先确认需要安装GCC+9版本以上,否则会有以下报错。
The CC version check failed: ...
- 卸载原始显卡驱动 yum remove nvidia*
然后重启机器
2.内核升级,上面文档已介绍
3、关闭系统自带nouveau
vim /etc/modprobe.d/blacklist.conf #追加以下两行内容
#文本追加内容
blacklist nouveau
options nouveau modeset=0
#文本追加内容4、重建initramfs image步骤
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut /boot/initramfs-$(uname -r).img $(uname -r)
重启电脑生效。
lsmod | grep nouveau #查看是否关闭了nouveau
无任何输出代表已关闭5、安装显卡驱动,或者在nac下载
官网链接: [网盘地址](链接:https://pan.baidu.com/s/1ZqIAj-ZBZgI0Ag8AvGwNHQ
提取码:1234)
给文件添加可执行文件
chmod +x NVIDIA-Linux-x86_64-515.76.run
接下来以root用户安装安装前先执行设置GCC9为当前shell
scl enable devtoolset-9 bash #
启用GCC9
chmod +x NVIDIA-Linux-x86_64-515.76.run
./NVIDIA-Linux-x86_64-515.76.run最后执行完毕可以使用
nvidia -smi
检查是否安装完成
- 执行后会进入图形化界面然后进行选择,选择好如果没有问题重启即可
如果有以下报错,是因为没有关闭关闭系统自带nouveau,关闭后重新安装
1 | The Nouveau kernel driver is currently in use by your system. This driver is incompatible with the NVIDIA driver, and must be disabled before proceeding. Please |