Centos7.9 升级内核,安装RTX5880驱动
系统镜像下载
https://vault.centos.org/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.iso
系统安装步骤省略
开始安装显卡驱动
远程登录查看内核
[root@192 ~]# uname -a
Linux 192.168.119.166 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@192 ~]# rpm -qa | grep kernel
kernel-devel-3.10.0-1160.el7.x86_64
kernel-tools-libs-3.10.0-1160.el7.x86_64
abrt-addon-kerneloops-2.1.11-60.el7.centos.x86_64
kernel-headers-3.10.0-1160.el7.x86_64
kernel-3.10.0-1160.el7.x86_64
kernel-tools-3.10.0-1160.el7.x86_64
[root@192 ~]#
更换阿里云源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
安装依赖
yum -y install epel-release wget make cmake dkms gcc gcc-c++ elfutils-libelf-devel -y bzip2-devel libffi-devel zlib-devel
yum -y groupinstall "Development Tools"
屏蔽nouveau
启动模式修改编辑 /lib/modprobe.d/dist-blacklist.conf
#注释 nvidiafb
#blacklist nvidiafb
#添加以下两行
blacklist nouveau
options nouveau modeset=0
重建initramfs
mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
dracut /boot/initramfs-$(uname -r).img $(uname -r) --force
切换命令行界面
查看当前启动模式
systemctl get-default
设置为命令行模式(重启后生效)
systemctl set-default multi-user.target
立即切换命令行模式执行
init 3
执行重启
reboot
驱动下载:

驱动下载链接
https://cn.download.nvidia.com/XFree86/Linux-x86_64/570.133.07/NVIDIA-Linux-x86_64-570.133.07.run
开始执行驱动安装
bash NVIDIA-Linux-x86_64-570.133.07.run
安装英伟达驱动提示报错,内核版本太低无法安装最新的驱动如下图


