已解决NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver 的报错
Posted 不要叫我地扒哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了已解决NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver 的报错相关的知识,希望对你有一定的参考价值。
问题描述
基于ubuntu16.04,本人在更换一次系统下载源后,误操作进行了内核升级。
执行以下查看cuda命令:
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.
打开系统进行训练,发现tensorflow-GPU还可以正常使用,说明我的GPU驱动还完好,不用重新进行驱动安装,CUDA没有问题。这说明是nvidia的查看指令出现了问题。
问题原因
ubuntu的内核版本升级后造成的问题。
在ubuntu升级内核组件后,会优先使用ubuntu内核版本高的版本,ubuntu会修改默认开机启动的内核版本(用最新的)。而最新的内核版本和原来的ubuntu其他组件起了冲突。无法连接nvidia驱动了。(你可以这样理解)
NVIDIA驱动是在低版本的时候安装,由于系统更新,内核版本升级导致NVIDIA无法应用在高内核版本。所以,说明是内核版本的问题,选择低版本的内核即可。
查看设备现有的内核
从ubuntu高级选项进入:
发现有两个系统内核(这里可以手动进入某一版本内核,确认以下哪个版本需要在后续的步骤里设置为默认内核版本),本人需要使用旧版本4.4.0-197。
设置过程
(1) 设置
进入文件
sudo gedit /etc/default/grub
将GRUB_DEFAULT设为:
#GRUB_DEFAULT=0
GRUB_DEFAULT="1> 3"
使用 ‘>’ 符号来指定有一个子菜单(注意符号 > 和数字 2 之间有空格,所以需要双引号)。 在这种情况下,我在主菜单(即图1)中选择第二个选项(索引1),在子菜单(即图2)中选择第四个选项(索引3)。注意双引号要用英文的""。
具体参数,一定要根据自己电脑按以上逻辑修改。
保存后退出。
(2) 更新
一旦对/etc/default/grub进行了更改,请保存并运行以下命令来更新GRUB配置文件(必须,否则不生效),输入如下命令:
sudo update-grub
(3)重新启动
现在应该默认启动旧的内核版本。
进入ubuntu,再次执行命令nvidia-smi发现又可以正常使用了。问题解决。
转载自:
https://www.pudn.com/news/6228ccf49ddf223e1ad10384.html
nvidia-smi报错:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver 原因及避坑解决方案
由于断电,服务器重启了,当我再次跑实验时,发现cuda不可用,于是输入“nvidia-smi”才发现了一个错误,如下:
NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver
这是由于重启服务器,linux内核升级导致的,由于linux内核升级,之前的Nvidia驱动就不匹配连接了,但是此时Nvidia驱动还在,可以通过命令 nvcc -V 找到答案。
于是我频繁查找解决方法,在这篇博客中找到了答案,但是每台电脑的情况都有不同,我这台电脑还有更多的坑(下文再说其余坑的解决方法),首先说解决方法:
第一步,安装dkms:
sudo apt-get install dkms
第二步,查看本机连接不上的驱动版本:
ls -l /usr/src/
可以看到有一个nvidia的文件,我这里是 nvidia-470.103.01
如果没有 nvidia-470.103.01 这类文件,那么请作者打开 unbuntn 的软件与升级,如下:
打开以后发现有一项 additional drivers ,根据自己的需求安装一个就好了,我这里安装的470,如下:
安装完成后在 /usr/src/ 目录下就会有 nvidia-470.103.01 文件啦!
第三步,使用dkms重新安装适合驱动:
sudo dkms install -m nvidia -v 470.103.01
这条命令 -v 后面需要填写本机的nvidia驱动版本,根据第二步得到!
到了这里,如果你安装成功,那么恭喜你,此时输入nvidia-smi就会成功连接了!
============================================================================
如果安装失败了,请跟者本文走>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
此时,如果你的gcc(尽量大于7.3版本)版本过低,那么上述命令sudo dkms install -m nvidia -v 470.103.01失败的原因就找到了,查看现有的gcc版本:
gcc --version
这里我讲解安装gcc7.5版本的过程:
第一步,下载gcc,输入命令:
cd /usr/local/src/
wget http://ftp.gnu.org/gnu/gcc/gcc-7.5.0/gcc-7.5.0.tar.xz tar xvf
gcc-7.3.0.tar.xz
第二步,安装gcc的依赖软件,gcc的软件包内提供了自动下载需要软件的脚本,命令如下:
cd gcc-7.5.0/
./contrib/download_prerequisites
第三步,生成Makefile文件,输入命令:
./configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
第四步,编译gcc,命令如下:
make -j4
ls /usr/local/bin | grep gcc
多核电脑可以添加 “-j4” ,make对多核处理器的优化选项,此步骤非常耗时 !
第五步,安装gcc,命令如下:
make install
安装完成后,再次输入命令sudo dkms install -m nvidia -v 470.103.01,如果成功了,恭喜你!
=============================================================================
如果失败了,别急,接着往下看>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
此时,我们需要把新安装的gcc版本的优先级调到最高,否则系统还是会调用以前版本的gcc,这样还是会导致命令sudo dkms install -m nvidia -v 470.103.01失败。
gcc在 /usr/bin 目录下,输入命令查看所有版本的gcc:
ls /usr/bin/gcc*
ls /usr/bin/g++*
将查到的版本加入gcc候选中,最后的数字是优先级,如下:
> sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 100
> sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100
> sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 100
> sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 100
完成上面的操作之后,我们就可以通过下面的指令来选择不同的gcc和g++的版本了
sudo update-alternatives --config gcc
这里我们选择新安装的 gcc-7,也就是输入数字 2 ,到这里,我们在输入命令sudo dkms install -m nvidia -v 470.103.01,成功!
重启电脑,输入nvidia-smi,链接成功!
以上就是本博主遇到的所有坑以及解决办法,喜欢的点个赞支持一下白!
以上是关于已解决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 原因及避坑解决方案
Ubuntu 16.04 显卡报错NVIDIA-SMI has failed because it couldn‘t communicatewith the NVIDIA driver.....
tomcat filewatchdog but has failed to stop it原因以及解决方法
nvidia-smi:Failed to initialize NVML: Driver/library version mismatch
安装pycharm遇到NSIS Error Installer integrity check has failed错误的解决方法.
解决:Failed to run File Watcher ‘goimports‘.The watcher has been disabled.Error: Invalid executable