NVIDIA-SMI 失败,因为它无法与 NVIDIA 驱动程序通信

注:以下演示输出所用的机器是Ubuntu 22.04.2 LTS,配备NVIDIA GeForce GT 730显卡

介绍

当服务器未安装NVIDIA驱动、或驱动版本与显卡不匹配、或安装某些系统软件、或系统更新内核时,服务器重启后可能无法连接NVIDIA驱动,错误信息如下:

$ nvidia-smi
NVIDIA-SMI 失败,因为它无法与 NVIDIA 驱动程序通信。请确保已安装并运行最新的 NVIDIA 驱动程序。

如何修复“NVIDIA-SMI 失败,因为它无法与 NVIDIA 驱动程序通信”错误

安装必要的内核头文件

如果之前都正常,重启后出现这个错误,很可能是Ubuntu内核版本升级导致的,我们重新安装一下内核头文件吧。

$ sudo apt install linux-headers-`uname -r`

#or
$ sudo apt install linux-headers-$(uname -r) 

然后输入nvidia-smi,输出可能就正常了,如果还是错误,请继续下面的方法。

使用 DKMS 为内核重新安装 NVIDIA 驱动程序

有时重启机器后,NVIDIA SMI 会显示 NVIDIA 驱动程序丢失,这是由于 Linux 内核升级导致之前的 NVIDIA 驱动程序与连接不匹配导致的。

DKMS(动态内核模块系统)可以在内核更改后自动编译模块并适应新内核。它允许更新离散的内核模块,而无需修改整个内核。使用 dkms 可以重新安装适用于内核的驱动程序:

$ sudo apt install dkms
$ sudo dkms install -m nvidia -v 470.182.03

$ dkms status nvidia
nvidia/470.182.03, 5.15.0-88-generic, x86_64: installed

注意: 上面命令行中的 470.182.03 是 NVIDIA 的版本号,不清楚的时候,进入 /usr/src 目录,会看到以 nvidia 为后缀的文件夹。或者使用以下命令查询。

$ ls /usr/src | grep nvidia
nvidia-470.182.03

当您再次输入 nvidia smi 时,熟悉的输出将会回来。

nvidia-smi 输出
如果仍然无效,请坚持尝试以下方法。让我们继续重新安装 NVIDIA 驱动程序。以下介绍三种专为 Linux 设计的常用安装方法。

安装 NVIDIA 驱动程序的 3 种方法

1. 在 Linux 上通过命令行安装 Nvidia 驱动程序

步骤 1:在安装驱动程序之前,请确保更新软件包存储库。运行以下命令:

$ sudo apt update
$ sudo apt upgrade

步骤 2:搜索 Nvidia 驱动程序,运行以下命令。输出将显示适用于你的 GPU 的驱动程序列表。

$ apt search nvidia-driver

步骤3:从可用的GPU驱动程序列表中选择要安装的驱动程序。最适合的是最新测试过的专有版本。

$ sudo apt install nvidia-driver-470

在本教程中,我们安装了 nvidia-driver-340,这是该 GPU 的最新测试专有驱动程序。

步骤 4:使用以下命令重新启动计算机:

# sudo reboot

2. 在 Ubuntu 上通过 PPA 存储库安装 Nvidia Beta 驱动程序

PPA 仓库允许开发者分发 Ubuntu 官方仓库中没有的软件。这意味着您可以安装最新的测试版驱动程序,但系统可能会不稳定。

要通过 PPA 存储库安装最新的 Nvidia 驱动程序,请按照以下步骤操作:

步骤 1:使用以下命令将图形驱动程序存储库添加到系统:

$ sudo add-apt-repository ppa:graphics-drivers/ppa

第 2 步:要验证您正在使用的 GPU 型号并查看可用驱动程序的列表,请运行以下命令:

$ ubuntu-drivers devices
ubuntu 驱动程序设备

步骤 3:输出显示您的 GPU 型号以及该特定 GPU 的所有可用驱动程序。要安装特定驱动程序,请使用以下语法:

$ sudo apt install nvidia-driver-470

或者,通过运行以下命令自动安装推荐的驱动程序:

$ sudo ubuntu-drivers autoinstall

步骤 4:重新启动机器以使更改生效。

3. 在 Linux 上通过 Runfile 安装程序安装 Nvidia 驱动程序

步骤1:NVIDIA 驱动程序以 .run 安装程序包的形式提供,可从NVIDIA 驱动程序下载 网站下载,适用于 Linux 发行版。请选择适合您 GPU 产品的 .run 安装程序包。

nvidia 下载驱动程序

步骤2:可以使用 wget 下载 .run,如下例所示:

$ wget https://us.download.nvidia.com/XFree86/Linux-x86_64/470.223.02/NVIDIA-Linux-x86_64-470.223.02.run

步骤3:下载 .run 安装程序后,即可安装 NVIDIA 驱动程序:

$ sudo sh NVIDIA-Linux-x86_64-$DRIVER_VERSION.run

安装过程中请按照屏幕上的提示进行操作。有关使用 .run 安装程序的更多高级选项,请参阅 --help 选项。

步骤4:重新启动机器以使更改生效。