本文最后更新于:2025年4月30日 下午

ubuntu系统显卡驱动偶尔会出现奇怪的问题,造成图形用户界面循环登陆,本文记录相关问题的解决方案。

卸载旧驱动

  • 在登陆界面 ctrl+alt+F2 进入非图形界面控制台,登陆后输入命令:
1
2
3
sudo apt-get remove nvidia-*
sudo apt-get autoremove
sudo apt-get purge nvidia*

安装驱动

apt 安装

加入PPA,然后更新库

1
2
sudo add-apt-repository ppa:graphics-drivers
sudo apt-get update

查看适合本机的nvidia驱动

1
ubuntu-drivers devices

选择合适自己的版本

1
sudo apt-get install nvidia-driver-440 nvidia-settings nvidia-prime

使用nvidia-smi 查看是否已经读取到安装的驱动,如果提示没有找到命令重启后再试

Driver 文件安装

首先,我们需要确认自己显卡的型号,可以通过以下命令查看:

1
lspci | grep -i nvidia

如上图所示,我们可以看到显卡型号为 RTX 3090

进入英伟达的官网下载页面:https://www.nvidia.cn/drivers/lookup/

选择正确的显卡型号后点击“查找”按钮。

安装准备

安装NVIDIA显卡驱动前,我们需要做一些准备工作,主要包括安装编译工具包和卸载原有驱动。
(1)安装编译工具包

NVIDIA驱动需要用到一些编译工具包,如 gcc、g++ 和 make。我们可以使用以下命令一键安装:

sudo apt-get update
sudo apt install build-essential

(2)卸载原有驱动

Ubuntu系统默认会带有一个开机驱动 nouveau,它会与NVIDIA的驱动冲突,因此需要将其禁用。

编辑黑名单配置文件,加入以下内容:

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

按下 Shift+G 跳转到文件末尾,新增如下两行:

blacklist nouveau
options nouveau modeset=0

然后更新配置并重启系统:

1
2
sudo update-initramfs -u
sudo reboot

安装NVIDIA驱动之前,需要停止 gdm3 服务:

1
sudo systemctl stop gdm3

执行驱动安装包的安装命令。假设你已下载了版本为 550.120 的驱动安装包。

1
2
sudo chmod +x NVIDIA-Linux-x86_64-550.120.run
sudo ./NVIDIA-Linux-x86_64-550.120.run

安装过程中会进入一个交互式界面,按键盘的左右箭头选择相应选项,按回车键确认。

在前两个界面中,选择 Continue Installation(继续安装)。

之后,系统会进行内核构建,稍等片刻。

接下来,系统会询问是否需要内核签名。此时,选择 Sign the kernel(签名内核)。

系统将提示你创建新的密钥对,选择 Create new key pair(创建新密钥对)。

完成签名后,删除密钥:

注意:如果出现以下提示,说明由于系统的 BIOS 启用了 Secure Boot,这可能会导致内核加载失败。此时,您需要进入 BIOS 设置中禁用 Secure Boot

安装完成后,系统会询问是否需要安装 nvidia-x-config,该工具会提供一个图形界面的显卡管理工具。建议选择 Yes 进行安装。

安装完成后,重启系统:

sudo reboot

重启后,使用以下命令检查显卡状态:

1
nvidia-smi

软件更新安装

打开 Ubuntu 软件和更新

装就完了。

安装Cuda

到Cuda 下载地址下载适合自己的Cuda文件,建议下载runfile格式,比如我下载的cuda_10.2.89_440.33.01_linux.run,在文件所在文件夹安装:

1
sudo sh cuda_10.2.89_440.33.01_linux.run
  • accept
  • n (不安装驱动)
  • y
  • y
  • y

设置环境变量,在~/.bashrc 文件末尾加入:

1
2
3
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda

终端运行:

1
source ~/.bashrc

运行:nvcc --version,如果显示类似如下信息说明安装成功

1
2
3
4
5
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_19:24:38_PDT_2019
Cuda compilation tools, release 10.2, V10.2.89

安装Cudnn

到Cudnn下载页面下载与驱动、Cuda、需要运行软件要求相应的版本(需要注册Nvidia账号)。

Ubuntu可以下载.solitairetheme8格式文件,只要将扩展名改为tgz即可解压

1
tar -xvf cudnn-10.2-linux-x64-v7.6.5.32.tgz

得到名为cuda的文件夹,在当前目录(不要进入cuda)运行:

Cudnn version < 8.0

1
2
3
4
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

输入cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2可查看版本

Cudnn version ≥ 8.0

1
2
3
4
sudo cp cuda/include/* /usr/local/cuda/include/
sudo cp cuda/lib64/* /usr/local/cuda/lib64/
sudo chmod +x /usr/local/cuda/include/cudnn.h
sudo chmod +x /usr/local/cuda/lib64/libcudnn*

输入cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2可以查看版本

Cudnn version ≥ 8.+

高版本的 cudnn 包中存的是 lib 不是 lib64 文件夹

1
2
3
4
5
6

# Copy the following files into the CUDA toolkit directory.
sudo cp cudnn-*-archive/include/cudnn*.h /usr/local/cuda/include
sudo cp -P cudnn-*-archive/lib/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*

查看 cudnn 版本: cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

安装测试

查看显卡信息:

1
nvidia-smi 

查看Cuda版本:

1
nvcc -V

查看Cudnn版本

cudnn version < 8.0

1
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

cudnn version ≥ 8.0

1
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

参考资料:



文章链接:
https://www.zywvvd.com/notes/environment/cuda/nvidia-install/nvidia-install/


“觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信二维码

微信支付

支付宝二维码

支付宝支付

解决Ubuntu循环登陆问题 + Nvidia驱动、Cuda、Cudnn安装
https://www.zywvvd.com/notes/environment/cuda/nvidia-install/nvidia-install/
作者
Yiwei Zhang
发布于
2020年3月27日
许可协议