运维系列&AI系列&Lenovo-G双系统系列(前传-装之前搜索的):nvidia-smi报错:NVIDIA-SMI has failed because it couldn‘t communicat
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 原因及避坑解决方案
问题:
由于断电,服务器重启了,当我再次跑实验时,发现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
这类文件,那么请作者打开 ubuntu
的软件与升级,如下:
打开以后发现有一项 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
,链接成功!
以上就是本博主遇到的所有坑以及解决办法,喜欢的点个赞支持一下白!
底下评论
问题一:
sudo dkms install
成功了但是nvidia-smi
依然没有成功
作者回答
有这个文件吗?nvidia-470.103.01
,必须是nvidia-版本号,其他的不行奥
问题一:
请问我虚拟机上有nvidia-470.103.01
。而且安装了sudo apt-get install nvidia-driver-470
。且安装sudo dkms install -m nvidia -v 470.103.01
时显示Module nvidia/470.103.01 already installed on kernel 5.13.0-40-generic/x86_64
。且我ubuntu
内有gcc9.4.0.
但是最终输入nvidia-smi
还是不行。请问这怎么解决?
作者回答
先把nvidia
卸载干净,再装,然后再sudo dkms install -m nvidia -v 470.103.01
试试吧
其他人回答
这些都没用。哈哈哈,我发现重新新建个虚拟机。另一个虚拟机会感觉到竞争压力,再点开时会恢复正常,接着删掉新建的虚拟机即可。
作者回答
好的👍
其他人回答
虚拟机的话我是再装个虚拟机,然后再装过程中点开前一个,就正常了表情包
其他人提问
你好,我也有一样的问题,请问你解决了吗?
问题一:
按照博主第一种方法设置后,记得重启以下 nvidia-smi
即有显卡信息
问题一:
干货满满,一看就懂,真是linux方面
不可多得的好文章,值得仔细阅读!这次遇到大佬了,期待博主也来我这里指点一二呀。
问题一:
大佬请问,我按照上面写的步骤,然后在测试nvidia-smi
的时候还是不行,然后测试发现470
还是连接不上,请问这是什么情况呢?
作者回答
/usr/src/ 目录
下有 nvidia-470.103.01 文件
吗?格式必须是nvidia-版本号
,其他格式不行,例如 nvidia-smi 470
就不可以
其他人提问
大佬我刚刚查看了是nvidia-版本号
的格式,但是确实不能用,不知道是为什么
我的那个版本号是nvidia-470.129.06/
作者回答
为啥有斜线,有斜线不可以熬
其他人提问
那这个该怎么处理呢
作者回答
卸载了,重新安装吧!
网页链接 看看这个卸载,再按照我的步骤安装
其他人提问
感谢大佬表情包
作者回答
不客气
问题一:
还是不行啊,我使用dkms命令安装时,说显卡驱动已经已经存在了
作者回答
卸载了重新装…… 网页链接 看看这个卸载,再按照我的步骤安装
其他人提问
卸载完在软件和更新选完驱动就自动安装了,后面再安还是会显示驱动已存在,之后还是连接不上
问题一:
软件和更新里没有显卡驱动咋弄
作者回答
命令行安装也行
问题一:
ubuntu
的软件与升级怎么打开呀,有没有大佬指点我一下
其他人回答
应用直接搜索
问题一:
Module nvidia/470.141.03 already installed on kernel 5.4.0-132-generic/x86_64
其他人提问
我也显示已经安装,但输入nvidia-smi
还是报错
其他人提问
我也是,难道显卡太老了?
其他人提问
重启就好了
其他人提问
我重启还是不行啊,我也是already install
,就还是链接不上啊
其他人提问
额,我怎么重启也不行
其他人提问
兄弟解决了么?
问题一:
您好您好,我自输入 sudo dkms install -m nvidia -v 470.129.06
显示这个 Error! Could not locate dkms.conf file.
这是怎么回事呢请问
问题一:
按第一步成功 ubuntu22.04
,感谢
问题一:
驱动安装成功了,但还是不行
问题一:
redhat8.6
报同样的错,也要安装dkms
吗?去哪里下载呢?
作者回答
不清楚哎!没用过,感觉是一样的,可以百度搜一下如何安装!
问题一:
内网情况下如何安装呀
作者回答
用U盘,下载到优盘,考过去安装!
问题一:
在执行第三步,使用dkms
重新安装驱动大概需要多长时间,我这都十个小时了,还在building module
表情包
作者回答
很快,应该是出问题了,或者卡机了?
其他人回答
10秒之内就安完了
问题一:
太感谢了,差点准备重装系统了
问题一:
配合 网页链接食用
nvidia-smi报错:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver 原因及避坑解决方案