和smi_Ubuntu nvidia-smi 突然失效的解决办法与汇总

在尝试使用prime-indicator切换显卡后,nvidia-smi无法正常工作,提示无法与NVIDIA驱动通信。经过尝试更换内核、dkms安装、检查secure boot、安装旧内核以及重装NVIDIA驱动等方法,最后通过删除blacklist-nvidia.conf文件并安装kernel相关包解决了问题。
摘要由CSDN通过智能技术生成

之前为了省事,直接用CUDA自带的NVIDIA driver,其间一直没有问题,nvidia-smi可以成功显示显卡情况

2c5617b33ffabc379d6dd09f82747a3c.png

但是nvidia-settings不能用

49d80c067993f1be3af779a8cab31aa2.png

有一天心血来潮,看到有人安利prime-indicator,可以非常简单切换显卡(苦于我的GPU只能跑程序,什么3D渲染,图形界面全用的服务器自带的集显),所以就下载了一个,settings研究打不开,所以就点击了Quick switch Graphics, 告诉我要log out什么东西,我就确定了,之后跳回登陆界面,输入密码后卡死。(事实证明瞎折腾就是给自己挖坑),之后重启。

对,就是这个重启!!他似乎帮我更新了什么乱七八糟的东西,当我再次使用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.

之后我就开始了漫长的修复之路(辛酸史)

1. 查看系统拥有的内核

grep menuentry /boot/grub/grub.cfg

只有5.3.0-45-generic和5.3.0-46-generic,切换至5.3.0-45,发现仍然没有解决问题。

2. dkms大法

```

ls /usr/src #查看驱动版本

```

我的是nvidia-440.64.00

所以果断

```

sudo dkms install -m nvidia -v 440.64.00

```

告知,nvidia440.64.00 has already install on 5.3.0-46-generic(大概是这么说的),方法崩溃

3. 检查bios中的secure boot

发现是disable 没有问题

4. 安装旧的内核

比如5.3.0-28, 安装完毕,修改grub进入!

```

sudo gedit /etc/default/grub #进入文件

#修改

GRUB_DEFAULT = 0 #原始

GRUB_DEFAULT = "1> 4" #改成这样

```

这里修改的GRUB_DEFAULT需要根据自己的情况来,通过grep menuentry /boot/grub/grub.cfg来查看自己的内核顺序,然后从上往下,第一个是0。 1代表进入Ubuntu高级选项,4代表选择的内核顺序。中间有个空格。

修改完之后

```

sudo update-grub #更新

reboot #重启

```

然后我的服务器就失联了,之后找人去看,发现旧内核里面没有网,ifconfig和ifconfig -a都只有lo一个端口。然后托人下载了网卡驱动,去安装,重启,发现还是没网,(大概是驱动不匹配)。放弃了,回到原来的kernel

5. 重装nvidia驱动

```

sudo apt-get --purge remove nvidia-*

sudo apt-get autoremove #删除驱动

```

这一步不能将CUDNN等删去。

之后通过cuda重装,nvidia-smi依旧不行;

通过ppa重装,nvidia-smi依旧不行;

通过软件与更新安装,还是不行;

通过.run文件安装,安装途中报错,也是关于driver和kernel的问题。

## 之后也尝试了什么modprobe nvidia等方法,都报错。

# 解决方法

想着可能是内核不完全的问题,就安装了一下kernel的相关包

```

sudo apt-get install kernel*

```

其间发现blacklist里有一个blacklist-nvidia.conf文件,在/etc/modprobe.d下面,里面的内容是

```

blacklist nvidia

blacklist nvidia-uvm

...

... #记不得了

```

果断删掉了。

安装kernel包的时候,会新装很多内核,所以需要再次进入grub,把default改回当前使用的版本,否则很可能重启之后再次失联!

再次重启,问题解决,一切都回来了!!

然后我果断的

f3964bbb7341d5e893b2c0f917f956df.png

(个人经历,有点无厘头,希望对广大网友有所帮助,毕竟都是板砖工,能不重装就不重装)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值