如何修复NVIDIA-SMI指令错误
本文演示输出使用的机器是Ubuntu 22.04.2 LTS,它配备了一块专有的 NVIDIA GeForce GT 730 显卡。
当服务器没有安装英伟达(NVIDIA)显卡驱动,或者驱动版本与显卡不匹配,或者安装了某些系统软件或者系统更新内核时,服务器重启后可能无法连接NVIDIA驱动,出现如下nvidia-smi错误信息:
$ nvidia-smiNVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
如何修复错误nvidia-smi错误: "NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver"
安装必要的Linux内核头文件
如果之前正常,重启后出现这个错误,则很可能是Ubuntu内核版本升级导致的。让我们重新安装内核头文件。
$ sudo apt install linux-headers-\`uname -r\`或者
$ sudo apt install linux-headers-$(uname -r)然后输入 nvidia-smi 指令,输出可能就正常了。如果还是错误,请继续尝试下面的方法。
使用DKMS为内核重新安装NVIDIA驱动程序
有时,重新启动机器后,NVIDIA SMI会显示NVIDIA driver loss,这是由于Linux内核升级导致之前的NVIDIA驱动与连接不匹配。
DKMS(Dynamic Kernel Module System,动态内核模块系统)可以在内核更改后自动编译模块并适应新内核。它允许更新离散的内核模块,而无需修改整个内核。使用 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 驱动程序。下面介绍三种专为 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 reboot2. 在 Ubuntu 上通过 PPA 存储库安装 Nvidia Beta 驱动程序
PPA 存储库允许开发人员分发官方 Ubuntu 存储库中未提供的软件。这意味着您可以安装最新的测试版驱动程序,但是存在系统不稳定的风险。
要通过 PPA 存储库安装最新的 Nvidia 驱动程序,请按照以下步骤操作:
步骤 1:使用以下命令将图形驱动程序存储库添加到系统中:
$ sudo add-apt-repository ppa:graphics-drivers/ppa步骤 2:要验证您使用的 GPU 型号并查看可用驱动程序列表,请运行以下命令:
$ ubuntu-drivers devices
步骤 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 包。

步骤 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:重新启动计算机以使更改生效。