日志信息如下:
内核版本最低要求为4.15
/tmp/selfgz1974/NVIDIA-Linux-x86_64-570.133.07/kernel/common/inc/nv-linux.h:64:2: error: #error "This driver does not support kernels older than Linux 4.15!"
#error "This driver does not support kernels older than Linux 4.15!"
摘录日志部分如下
make[3]: *** [/tmp/selfgz1974/NVIDIA-Linux-x86_64-570.133.07/kernel/nvidia/nvlink_linux.o] Error 1
CC [M] /tmp/selfgz1974/NVIDIA-Linux-x86_64-570.133.07/kernel/nvidia/procfs_nvswitch.o
make[3]: *** [/tmp/selfgz1974/NVIDIA-Linux-x86_64-570.133.07/kernel/nvidia/linux_nvswitch.o] Error 1
CC [M] /tmp/selfgz1974/NVIDIA-Linux-x86_64-570.133.07/kernel/nvidia/i2c_nvswitch.o
In file included from /tmp/selfgz1974/NVIDIA-Linux-x86_64-570.133.07/kernel/nvidia/linux_nvswitch.h:28:0,
from /tmp/selfgz1974/NVIDIA-Linux-x86_64-570.133.07/kernel/nvidia/procfs_nvswitch.c:24:
/tmp/selfgz1974/NVIDIA-Linux-x86_64-570.133.07/kernel/common/inc/nv-linux.h:64:2: error: #error "This driver does not support kernels older than Linux 4.15!"
#error "This driver does not support kernels older than Linux 4.15!"
^
In file included from /tmp/selfgz1974/NVIDIA-Linux-x86_64-570.133.07/kernel/nvidia/linux_nvswitch.h:28:0,
from /tmp/selfgz1974/NVIDIA-Linux-x86_64-570.133.07/kernel/nvidia/i2c_nvswitch.c:24:
/tmp/selfgz1974/NVIDIA-Linux-x86_64-570.133.07/kernel/common/inc/nv-linux.h:64:2: error: #error "This driver does not support kernels older than Linux 4.15!"
#error "This driver does not support kernels older than Linux 4.15!"
^
make[3]: *** [/tmp/selfgz1974/NVIDIA-Linux-x86_64-570.133.07/kernel/nvidia/procfs_nvswitch.o] Error 1
make[3]: *** [/tmp/selfgz1974/NVIDIA-Linux-x86_64-570.133.07/kernel/nvidia/i2c_nvswitch.o] Error 1
make[3]: Target `__build' not remade because of errors.
make[2]: *** [_module_/tmp/selfgz1974/NVIDIA-Linux-x86_64-570.133.07/kernel] Error 2
make[2]: Target `modules' not remade because of errors.
make[1]: *** [sub-make] Error 2
make[1]: Target `modules' not remade because of errors.
make[1]: Leaving directory `/usr/src/kernels/3.10.0-1160.el7.x86_64'
make: *** [modules] Error 2
ERROR: The nvidia kernel module was not created.
ERROR: Installation has failed. Please see the file '/var/log/nvidia-installer.log' for details. You may find suggestions on fixing installation problems in the README available on the Linux driver download page at www.nvidia.com.
yum更新kernel均失败
由于centos停服,使用yum源安装内核均失败,更换思路下载单独的rpm包手动升级内核
5.4和4.18 下载地址:
Index of /elrepo/kernel/el7/x86_64/RPMS
wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-lt-headers-5.4.86-1.el7.elrepo.x86_64.rpm
wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-lt-devel-5.4.86-1.el7.elrepo.x86_64.rpm
wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-lt-5.4.86-1.el7.elrepo.x86_64.rpm
wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-4.18.0-1.el7.elrepo.x86_64.rpm
wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-devel-4.18.0-1.el7.elrepo.x86_64.rpm
wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-headers-4.18.0-1.el7.elrepo.x86_64.rpm
升级内核5.4.86
内核包下载地址:
Index of /elrepo/kernel/el7/x86_64/RPMS
wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-lt-headers-5.4.86-1.el7.elrepo.x86_64.rpm
wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-lt-devel-5.4.86-1.el7.elrepo.x86_64.rpm
wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-lt-5.4.86-1.el7.elrepo.x86_64.rpm
安装kernel-lt-headers包提示报错,
[root@192 ~]# rpm -ivh kernel-lt-headers-5.4.86-1.el7.elrepo.x86_64.rpm
warning: kernel-lt-headers-5.4.86-1.el7.elrepo.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID baadae52: NOKEY
error: Failed dependencies:
kernel-headers < 5.4.86-1.el7.elrepo conflicts with kernel-lt-headers-5.4.86-1.el7.elrepo.x86_64
解决办法删除原有的kernel-lt-headers,重新执行安装即可
sudo yum remove kernel-headers
重新执行安装
[root@192 ~]# rpm -ivh kernel-lt-headers-5.4.86-1.el7.elrepo.x86_64.rpm
warning: kernel-lt-headers-5.4.86-1.el7.elrepo.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID baadae52: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:kernel-lt-headers-5.4.86-1.el7.el################################# [100%]
[root@192 ~]# rpm -qa | grep kernel
kernel-devel-3.10.0-1160.el7.x86_64
kernel-tools-libs-3.10.0-1160.el7.x86_64
kernel-lt-devel-5.4.86-1.el7.elrepo.x86_64
abrt-addon-kerneloops-2.1.11-60.el7.centos.x86_64
kernel-lt-headers-5.4.86-1.el7.elrepo.x86_64
kernel-3.10.0-1160.el7.x86_64
kernel-lt-5.4.86-1.el7.elrepo.x86_64
kernel-tools-3.10.0-1160.el7.x86_64
[root@192 ~]#
设置新的内核启动默认
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
sudo grub2-set-default 0
sudo reboot
执行结果如下:
[root@192 ~]# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (5.4.86-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
2 : CentOS Linux (0-rescue-ff5d305d1a134e4191b7354d567cff1a) 7 (Core)
[root@192 ~]# sudo grub2-set-default 0
[root@192 ~]# sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.4.86-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-5.4.86-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-1160.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1160.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-ff5d305d1a134e4191b7354d567cff1a
Found initrd image: /boot/initramfs-0-rescue-ff5d305d1a134e4191b7354d567cff1a.img
done
[root@192 ~]#
开始安装显卡驱动
升级内核后,重新执行安装依赖
yum -y install epel-release wget make cmake dkms gcc gcc-c++ elfutils-libelf-devel -y bzip2-devel libffi-devel zlib-devel
yum -y groupinstall "Development Tools"
切换命令行模式执行init 3 ,开始执行驱动安装
bash NVIDIA-Linux-x86_64-570.133.07.run
重启重新执行驱动安装,侯仍然报错,

