安装 NVIDIA 显卡驱动
NVIDIA 显卡驱动、CUDA、PyTorch 和 Python 的版本兼容性要求
PyTorch | CUDA | cuDNN | Python |
---|---|---|---|
2.7 | 11.8, 12.6, 12.8 | ~ 9.7.1.26 | >=3.9, <=3.13 |
2.6 | 11.8, 12.4, 12.6 | ~ 9.5.1.17 | |
2.5 | 11.8, 12.1, 12.4 | None | |
2.4 | ~ 9.1.0.70 | >=3.8, <=3.12 | |
2.3 | 11.8, 12.1 | ~ 8.7.0.84 | |
2.2 | |||
2.1 | >= 3.8, <=3.11 | ||
2.0 | 11.7, 11.8 | ~ 8.5.0.96 | |
1.13 | 11.6, 11.7 | ~ 8.3.2.44 | >= 3.7, <=3.10 |
1.12 | 11.3, 11.6 |
详见:CUDA Toolkit Major Component Versions 和 Releasing PyTorch | Release Compatibility Matrix
打开应用列表中的 "Software & Update"(软件和更新)
在 "Additional Drivers"(附加驱动)栏中,选择一个合适的 NVIDIA 驱动版本,然后点击 "Apply Changes"(应用更改)自动安装
版本标签(Tags)
server
:适用于服务器环境open
、open source
:开源的内核驱动non-free
、proprietary
:包含非开源的专有驱动recommended
、tested
:稳定的、经过测试的推荐版本
较新的稳定版本可以根据带有 server
标签的最新版判断,如下图中的 550
版本。
不推荐安装开源版本
带有 -open
、open kernel
标签的版本,使用的是开源的 GPU 内核,而非原生的 NVIDIA
内核,可能存在兼容性问题,影响一定的性能和稳定性,导致无法正常显示,不推荐安装此版本!
图中,较新的稳定版本为:nvidia-driver-550 (proprietary, tested)
安装完成后,需要重启才能生效(Restart)
在终端中执行下列命令,查看当前可安装的驱动
- 如果提示找不到
ubuntu-drivers
命令,需要使用sudo apt install ubuntu-drivers-common
命令安装
版本标签(Tags)
server
:适用于服务器环境open
、open source
:开源的内核驱动non-free
、proprietary
:包含非开源的专有驱动recommended
、tested
:稳定的、经过测试的推荐版本
较新的稳定版本可以根据带有 server
标签的最新版判断,如下图中的 535
版本。
不推荐安装开源版本
带有 -open
、open kernel
标签的版本,使用的是开源的 GPU 内核,而非原生的 NVIDIA
内核,可能存在兼容性问题,影响一定的性能和稳定性,导致无法正常显示,不推荐安装此版本!
图中,较新的稳定版本为:nvidia-driver-535
选择一个合适的 NVIDIA 驱动版本,执行下列命令安装
自动补全命令
文件名需要根据实际修改,可以输入前几个字符,再按下 Tab 键即可自动补全完整的命令/名称
- 使用
sudo ubuntu-drivers autoinstall
命令可以自动安装官方推荐的驱动(不建议)
安装完成后,需要重启才能生效(Reboot)
不推荐使用此方法安装!
手动安装 NVIDA 驱动会比前两种方法复杂得多,安装过程中也可能会遇到更多出乎意外的问题。如果前两种方法均无法安装或遇到问题,可以再尝试手动安装。
访问 NVIDIA 驱动官网,选择一个合适的 NVIDIA 驱动程序下载
选项说明
- 根据电脑的显卡型号选择相应的选项,例如笔记本电脑上搭载的
GeForce RTX 3060 Laptop GPU
,如图所示 - 对于一般的 Ubuntu 系统,操作系统项选择
Linux 64-bit
将下载好的驱动程序安装包放置在合适的目录,例如 ~
目录下 (1)
- 即
/home/<username>
目录,启动终端时的默认目录,方便查找
图中,当前目录为 /home/obelus
,即 ~
目录
执行下列命令,确保安装前卸载所有 NVIDIA 相关驱动及其配置文件
如果当前正在使用 NVIDIA 驱动,执行后将卸载并自动更换为最初的开源驱动
安装 NVIDIA 驱动程序安装时所需的编译和链接工具
build-essential
、libglvnd-dev
、pkg-config
包含了绝大部分常用的编译和链接工具
编辑 Linux 内核模块的禁用列表文件 blacklist
- 也可以在同路径下,新建
blacklist-nvidia-nouveau.conf
文件,专门用于禁用 Nvidia Nouveau 开源驱动程序
在文件的末尾添加以下两行内容,禁用默认的 Nvidia Nouveau 开源驱动
图中,新建 blacklist-nvidia-nouveau.conf
文件
更新 Linux 内核的配置文件
重启系统,使禁用列表生效
重启后黑屏
一旦禁用默认的 Nvidia Nouveau 驱动,重启后可能会黑屏,不再显示图形界面(GUI),此时按下 Ctrl+Alt+F2 按键,切换至第二终端(TTY2)(1),继续下面的步骤
- 按下 Ctrl+Alt+F1 可以切换回第一终端,Ctrl+Alt+F7 可以切换至图形界面
在第一终端或第二终端,依次输入用户名和密码登录
登录后,默认的工作目录为
~
,即/home/<username>
(1)
- 如果以 root 用户登录,默认目录为
/root
将系统切换到运行级别 3
,确保关闭 X 窗口系统(X11),禁用图形界面
telinit 命令参数
0
:系统关机1
:单用户模式2
:多用户模式(无网络)3
:多用户模式(有网络、命令行)4
:系统预留,用户自定义5
:图形界面模式(多用户)6
:系统重启
将当前目录切换至安装包所在目录下,并执行下列命令,开始安装 NVIDIA 驱动程序
自动补全文件名
文件名需要根据实际修改,可以输入前几个字符,再按下 tab
键即可自动补全完整的命令/名称
如果遇到问题可尝试不安装 OpenGL
在下列命令尾加上 --no-opengl-files
参数,不安装 OpenGL 文件,可能解决某些报错
使用方向键和回车键,选择 Continue installation
继续安装,等待构建内核模块
构建完成后,会询问是否要安装 NVIDIA 的 32 位兼容库,可以根据需要自行选择,一般选择 No
在下一步中,可能会出现以下情况:
是否为 NVIDIA 内核模块签名
The target kernel has CONFIG_MODULE_SIG set, which means that it supports cryptographic signatures on kernel modules. On some systems, the kernel may refuse to load modules without a valid signature from a trusted key. This system also has UEFI Secure Boot enabled; many distributions enforce module signature verification on UEFI systems when Secure Boot is enabled. Would you like to sign the NVIDIA kernel module?
目标内核启用了
CONFIG_MODULE_SIG
,这意味着它支持对内核模块进行加密签名。在一些系统中,如果内核模块没有经过可信密钥的有效签名,将会被拒绝加载。此外,该系统已启用 UEFI 安全启动(UEFI Secure Boot);许多发行版会在启用 Secure Boot 的 UEFI 系统上执行模块签名验证。是否为 NVIDIA 内核模块签名?
出现这段文本的原因是启用了 CONFIG_MODULE_SIG
(内核模块签名检查),以及 UEFI 安全启动(Secure Boot),可以按
禁用 Secure Boot 功能 中的步骤来禁用安全启动功能;或者根据提示完成/拒绝签名验证。
是否自动更新 X 配置文件
Would you like to run the nvidia-xconfig utility to automatically update your X configuration file so that the NVIDIA driver will be used when you restart X? Any pre-existing X configuration file will be backed up.
是否运行
nvidia-xconfig
工具来自动更新 X 配置文件,以便在重新启动 X 时使用 NVIDIA 驱动程序?所有先前存在的 X 配置文件都将会被备份。
其中,X 配置文件(X configuration file)指的是 X 窗口系统设置的文件,运行 nvidia-xconfig
会更新此文件,确保在重启时使用正确的 NVIDIA 驱动程序,并确保正确配置显卡和显示器,一般选择 Yes
。
是否在 DKMS 中注册内核模块源代码
Would you like to register the kernel module sources with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later?
是否在 DKMS 中注册内核模块源码,从而在以后安装不同的内核版本时,DKMS 可以自动构建新的内核模块?
DKMS(Dynamic Kernel Module Support)是一个内核模块支持框架,它能够帮助用户在升级了新内核版本以后,
轻松地重新编译和安装第三方内核模块,对于经常需要升级内核,或需要新功能或修复系统的用户非常有用。可以根据需要自行选择,一般选择 No
。
最后,等待 NVIDIA 驱动程序安装完成
重启系统,使驱动生效
重启后,执行下列命令,检查 NVIDIA 是否安装成功
显示此信息即表示安装成功