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

今天打开ubuntu20.04操作系统,无奈发现使用 nvidia-smi 查看显卡状态,却报了下面的异常。然后原来配置的GPU环境也不起作用了。这里记录下这个问题的解决思路。
NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver. Make sure
问题剖析

起初还以为是显卡的接线出了问题,拔线拔了,又重新插了一遍,仍没有解决问题。最后经过查询才知道是因为我的ubuntu系统自动更新了系统的内核,导致原来装的 GPU 驱动无法和系统进行有效通信。当然解决此问题的方法之一是,将显卡驱动卸载然后重新安装,但是实在不想那么麻烦了,如果后续每更新一次内核,都要重新配置,真的太麻烦了!!!!

问题解决思路
1 关闭Ubuntu的内核自动更新

明显,内核我并没有手动更新,是系统自动更新的,所以,首要任务是先关了内核的自动更新。
分别输入下面的命令:
1

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

2

sudo vi /etc/apt/apt.conf.d/20auto-upgrades

上面两个命令打开的文件内容是一个字典,将字典中的值统一改为 0 ,即不开启相应的更新,然后保存退出即可、

2 查看内核信息
uname -r

在这里插入图片描述

sudo dpkg --get-selections | grep linux-image

【注】带 install 的是可用内核
在这里插入图片描述

内核映像文件主要包括以下类型:
linux-image-版本号:内核映像文件
linux-headers-版本号:内核头文件
linux-image-extra-版本号:内核扩展文件
删除对应版本的内核文件:sudo apt-get purge linux-image-<版本号>

3 修改 grub 文件
sudo gedit /etc/default/grub

在打开的内容中,增加下面的内容,这个内容主要是为了自定保存默认的内核设置:

GRUB_SAVEDEFAULT=true
GRUB_DEFAULT=saved

然后注释掉 GRUB_TIMEOUT_STYLE 这一段代码,设置 GRUB_TIMEOUT 值为 10,即启动时会有十秒钟的时间停在选择界面上:

# GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10

保存文件后,使用下面命令使其生效:

sudo update-grub

【一般要等30秒左右,有打印信息,会把所有可用的内核都设置一遍】
然后重启系统

sudo reboot

【注】重启系统后,开机之前的 grub 界面中,选择 Advantages for ubuntu 选项,接着选择自己想要的内核版本(最好不要选择recovery模式)进入,系统会默认选择你本次的启动内核为默认内核版本。

最后一步

由于我们设置了 GRUB_TIMEOUT=10,如果我们选定了系统内核,一般会通过在 grub 文件中添加的内容进行自动保存,所以下次在进入系统时,无需重复选择内核版本,这里需要重新设置一下 grub 文件中的内容 GRUB_TIMEOUT_STYLE=hidden 去掉注释即可:

GRUB_TIMEOUT_STYLE=hidden

然后保存文件后,运行下面的命令:

sudo update-grub

在下次启动时会自动选择该内核了!!!

一般只要调整好合适的内核,nvidia-smi 就可以正常使用了,之前装的环境也可以用了。当然这样的问题还有其他解决方案,但我觉得这个相对简单些,也有效,大家可以借鉴!!
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值