ERROR: The nvidia kernel module was not created.
升级内核到4.18内核
仍然失败,尝试升级到4.18内核,重做系统后,重新升级内核
下载地址:
Index of /elrepo/kernel/el7/x86_64/RPMS
wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-4.18.0-1.el7.elrepo.x86_64.rpm
wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-devel-4.18.0-1.el7.elrepo.x86_64.rpm
wget http://193.49.22.109/elrepo/kernel/el7/x86_64/RPMS/kernel-ml-headers-4.18.0-1.el7.elrepo.x86_64.rpm
开始安装内核包
[root@localhost ~]# rpm -ivh kernel-ml-*
警告:kernel-ml-4.18.0-1.el7.elrepo.x86_64.rpm: 头V4 DSA/SHA1 Signature, 密钥 ID baadae52: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:kernel-ml-headers-4.18.0-1.el7.el################################# [ 33%]
2:kernel-ml-devel-4.18.0-1.el7.elre################################# [ 67%]
3:kernel-ml-4.18.0-1.el7.elrepo ################################# [100%]
[root@localhost ~]#
设置默认内核
[root@localhost ~]# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg
0 : CentOS Linux (4.18.0-1.el7.elrepo.x86_64) 7 (Core)
1 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
2 : CentOS Linux (0-rescue-a7392526ed57441c9c9f83af98d34f2b) 7 (Core)
[root@localhost ~]# sudo grub2-set-default 0
[root@localhost ~]# sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.18.0-1.el7.elrepo.x86_64
Found initrd image: /boot/initramfs-4.18.0-1.el7.elrepo.x86_64.img
Found linux image: /boot/vmlinuz-3.10.0-1160.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-1160.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-a7392526ed57441c9c9f83af98d34f2b
Found initrd image: /boot/initramfs-0-rescue-a7392526ed57441c9c9f83af98d34f2b.img
done
[root@localhost ~]#
升级内核后,重新执行安装依赖
yum -y install epel-release wget make cmake dkms gcc gcc-c++ elfutils-libelf-devel -y bzip2-devel libffi-devel zlib-devel
yum -y groupinstall "Development Tools"
重启后验证内核
[root@localhost ~]# uname -a
Linux localhost.localdomain 4.18.0-1.el7.elrepo.x86_64 #1 SMP Sun Aug 12 18:04:19 EDT 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# rpm -qa | grep kernel
kernel-ml-headers-4.18.0-1.el7.elrepo.x86_64
kernel-tools-libs-3.10.0-1160.el7.x86_64
abrt-addon-kerneloops-2.1.11-60.el7.centos.x86_64
kernel-ml-4.18.0-1.el7.elrepo.x86_64
kernel-3.10.0-1160.el7.x86_64
kernel-tools-3.10.0-1160.el7.x86_64
kernel-ml-devel-4.18.0-1.el7.elrepo.x86_64
[root@localhost ~]#
重新执行驱动安装
bash NVIDIA-Linux-x86_64-570.133.07.run


安装成功

总结
centos7.9默认的内核无法安装nvidia最新的2025.3.18驱动NVIDIA-Linux-x86_64-570.133.07
5.4.6版本的内核安装也会失败,用4.15以上版本4.18安装成功。
淘宝小店,欢迎你的光临,可定制你的需求

https://shop340822098.taobao.com/


浙公网安备 33010602011771号