上周在实践darknet-YOLOv4的时候发现cuda版本太低了,于是将其更新了一下。
本篇文章记录了cuda更新前的NVIDIA驱动更新细节,算是前期的准备工作。

由于本人对Linux相关知识不是很了解,且计划更新驱动的电脑也没办法直接重启和重装系统,容不得半点损失。因此整个过程提心吊胆。
不得不说,先广泛的看一遍官网教程+网上的相关资料确实非常有帮助。这能让你对整个安装流程有个大概的了解,对于一些奇奇怪怪的报错也能避雷,找到合适的解决方向。
我先尝试了以apt-get的方式来更新驱动(教程),但是没成功。后面还是用最原始/最正规的方法手动完成的安装任务。

一、准备工作

1.1、了解自己电脑的显卡型号

首先通过lshw -numeric -C display |grep product命令获取电脑显卡型号,我的显示为product: NVIDIA Corporation [10DE:1E04]
这里遇到了一个小问题,别人的电脑都是如”NVIDIA Corporation GP102 [TITAN Xp]“、”GTX 960M“之类的,为什么我的电脑只返回了一串数字?
经过查询,了解到供应商(冒号前)和设备名称(冒号后)均对应的是4个十六进制的数字。我们可以在PCI devices网站查询得到对应的显卡型号,我的是1E04 因此对应[GeForce RTX 2080 Ti]
image.png
image.png

1.2、电脑的操作系统以及架构

我的电脑一开机就会显示Welcome to Ubuntu 18.04.x LTS (GNU/Linux x.x.x-x-generic x86_64),因此它是基于x86_64Ubuntu 18.04系统。
相关信息还可以通过命令uname -a获取。

二、下载驱动

首先去NVIDIA驱动官网找到自己电脑对应的型号,并点击驱动下载
image.png
这里你需要填上自己电脑的①产品名称;②产品系列;③产品;④操作系统。其他两个我都选的默认。搜索的结果在当前页面的下方。找到你想下载的驱动程序,并点击“获取下载”。再点击“立即下载”。该过程中可能需要注册登入,按照提示信息照做即可。
image.pngimage.png
此时,你就得到了一个以.run结尾的驱动文件

三、卸载旧驱动

如果你没有安装过,或者已经卸载,可以忽略。否则键入以下命令

  1. sudo apt-get remove purge nvidia

如果旧驱动未卸载就进行cuda的更新会报错:Existing package manager installation of the driver found.解决方法
此时可以利用命令sudo dpkg -l | grep nvidia查看是否安装了多个驱动;
也可以在安装cuda时,键入--override参数避免安装失败。【未验证】

四、安装驱动

4.1 禁用nouveau

利用vim编辑配置文件:sudo vim /etc/modprobe.d/blacklist.conf
在该文件最后一行加上:blacklist nouveau,并利用sudo update-initramfs -u加上重启电脑才能生效
重启之后输入:lsmod | grep nouveau,若命令行无输出,则代表禁用成功

4.2 安装驱动

给驱动文件增加可执行权限:sudo chmod a+x NVIDIA-Linux-x86_64-xx.xx.run
执行安装:sudo sh ./NVIDIA-Linux-x86_64-xx.xx.run --no-opengl-files

4.3 安装验证

验证方式1:sudo dpkg -l | grep nvidia,该方法会列出电脑上安装的所有驱动信息。
验证方式2:sudo lshw -c video |grep driver,该方法会返回configuration: driver=nvidia latency=0,这样说就说明已经安装好的NVIDIA的驱动程序。

参考文章:

  1. 三种NVIDIA的驱动安装方式:https://blog.csdn.net/wf19930209/article/details/81877822
  2. 查看电脑显卡型号:https://blog.csdn.net/maizousidemao/article/details/88821949