Linux下nvidia-smi报错
1. Failed to initialize NVML: driver/library version mismatch
- 问题:服务器更新 N 卡驱动版本之后,内核中的 N 卡驱动模块没有更新。
- 解决:有两种方式解决
- 重启服务器。
- 让内核重新载入 N 卡驱动模块:
1
2sudo rmmod nvidia
nvidia-smi
2. NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
- 问题:N 卡驱动模块没有成功加载到内核,可能是由于 Linux 内核升级导致版本不兼容。
- 解决:
- 检查是否安装了
dkms
(dkms
是一个非常方便的内核模块管理工具),如果没有安装需要手动安装一下。 - 利用
dkms
检测 N 卡驱动模块在 Linux 内核升级时是否有成功编译加载:
1
dkms status
- 若显示 N 卡驱动模块没有成功编译加载,则可以利用
dkms
手动编译加载:
1
sudo dkms install -m nvidia -v 460.xx # `460.xx` 为版本号,根据 dkms status 的输出自行改为自己的版本
- 若
dkms
手动编译加载还不成功,一般可能是因为新内核导致原来 N 卡无法编译,此时就需要手动安装更新版本的 N 卡驱动了,具体安装方法因不同 Linux 发行版而异:
- Debian 系 Linux 发行版
1
sudo apt install nvidia-xxx # xxx 为需要安装的版本
- Arch 系 Linux 发行版
1
2
3yay -S nvidia-xxxxx # xxxxx 为需要安装的版本
# 或者直接安装 nvidia-dkms,它会自动安装最新版的 N 卡驱动
yay -S nvidia-dkms- 若仍然无法解决,可以直接到官网下载 Linux 的
.run
安装包安装。不过这种安装方式后续无法跟随系统进行更新,需要手动下载安装包进行更新。
- 检查是否安装了
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!