解决NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver

问题解决

终端输入: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.

Ubuntu20.04的系统,之前使用nvidia-smi就出来详细显卡信息了,但是过了段时间,再使用指令就出现这样的提示,重启之后还是这样。

经过查找资料和实践验证,最后确定是:

是内核版本更新的问题,导致新版本内核和原来显卡驱动不匹配

解决:
查看已安装内核

dpkg --get-selections |grep linux-image

在这里插入图片描述
查看正在使用的内核

uname -a

显示为5.11.0-38-generic。因为之前安装nvidia驱动时记下了当时的内核版本为5.11.0-27-generic。所以更确定确实是因为内核版本更新导致不匹配的问题。

只需执行两条命令就好:

sudo apt-get install dkms
sudo dkms install -m nvidia -v 470.82.00(470.82.00表示的是驱动版本号)

利用命令 ll /usr/src/ 可查看下面有一个nvidia-470.82.00文件夹,版本号因电脑而异。

安装完成后,此时
解决NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver_第1张图片

禁止内核自动更新

1)命令行关闭系统自动更新,使用命令打开文件并编辑

sudo gedit /etc/apt/apt.conf.d/10periodic

将双引号中的“1”全部置“0”即可,修改后保存。

2)图形界面来关闭自动更新,找到软件更新(Software & Updates)
解决NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver_第2张图片
3)ubuntu默认启动了自动更新内核,为了避免出现重启系统后遇到错误进入不到系统中去,我们可以进一步关闭内核更新,使用当前内核。

~$ sudo apt-mark hold linux-image-generic linux-headers-generic 
linux-image-generic set on hold.
linux-headers-generic set on hold.

如果要重启启动内核更新:

sudo apt-mark unhold linux-image-generic linux-headers-generic

我是只采用了第二种方法禁止系统更新,但发现没用,所以为了保险起见,大家可以把以上三种都进行设置。

你可能感兴趣的:(SLAM,linux,ubuntu,nvidia)