接上一个博客,更新了CentOS系统内核版本之后,NVIDIA显卡不能用了,在运行软件时出现如下的报错:
-bash-4.2# nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
于是又开了与GPU服务器斗智斗勇的过程了。
查了很多博客后发现。报错是因为进入的系统默认使用最新的,而这个最新的却不会把之前安装的nvidia驱动也迁移过来,如果我们每次升级内核都重装NVIDIA的话,就会出现下面所示的恶性循环:
驱动崩坏——>重装驱动——>更新内核——>驱动崩坏——>重装驱动
为了不重装NVIDIA,想到我们是运用了 yum update 命令造成了内核升级,因此需要进行内核降级,以前的nvidia才会得以使用。
(1)先确定升级后当前服务器发行版本
-bash-4.2# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
(2)查看内核版本
-bash-4.2# uname -a
Linux gpuservice 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
(3)查看自己系统中有哪些内核版本,选择之前使用过的老版本,一般来说,用 yum update 以后会保留较旧的内核,cd /usr/src/kernels/ 然后运行ll
-bash-4.2# cd /usr/src/kernels/
-bash-4.2# ll
total 20
drwxr-xr-x. 22 root root 4096 Apr 18 2020 3.10.0-1062.18.1.el7.x86_64
drwxr-xr-x. 22 root root 4096 Apr 18 2020 3.10.0-1062.9.1.el7.x86_64
drwxr-xr-x. 22 root root 4096 Apr 18 2020 3.10.0-693.21.1.el7.x86_64
drwxr-xr-x. 22 root root 4096 Apr 18 2020 3.10.0-693.el7.x86_64
drwxr-xr-x. 22 root root 4096 Apr 18 2020 3.10.0-693.el7.x86_64.debug
注:(2)步是已经设置过的内核版本,升级后的内核版本是 Linux gpuservice 3.10.0-1062.18.1.el7.x86_64,要改成原来的 Linux gpuservice 3.10.0-693.el7.x86_64版本
(4)改成原来的内核版本
-bash-4.2# grub2-set-default 'CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)'
-bash-4.2# grub2-editenv list # 查看内核修改结果
(5)重启之后输入nvidia-smi,成功解决
注:修改之后一定要重启,一定要重启!!!!在重启的界面选择之前的旧版本。
参考:https://blog.csdn.net/versionwen/article/details/109403954