如何卸载内核模块“nvidia-drm”?

如何卸载内核模块“nvidia-drm”?

我正在尝试在 Debian Stretch 中安装最新的 NVIDIA 驱动程序。我已经下载了NVIDIA-Linux-x86_64-390.48.run从下载了这里,但是当我尝试做时

sudo sh ./NVIDIA-Linux-x86_64-390.48.run

按照建议,出现错误消息。

ERROR: An NVIDIA kernel module 'nvidia-drm' appears to already be loaded in your kernel.  This may be because it is in use (for example, by an X server, a CUDA program, or 
         the NVIDIA Persistence Daemon), but this may also happen if your kernel was configured without support for module unloading.  Please be sure to exit any programs    
         that may be using the GPU(s) before attempting to upgrade your driver.  If no GPU-based programs are running, you know that your kernel supports module unloading,   
         and you still receive this message, then an error may have occured that has corrupted an NVIDIA kernel module's usage count, for which the simplest remedy is to     
         reboot your computer.

当我试图找出谁在使用nvidia-drm(或nvidia_drm) 时,我什么也没看到。

~$ sudo lsof | grep nvidia-drm
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
~$ sudo lsof -e /run/user/1000/gvfs | grep nvidia-drm
~$

当我尝试删除它时,它说它正在被使用。

~$ sudo modprobe -r nvidia-drm
modprobe: FATAL: Module nvidia_drm is in use.
~$ 

我已重新启动并以纯文本模式启动(在提供用户名/密码之前按 Ctrl+Alt+F2),但我遇到了相同的错误。

除此之外,我如何“知道我的内核支持模块卸载”?

我在启动时收到一些与 nvidia 相关的警告,但不知道它们是否相关:

Apr 30 00:46:15 debian-9 kernel: nvidia: loading out-of-tree module taints kernel.
Apr 30 00:46:15 debian-9 kernel: nvidia: module license 'NVIDIA' taints kernel.
Apr 30 00:46:15 debian-9 kernel: Disabling lock debugging due to kernel taint
Apr 30 00:46:15 debian-9 kernel: NVRM: loading NVIDIA UNIX x86_64 Kernel Module  375.82  Wed Jul 19 21:16:49 PDT 2017 (using threaded interrupts)

答案1

我想你想停止显示管理器,我怀疑它会使用 Nvidia 驱动程序。

更改为文本控制台(按Ctrl+ Alt+ F2)并以 root 身份登录后,使用以下命令禁用图形目标,这使显示管理器保持运行:

# systemctl isolate multi-user.target

此时,我希望您能够使用modprobe -r(或rmmod直接)卸载 Nvidia 驱动程序:

# modprobe -r nvidia-drm

一旦您成功替换/升级它并且准备好再次启动图形环境,您可以使用以下命令:

# systemctl start graphical.target

答案2

CUDA安装

1)下载最新的CUDA工具包

2) 按 Ctl+Alt+F3 切换到 tty3

3) 在继续之前卸载 nvidia-drm。

3a) 隔离多用户目标

sudo systemctl isolate multi-user.target

3b) 请注意,nvidia-drm 当前正在使用中。

lsmod | grep nvidia.drm

3c) 卸载 nvidia-drm

sudo modprobe -r nvidia-drm

4d) 请注意,nvidia-drm 不再使用。

lsmod | grep nvidia.drm

5) 转到您的下载文件夹并运行 cuda 安装。

sudo sh cuda_10.1.168_418.67_linux.run

6) 回答安装过程中的任何提示。

7) 安装完成后,确认CUDA版本已更新。

nvidia-smi

8) 再次启动GUI。

sudo systemctl start graphical.target

答案3

我通过禁用 GUI、重新启动、登录并安装驱动程序、启用 GUI、然后重新启动来解决这个问题。

请确保您知道您的用户名和密码!

打开终端并写入

sudo systemctl set-default multi-user.target
sudo reboot 0

现在登录,您将直接进入终端,安装驱动程序请注意,我在这里安装的是 440.44所以你需要修改你的驱动版本

sudo ./NVIDIA-Linux-x86_64-440.44.run

安装驱动程序后启用 GUI 并重新启动:

sudo systemctl set-default graphical.target
sudo reboot 0

你应该完成

就我而言,nvidia-smi 报告了新版本 440.44,在 Ubuntu 18.04 软件和更新实用程序中抱怨,附加驱动程序选项卡显示 435!另一个 NVIDIA 之谜,但是我的新 docker 居然能工作!!!

答案4

我有类似的问题。

*原因:nvidia.drm 软件包正在使用中


我通过清除所有 NVIDIA 软件包来修复它。

使用以下 2 个命令删除所有以前安装的 NVIDIA:


$ sudo apt-get purge nvidia*
$ sudo apt-get autoremove

应删除模块。

重新启动并继续。

相关内容