前言
最近想在Ubuntu20的工控机上安装NVIDIA显卡驱动,把吃灰的GeForce RTX 2080 Ti用起来,顺便装一下Cuda和cuDNN。
解决
一、降内核
因为显卡是2080Ti,所以先要降内核。Ubuntu20是5.15,降到5.4.0-80比较合适。
二、安装驱动
方法1:
1、直接终端上输入命令来看所需的版本
1、直接终端上输入命令来看所需的版本
1 | ubuntu-drivers devices |
2、安装推荐的那个驱动
1 | sudo apt install nvidia-460 |
装完之后,你可以在dashboard上搜索nvidia,看到有 NVIDIA X Server Settings的东西,那么驱动就安装成功了,如果没有,那就重启一次电脑看看(如果一直卡在登录界面,就得手动执行官方的run来安装,看方法2)
方法2:
1、更新软件
安装驱动前一定要更新软件列表和安装必要软件、依赖(必须)
1 | sudo apt-get update |
注:Ubuntu20默认gcc是9.x,这样后面装Cuda11.2时就不用换gcc版本
2、到官网下想要的版本,一般2080Ti装460是一定可以用的(或者去这里下想要的版本)
3、卸载之前的nvidia驱动有两种方法,根据你之前使用何种方式安装来卸载
1 | sudo apt-get remove --purge nvidia* |
1 | sudo chmod +x *.run |
4、关闭nouveau
1 | sudo vim /etc/modprobe.d/blacklist.conf |
在末尾添加blacklist nouveau
和options nouveau modeset=0
1 | sudo update-initramfs -u |
5、停止显示服务器
为了安装新的Nvidia驱动程序,我们需要停止当前的显示服务器。最简单的方法是使用telinit命令更改为运行级别3。在终端输入以下linux命令后,显示服务器将停止
1 | sudo telinit 3 |
进入黑漆漆的文本界面tty(如果进不去,就按Ctrl + Alt + F1~F6中的一个 (分别对应进入tty1~tty6)),然后输入用户名和密码。
6、禁用X-window服务
在文本界面中,禁用X-window服务,在终端输入(Ubuntu20自带gdm3,不用再装lightdm)
1 | sudo service gdm3 stop |
7、执行run脚本
cd命令进入到你存放驱动的目录,输入命令:
1 | sudo chmod +x NVIDIA-Linux-x86_64-460.32.03.run |
nvidia-smi看是否装成功
8、重新打开lightdm
1 | sudo service gdm3 restart |
然后退出文本界面到图形界面,输入sudo telinit 5
或者Ctrl + Alt + F1/F7/F8进入登录界面,登录进系统,然后reboot看是否还会卡在登录界面
三、安装Cuda
1、确认Cuda版本
根据CUDA Toolkit and Corresponding Driver Versions查找所安装nvidia驱动对应的cuda上限(cuda是向下兼容的)。我们的是RTX 2080Ti,驱动装的是460.32,所以这里装cuda11.2.2
![CUDA Toolkit and Corresponding Driver Versions](https://cdn.staticaly.com/gh/FelicxFoster/PicXImage@master/Linux_10/CUDA Toolkit and Corresponding Driver Versions.2evmku1kmkg0.webp)
2、确认gcc版本
1 | gcc --version |
根据官网提供的版本信息,确认Cuda11.2要gcc9.x
3、下载cuda
在cuda-toolkit中查找对应版本的cuda,下载run文件
1 | wget https://developer.download.nvidia.com/compute/cuda/11.2.2/local_installers/cuda_11.2.2_460.32.03_linux.run |
4、安装Cuda
执行指令
1 | sudo sh cuda_11.2.2_460.32.03_linux.run |
进入安装,开始的一大堆文字都是End User License Agreement,可以CTRL +C 跳过,然后输入accept表示接受协议。接下来就是安装的交互界面,根据提示一步一步进行就好。
1 | Do you accept the previously read EULA? |
5、配置cuda环境变量
在 ~/.bashrc 的最后添加
1 | export PATH=/usr/local/cuda-11.2/bin${PATH:+:${PATH}} |
然后source ~/.bashrc
6、测试cuda
1 | cd /usr/local/cuda-11.2/samples/1_Utilities/deviceQuery |
显示 PASS,安装成功。
四、安装cuDNN
1、下载cuDNN
在cudnn-archive中查找对应版本的cuDNN(需要注册成为开发者),下载2、5、6、7
在cudnn-archive中查找对应版本的cuDNN(需要注册成为开发者),下载2、5、6、7
2、安装cuDNN
解压cudnn-11.2-linux-x64-v8.1.1.33.tgz
1 | sudo cp cudnn-11.2-linux-x64-v8.1.1.33/cuda/include/cudnn.h /usr/local/cuda-11.2/nvvm/include/ |
安装其余三个deb包
1 | sudo dpkg -i libcudnn7_7.4.1.5-1+cuda10.0_amd64.deb |
3、测试cuDNN
1 | cd ~/NVIDIA_CUDA-11.2_Samples/1_Utilities/deviceQuery |
出现GPU的信息,表示安装成功
五、问题修复
因为是降内核,所以可能会导致内核有部分驱动丢失,导致USB摄像头无法识别。
此时可以通过命令查看对比与过去高版本的缺少的内容:
1 | dpkg --get-selections | grep linux |
一般是安装modules-extra-5.4.0-80-generic
即可
1 | sudo apt-get install modules-extra-5.4.0-80-generic |
六、参考
1、Ubuntu 20.04 Ubuntu 21.10 安装显卡驱动\安装CUDA和cuDNN
2、ubuntu降低内核版本