Skip to main content

关于在linux下配置nVidia GPU的亿点点坑

· 3 min read
Ferdinand Su

花了一下午才完成配置:

> nvidia-smi                                                                                                                      一 16:17
Tue Mar 21 00:17:49 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.89.02 Driver Version: 525.89.02 CUDA Version: 12.0 |
|-------------------------------+----------------------+----------------------+
| 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:01:00.0 Off | N/A |
| 31% 36C P0 32W / 170W | 0MiB / 12288MiB | 0% Default |
| | | N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+

系统为debian 11,试了apt和直接用官网的安装包,体感后者靠谱些。

坑1:需要先禁用其他驱动

写入以下内容到/etc/modprobe.d/nouveau-blacklist.conf:

blacklist rivafb
blacklist vga16fb
blacklist nouveau
blacklist nvidiafb
blacklist rivatv
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

然后更新

sudo update-initramfs -u

坑2:要使用官网下最新的驱动,不要用apt装,版本太旧了

先卸载原有驱动:sudo apt-get remove --purge nvidia*

官网下载正确的版本,记得chmod +x

然后sudo运行,安装选项可参照这里,但最重要的是签名内核模块

坑3:签名内核模块并配置MOK

安装程序会问你需不需要签名内核模块,你需要选Yes,并使用新生成的key pair,然后删除private key;最后,安装程序会告诉你.der文件的位置并提供它的fingerprint。记下这两个参数。

离开安装程序后,运行sudo mokutil --import <.der文件位置>,然后设置一个密码;重启机器,参照这篇文章最后一节配置好MOK

在重启后,运行nvidia-smi有正常输出说明配置成功。