3分钟解决报错NVIDIA_SMI has failed because it couldn’t communicate with the NVIDIA driver.

问题:有时在重启机器后,nvidia-smi之后会显示nvidia驱动丢失,这是由于linux内核升级,之前的nvidia驱动就不匹配。
报错NVIDIA_SMI has failed because it couldn’t communicate with the NVIDIA driver
对于这个问题有两种解决方式:
1)切换回初始内核(无需网络)
2)编译当前显卡驱动适配当前内核版本(需要网络)

方法1:切换回初始内核

一、查看当前内核版本

输入

uname -a

5.4.0-135这串数字代表当前内核版本,原始版本为5.4.0-132
在这里插入图片描述
后面需要切换为初始内核版本

二、查看当前电脑上已下载的内核排序

grep menuentry /boot/grub/grub.cfg

在这里插入图片描述

可以看到当前存在132、135、213三种版本的内核
记录132不带recovery字段的字符(多个内核的字符好像是一样的),后续会用到

即:
gnulinux-5.4.0-132-generic-advanced-d9577f3c-585b-4eec-90ab-15b6977348ed
(若没有132版本的内核,可以自行安装sudo apt-get install linux-image-VERSION-generic linux-headers-VERSION-generic)

三、修改内核默认启动项

输入sudo vim /etc/default/grub,输入用户密码,会弹出文本框修改配置文件。
打开后注意前4行是否注释掉了,否则后面时无法更新成功的。
在这里插入图片描述
GRUB_DEFAULT后面改为
gnulinux-advanced-d9577f3c-585b-4eec-90ab-15b6977348ed>gnulinux-5.4.0-132-generic-advanced-d9577f3c-585b-4eec-90ab-15b6977348ed
若默认内容已为以上格式,仅修改135为132即可
修改后输入:wq退出vim编辑器

四、内核配置更新

输入sudo update-grub进行配置更新
在这里插入图片描述

五、切换内核重启服务器

输入sudo reboot重启服务器
在这里插入图片描述
可以看到,切换为初始内核后,显卡驱动恢复了

方法2:编译当前显卡驱动适配当前内核版本

若重启后发现内核未切换成功,显卡驱动依然不存在,尝试让当前驱动兼容当前内核版本
在这里插入图片描述

一、查看已安装的驱动信息

检查cuda是否存在

nvcc -V

查看已安装驱动的版本信息

ls /usr/src | grep nvidia

在这里插入图片描述
记录当前驱动版本号为470.82.01(此版本号不固定,不同服务器驱动版本存在差异)

二、安装dkms

DKMS(Dynamic Kernel Module Support)是DELL的一个项目,可以做到内核变更后自动编译模块,适配新内核
输入sudo apt-get install dkms安装dkms
在这里插入图片描述
在这里插入图片描述
(可能会需要输入sudo apt autoremove命令,若无该提示则忽略)

三、使用dkms重新编译当前驱动适配当前内核

sudo dkms install -m nvidia -v 470.82.01

在这里插入图片描述
可以看到目前并没有切换为132版本的内核,在135版本的内核下,显卡驱动依然可以正常使用,解决了版本不匹配的问题

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值