前言

最近想在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
2
3
4
sudo apt-get update
sudo apt-get install g++
sudo apt-get install gcc
sudo apt-get install make

注:Ubuntu20默认gcc是9.x,这样后面装Cuda11.2时就不用换gcc版本

2、到官网下想要的版本,一般2080Ti装460是一定可以用的(或者去这里下想要的版本)
find_nvidia_driver

3、卸载之前的nvidia驱动有两种方法,根据你之前使用何种方式安装来卸载

1
sudo apt-get remove --purge nvidia*
1
2
sudo chmod +x *.run
sudo ./NVIDIA-Linux-x86_64-460.32.03.run --uninstall

4、关闭nouveau

1
sudo vim /etc/modprobe.d/blacklist.conf

在末尾添加blacklist nouveauoptions nouveau modeset=0

1
2
3
sudo update-initramfs -u
reboot
lsmod | grep nouveau # 如果没有输出,则关闭成功

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
2
3
sudo chmod +x NVIDIA-Linux-x86_64-460.32.03.run
sudo ./NVIDIA-Linux-x86_64-460.32.03.run -no-x-check -no-nouveau-check -no-opengl-files
# –no-opengl-files 只安装驱动文件,不安装OpenGL文件

run_nvidia_driver

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

Linux_Distribution_in_CUDA11.2

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

cuda_toolkit_1
cuda_toolkit_2

4、安装Cuda
执行指令

1
sudo sh cuda_11.2.2_460.32.03_linux.run

进入安装,开始的一大堆文字都是End User License Agreement,可以CTRL +C 跳过,然后输入accept表示接受协议。接下来就是安装的交互界面,根据提示一步一步进行就好。

1
2
3
4
5
Do you accept the previously read EULA?
accept/decline/quit: accept

- [] Driver
# 不用选上Driver,这是显卡驱动,不用重复安装

5、配置cuda环境变量
在 ~/.bashrc 的最后添加

1
2
3
export PATH=/usr/local/cuda-11.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda

然后source ~/.bashrc

6、测试cuda

1
2
3
cd /usr/local/cuda-11.2/samples/1_Utilities/deviceQuery
sudo make
sudo ./deviceQuery

显示 PASS,安装成功。

四、安装cuDNN

1、下载cuDNN
cudnn-archive中查找对应版本的cuDNN(需要注册成为开发者),下载2、5、6、7

cudnn-archive中查找对应版本的cuDNN(需要注册成为开发者),下载2、5、6、7

cudnn-tookit

2、安装cuDNN

解压cudnn-11.2-linux-x64-v8.1.1.33.tgz

1
2
sudo cp cudnn-11.2-linux-x64-v8.1.1.33/cuda/include/cudnn.h /usr/local/cuda-11.2/nvvm/include/
sudo cp cudnn-11.2-linux-x64-v8.1.1.33/cuda/lib64/* /usr/local/cuda-11.2/nvvm/lib64

安装其余三个deb包

1
2
3
sudo dpkg -i libcudnn7_7.4.1.5-1+cuda10.0_amd64.deb
sudo dpkg -i libcudnn7-dev_7.4.1.5-1+cuda10.0_amd64.deb
sudo dpkg -i libcudnn7-doc_7.4.1.5-1+cuda10.0_amd64.deb

3、测试cuDNN

1
2
3
cd ~/NVIDIA_CUDA-11.2_Samples/1_Utilities/deviceQuery
make
./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降低内核版本


©2018 - Felicx 使用 Stellar 创建
总访问 113701 次 | 本页访问 326
共发表 83 篇Blog · 总计 127.5k 字