环境:
Ubuntu 16.04
nvidia driver 455.38
cuda 11.1
cudnn 8.0.4
显卡: GTX 1080Ti
一、安装
1、卸载旧版本驱动
sudo apt-get --purge remove nvidia*
2、下载官方驱动
在官网https://www.nvidia.cn/geforce/drivers/上搜索下载自己需要的驱动版本,放在一个容易跳转的目录下。如我下载的NVIDIA-Linux-x86_64-455.38.run
文件。
当然也可以输入下面命令查看显卡推荐驱动:
sudo ubuntu-drivers devices
3、禁用nouveau驱动
在终端输入命令lsmod | grep nouveau
,如果有输出则代表nouveau正在运行,需要我们手动禁掉nouveau,方法如下。
sudo vim /etc/modprobe.d/blacklist.conf
在文档最后加上:blacklist nouveau
保存并退出::wq!
sudo update-initramfs -u
reboot
重启后检查lsmod | grep nouveau
是否有输出。
4、禁用图形界面
按CTRL+ALT+F1
进入字符界面,登录后输入指令关闭图形界面(重要!)
sudo service lightdm stop
然后cd到NVIDIA-Linux-x86_64-455.38.run
下载文件所在目录,运行安装
sudo chmod a+x NVIDIA-Linux-x86_64-455.38.run
sudo sh NVIDIA-Linux-x86_64-455.38.run
接下来就是一些安装选项,基本选yes就行了。
5、验证
nvidia-smi
出现显卡信息的方框就对了,例如下图
最后,可以重启图形界面
sudo service lightdm start
二、出现问题及解决方法
在我安装完驱动并重启后,出现图形界面分辨率很低的问题,并且登录不进去。然后我在字符界面输入nvidia-smi,蹦出来一行driver/library version mismatch错误。
driver/library version mismatch
网上查了半天,都说用sudo rmmod nvidia
解决,但是等我再次重启又会遇到同样的错误。后来参考了https://www.xiaoheidiannao.com/10820.html的解决办法。
出现报错的原因是driver版本更新了,但是nvidia内核版本还没有更新,输入命令:
cat /proc/driver/nvidia/version
查看内核版本,依旧是以前的384.130,当然和安装的455.38不匹配。
法一
亲测有效,就是需要康康boot的空间是不是足够
uname -a # 查看内核
显示:Linux blah 4.13.0-43-generic #48~16.04.1-Ubuntu SMP Thu May 17 12:56:46 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
sudo update-initramfs -c -k 4.13.0-43-generic # 复制上面的数字
reboot
法二
sudo ubuntu-drivers autoinstall # 在线更新
修改配置文件
sudo vi /etc/apt/apt.conf.d/10periodic
防止自动更新,将所有值设为0