![“模块 nvidia 正在使用中”,但 GPU 上没有运行任何进程](https://linux22.com/image/915042/%E2%80%9C%E6%A8%A1%E5%9D%97%20nvidia%20%E6%AD%A3%E5%9C%A8%E4%BD%BF%E7%94%A8%E4%B8%AD%E2%80%9D%EF%BC%8C%E4%BD%86%20GPU%20%E4%B8%8A%E6%B2%A1%E6%9C%89%E8%BF%90%E8%A1%8C%E4%BB%BB%E4%BD%95%E8%BF%9B%E7%A8%8B.png)
我正在尝试配置 VirtualGL,并且配置显示以下消息:
IMPORTANT NOTE: Your system uses modprobe.d to set device permissions. You
must execute rmmod nvidia with the display manager stopped in order for the
new device permission settings to become effective.
当我尝试运行rmmod nvidia
(或使用sudo
)时,它说模块 nvidia 正在被使用:
rmmod: ERROR: Module nvidia is in use by: nvidia_uvm nvidia_modeset
我已经通过运行停止了我的窗口管理器sudo systemctl stop sddm.service
,因此当我检查时nvidia-smi
,它说 GPU 上没有运行任何进程。
我在这个问题上找到的大多数帖子都与大黄蜂有关,但我甚至没有安装它。
输出nvidia-smi
:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.40 Driver Version: 430.40 CUDA Version: 10.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 1080 Off | 00000000:01:00.0 Off | N/A |
| 33% 39C P8 12W / 200W | 9MiB / 8119MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
Ubuntu 18.04
答案1
在 Ubuntu 20.04 上,我能够使用以下命令(通过 SSH 或纯文本 tty 执行)完全卸载并重新加载 NVIDIA 模块。
sudo service gdm3 stop
sudo rmmod nvidia_uvm
sudo rmmod nvidia_drm
sudo rmmod nvidia_modeset
sudo rmmod nvidia
# Then, reload them if desired:
sudo modprobe nvidia
sudo modprobe nvidia_modeset
sudo modprobe nvidia_drm
sudo modprobe nvidia_uvm
这在例如无需重新启动即可升级 NVIDIA 驱动程序时非常有用(这可能会通过无人值守apt
升级意外发生)。
正如 @Thomas 在评论中指出的那样,如果仍然有某种东西阻止某个模块被卸载,通常可以找出原因:
lsmod | grep nvidia
lsof | grep nvidia