在 Ubuntu 上安装 Nvidia 专有驱动

../_images/nvidia.png

昨天正在用的 Ubuntu 20.04 在休眠之后出现无法唤醒,又或者在唤醒之后出现桌面卡死/卡顿的情况。

查了日志之后发现系统使用的开源显卡驱动一直在报错,感觉是驱动出问题。

之前早有耳闻说 Nvidia 的显卡用开源驱动不太行,看来这次是真碰上了,为了正常使用只能选择使用闭源的专有驱动了。

以下展示的是安装专有驱动的具体方法。

查看可用驱动

执行以下命令可以查看系统正在使用的显卡以及它当前可用的驱动:

$ ubuntu-drivers devices

== /sys/devices/pci0000:00/0000:00:03.1/0000:26:00.0 ==
modalias : pci:v000010DEd00001E81sv00001462sd0000C728bc03sc00i00
vendor   : NVIDIA Corporation
model    : TU104 [GeForce RTX 2080 SUPER]
manual_install: True
driver   : nvidia-driver-450-server - distro non-free
driver   : nvidia-driver-470-server - distro non-free
driver   : nvidia-driver-510 - distro non-free recommended
driver   : nvidia-driver-470 - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

安装驱动

从结果显示 nvidia-driver-510 是当前推荐使用的驱动(recommended),于是执行以下命令安装该驱动:

$ sudo apt install nvidia-driver-510
[sudo] huangz 的密码:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
将会同时安装下列软件:
  libatomic1:i386 libbsd0:i386 libc6:i386 libcrypt1:i386 libdrm-amdgpu1:i386 libdrm-intel1:i386
  ...
建议安装:
  glibc-doc:i386 locales:i386 lm-sensors:i386
下列【新】软件包将被安装:
  libatomic1:i386 libbsd0:i386 libc6:i386 libcrypt1:i386 libdrm-amdgpu1:i386 libdrm-intel1:i386
  ...
升级了 0 个软件包,新安装了 69 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
需要下载 296 MB 的归档。
解压缩后会消耗 1,160 MB 的额外空间。
您希望继续执行吗? [Y/n] y

查看显卡信息

在安装驱动完毕并重新启动电脑之后,可以通过执行以下命令获取显卡信息:

$ nvidia-smi
Wed Mar 16 01:53:42 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.47.03    Driver Version: 510.47.03    CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:26:00.0  On |                  N/A |
| 26%   34C    P8    16W / 250W |    759MiB /  8192MiB |      1%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1072      G   /usr/lib/xorg/Xorg                 71MiB |
|    0   N/A  N/A      1684      G   /usr/lib/xorg/Xorg                248MiB |
|    0   N/A  N/A      1811      G   /usr/bin/gnome-shell               88MiB |
|    0   N/A  N/A      2289      G   ...708579723149425879,131072      333MiB |
+-----------------------------------------------------------------------------+

命令打印的表格显示了目前使用的显卡、显卡驱动以及显卡目前的一些状态信息、资源消耗情况等等。

想对 Nvidia 说 fuck you 的黄健宏
2022.3.16