欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ubuntu18.04 NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.

程序员文章站 2022-03-23 16:46:32
...

ubuntu18.04上运行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、问题发现

       双系统选项中第一系统为ubuntu,第二个为advanced,第三个为windows。下图为开机进入系统选择时选的advansed(第二个选项)中的引导选项。首先发现的问题是,nvidia驱动对下面选项中版本有要求,经过百度发现,下面这三个版本-generic代表linux系统内核,于是考虑驱动需要与内核版本相匹配。ubuntu18.04 NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.

2、更新驱动,使其与当前较高版本的linux5.3.0内核匹配

      更新时注意:在终端内输入下面两条指令,目的是使用软件源更新驱动。更新时最好不要使用upgrade。更新完在系统中搜索software,找到下图中驱动选项位置,选择最新驱动版本,点击应用改变,到此位置驱动更新完成。参考博客:https://www.cnblogs.com/answerThe/p/12252464.html

$ sudo add-apt-repository ppa:graphics-drivers/ppa
$ sudo apt-get update
  • ubuntu18.04 NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.

3、驱动更新完发现仍然无法启动,则可能是内核升级带来的原因。

终端运行下面内容:

$ sudo apt install dkms

$ sudo dkms install -m nvidia -v 440.82 

其目的是需要DKMS对驱动程序进行维护。DKMS全称是Dynamic Kernel Module Support,它可以帮我们维护内核外的驱动程序,在内核版本变动之后可以自动重新生成新的模块。DKMS具体解释见博客: https://www.jianshu.com/p/e0177bdf67d6

4、gcc报错修复,cc: error: unrecognized command line option ‘-fstack-protector-strong’

Table of Contents

1、问题发现

2、更新驱动,使其与当前较高版本的linux5.3.0内核匹配

3、驱动更新完发现仍然无法启动,则可能是内核升级带来的原因。

4、gcc报错修复,cc: error: unrecognized command line option ‘-fstack-protector-strong’

5、gcc4.9按装成功后发现还是原来4.8版本的解决方案


运行上述命令发现错误:与下述类似,只有nvidia版本数不同。

ubuntu18.04 NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.

错误原因在gcc版本上,从网上查了一下,得知‘-fstack-protector-strong’ 选项是gcc4.9以后的版本才加入的,也就是说需要安装gcc4.9以后的版本才可以编译通过.通过 gcc -v 命令查看机器上的gcc是4.8版本,确认是gcc版本问题,需要升级gcc到4.9版本,这里参考博客,其中gcc4.9安装方法在这里没有成功:https://www.cnblogs.com/bymo/p/7987415.html

于是参考stack :https://*.com/questions/48398475/fail-to-install-gcc-4-9-in-ubuntu17-04 中的方案并解决。终端运行下面脚本安装gcc4.9,双击即可复制:

mkdir ~/Downloads/gcc-4.9-deb && cd ~/Downloads/gcc-4.9-deb

wget http://launchpadlibrarian.net/247707088/libmpfr4_3.1.4-1_amd64.deb
wget http://launchpadlibrarian.net/253728424/libasan1_4.9.3-13ubuntu2_amd64.deb
wget http://launchpadlibrarian.net/253728426/libgcc-4.9-dev_4.9.3-13ubuntu2_amd64.deb
wget http://launchpadlibrarian.net/253728314/gcc-4.9-base_4.9.3-13ubuntu2_amd64.deb
wget http://launchpadlibrarian.net/253728399/cpp-4.9_4.9.3-13ubuntu2_amd64.deb
wget http://launchpadlibrarian.net/253728404/gcc-4.9_4.9.3-13ubuntu2_amd64.deb
wget http://launchpadlibrarian.net/253728432/libstdc++-4.9-dev_4.9.3-13ubuntu2_amd64.deb
wget http://launchpadlibrarian.net/253728401/g++-4.9_4.9.3-13ubuntu2_amd64.deb

sudo dpkg -i gcc-4.9-base_4.9.3-13ubuntu2_amd64.deb
sudo dpkg -i libmpfr4_3.1.4-1_amd64.deb
sudo dpkg -i libasan1_4.9.3-13ubuntu2_amd64.deb
sudo dpkg -i libgcc-4.9-dev_4.9.3-13ubuntu2_amd64.deb
sudo dpkg -i cpp-4.9_4.9.3-13ubuntu2_amd64.deb
sudo dpkg -i gcc-4.9_4.9.3-13ubuntu2_amd64.deb
sudo dpkg -i libstdc++-4.9-dev_4.9.3-13ubuntu2_amd64.deb
sudo dpkg -i g++-4.9_4.9.3-13ubuntu2_amd64.deb

5、gcc4.9按装成功后发现还是原来4.8版本的解决方案

 参考博客: https://blog.csdn.net/u013066730/article/details/80894105

终端运行:

sudo rm /usr/bin/gcc
sudo ln -s /usr/bin/gcc-4.9 /usr/bin/gcc

 

到此,gcc4.9安装成功,最终nvidia能够正常运行,gpu也可以加速啦。主要解决gcc版本与nvidia驱动不启动问题。

转载请链接:https://mp.csdn.net/console/editor/html/105691385

如果真的帮助了百忙之中的你,请留下一点打赏。

ubuntu18.04 NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.