xwb@xwb:~$ nvidia-smi NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
时间: 2025-06-30 14:15:54 浏览: 9
### 问题分析
当运行 `nvidia-smi` 命令时出现如下错误:
```
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver.
Make sure that the latest NVIDIA driver is installed and running.
```
该错误通常表明 **NVIDIA 驱动程序未正确安装、加载,或与当前系统状态不兼容**。以下是可能导致此问题的常见原因及对应的解决方法。
---
### 解决方案
#### 1. 检查 NVIDIA 驱动是否已安装
首先确认系统中是否已经安装了 NVIDIA 驱动程序:
```bash
lsmod | grep nvidia
```
如果没有任何输出,则表示驱动模块未加载,可能是驱动未安装或安装失败。
可以尝试重新安装合适的驱动版本。推荐使用官方推荐的方式安装驱动,例如通过 [NVIDIA 官方网站](https://www.nvidia.com/Download/index.aspx) 下载适用于当前 GPU 的驱动包,或使用系统包管理器(如 Ubuntu 使用 `apt`)[^1]。
---
#### 2. 确保内核模块与驱动版本兼容
在更新系统内核后,可能需要重新编译 NVIDIA 内核模块。这是因为 NVIDIA 驱动是基于特定内核头文件编译的,若系统升级了内核但未重新构建驱动模块,会导致模块无法加载。
执行以下命令查看当前运行的内核版本:
```bash
uname -r
```
确保安装了对应版本的内核头文件(例如在 Ubuntu 上):
```bash
sudo apt install linux-headers-$(uname -r)
```
然后重新安装或重建 NVIDIA 驱动模块:
```bash
sudo nvidia-installer --kernel-module-only
```
或者重新运行完整的驱动安装脚本[^3]。
---
#### 3. 检查 Secure Boot 设置
如果启用了 Secure Boot,某些系统可能会阻止非签名的内核模块加载。此时需要进入 BIOS 设置并禁用 Secure Boot 功能,然后重启系统。
---
#### 4. 使用 DKMS 自动管理驱动模块
为了防止每次内核更新后都需要手动重建 NVIDIA 驱动模块,建议启用 **Dynamic Kernel Module Support (DKMS)** 功能:
```bash
sudo apt install dkms
```
在安装 NVIDIA 驱动时添加 `--dkms` 参数以启用自动模块重建功能[^2]。
---
#### 5. 权限问题与用户权限配置
如果遇到权限问题导致无法加载驱动模块,可以尝试切换到 root 用户进行操作:
```bash
sudo passwd root
su
```
输入设置的 root 密码后,再尝试运行 `nvidia-smi` 或重新安装驱动程序[^4]。
---
#### 6. 清理旧驱动并重新安装
有时旧版本驱动残留也可能导致冲突。可以使用以下命令清理旧驱动:
```bash
sudo apt purge nvidia-*
sudo apt autoremove
```
然后从官网下载最新驱动并安装:
```bash
chmod +x NVIDIA-Linux-x86_64-<version>.run
sudo ./NVIDIA-Linux-x86_64-<version>.run
```
安装过程中根据提示选择是否安装 32-bit 兼容库和 CUDA 工具包等选项。
---
#### 7. 检查是否与其他图形驱动冲突(如 Nouveau)
Linux 自带的开源显卡驱动 Nouveau 可能会与 NVIDIA 专有驱动冲突。可以通过以下方式禁用 Nouveau:
创建或编辑 `/etc/modprobe.d/blacklist-nouveau.conf` 文件:
```bash
echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/blacklist-nouveau.conf
```
然后更新 initramfs 并重启:
```bash
sudo update-initramfs -u
sudo reboot
```
重启后再次尝试加载 NVIDIA 驱动模块。
---
### 示例:Ubuntu 安装 NVIDIA 驱动流程
```bash
# 添加 NVIDIA 包仓库
distribution=$(. /etc/os-release;echo $ID$VERSION_ID | sed -e 's/\.//g')
wget https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/cuda-$distribution.pin
sudo mv cuda-$distribution.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/7fa2af80.pub
sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/$distribution/x86_64/ ."
sudo apt update
# 安装驱动
sudo apt install cuda-drivers
```
---
### 总结
| 步骤 | 描述 |
|------|------|
| 1 | 检查驱动是否安装 |
| 2 | 确保内核模块与驱动匹配 |
| 3 | 禁用 Secure Boot |
| 4 | 启用 DKMS 自动重建模块 |
| 5 | 处理权限问题 |
| 6 | 清理旧驱动并重新安装 |
| 7 | 禁用 Nouveau 驱动 |
---
阅读全文
相关推荐

















