阅读 865

显卡驱动问题解决

问题

假期期间,训练机关闭了,回来之后GPU相关的命令都无法执行:

nvidia-smi nvtop nvidia-docker都没办法执行

image.png

image.png

推测与尝试解决

应该是重启后,Ubuntu内核更新导致与现有驱动不兼容。 那就重装吧

# 1.卸载现在的驱动
sudo apt-get purge nvidia*
# 2.查找本机显卡内核
sudo cat /proc/driver/nvidia/version
# 3.根据内核下载合适的驱动:NVIDIA-Linux-x86_64-440.82.run
# 4.重启机器
# 5.重装驱动
sudo sh ./NVIDIA-Linux-x86_64-440.82.run  --no-opengl-files --no-x-check
# 6.验证
nvidia-smi
# 7.安装nvidia-docker
sudo apt-get install -y nvidia-docker2
复制代码

这个问题之前就出现过,但这次这样解决,仍然报一样的错

定位问题

重新安装驱动过程中其实是有报错的,日志中的报错信息为: /var/log/nvidia-installer.log

 error: unrecognized command line option '-fstack-protector-strong'
复制代码

该错误与gcc版本有关,应该是编译过程中,版本过低,无法支持该命令选项-fstack-protector-strong

解决问题

定位到问题,解决起来就简单了

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update 
sudo apt-get install gcc-7
sudo apt-get install g++-7

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 100
sudo update-alternatives --config gcc
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 100
sudo update-alternatives --config g++
gcc --version
g++ --version
复制代码

最后重新安装驱动,并重启

sudo sh ./NVIDIA-Linux-x86_64-440.82.run  --no-opengl-files --no-x-check
复制代码

为了防止下次重启仍然报类似错误,把Ubuntu的内核自动更新给关闭

sudo vi /etc/apt/apt.conf.d/10periodic
# 从“1”改成“0”
APT::Periodic::Update-Package-Lists "0";
复制代码

回顾

前后花了2个小时,踩了不少坑,网上有不少类似的问题,也有提供相应的解决办法,但多数都和这个问题不一样。回想一下如何才能更快解决问题:

  1. 简单的报错信息去搜索google,如果问题不复杂,大部分情况都是能搜到解决方法的。
  2. 但如果搜到的方法不能解决,就需要找到详细的错误日志,定位更具体的问题
文章分类
人工智能
文章标签