首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何卸载内核模块'nvidia-drm'?

如何卸载内核模块'nvidia-drm'?
EN

Unix & Linux用户
提问于 2018-04-30 04:07:43
回答 12查看 186.8K关注 0票数 89

我正在尝试安装最最新的NVIDIA驱动程序在Debian延伸.我已经从这里下载了C1,但是当我尝试

代码语言:javascript
复制
sudo sh ./NVIDIA-Linux-x86_64-390.48.run

如建议的那样,将出现一条错误消息。

代码语言:javascript
复制
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)时,我什么也没看到。

代码语言:javascript
复制
~$ 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
~$

当我试图移除它的时候,它说它被使用了。

代码语言:javascript
复制
~$ sudo modprobe -r nvidia-drm
modprobe: FATAL: Module nvidia_drm is in use.
~$ 

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

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

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

代码语言:javascript
复制
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)
EN

回答 12

Unix & Linux用户

发布于 2019-06-11 08:25:16

数据自动化系统安装

1)下载最新的CUDA工具包

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

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

( 3a)隔离多用户。

代码语言:javascript
复制
sudo systemctl isolate multi-user.target

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

代码语言:javascript
复制
lsmod | grep nvidia.drm

( 3c)卸载nvidia-drm

代码语言:javascript
复制
sudo modprobe -r nvidia-drm

4d)注意到nvidia-drm不再使用了。

代码语言:javascript
复制
lsmod | grep nvidia.drm

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

代码语言:javascript
复制
sudo sh cuda_10.1.168_418.67_linux.run

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

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

代码语言:javascript
复制
nvidia-smi

8)重新启动GUI。

代码语言:javascript
复制
sudo systemctl start graphical.target
票数 17
EN

Unix & Linux用户

发布于 2020-01-05 19:36:19

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

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

打开终端并写

代码语言:javascript
复制
sudo systemctl set-default multi-user.target
sudo reboot 0

现在登录,您将直接进入一个终端,安装驱动程序一定要注意,我在这里安装了您需要为驱动程序版本修改的440.44 <#>so。

代码语言:javascript
复制
sudo ./NVIDIA-Linux-x86_64-440.44.run

安装驱动程序后,启用GUI和重新引导:

代码语言:javascript
复制
sudo systemctl set-default graphical.target
sudo reboot 0

你应该做完

在我的例子中,nvidia-smi报告了新版本440.44,在Ubuntu18.04软件和更新实用程序中抱怨,其他驱动程序Tab显示435!另一个NVIDIA的神秘,但见鬼我的新码头工作!

票数 9
EN

Unix & Linux用户

发布于 2018-04-30 06:39:48

lsof列出了用户空间进程使用的所有文件。但是nvidia_drm是一个内核模块,所以lsof不一定会看到它是否真的在使用。(模块文件将不会打开,因为内核已经将其完全加载到RAM中。但是模块可能会向用户空间或其他内核组件提供服务,这就是阻止卸载模块的原因。)

运行lsmod | grep nvidia.drm并查看nvidia_drm模块名称右侧的数字。第一个数字就是模块的大小;第二个数字是使用计数。要成功地删除模块,首先必须使用计数为0。

如果X11服务器正在运行并使用nvidia驱动程序,那么nvidia_drm内核模块肯定会被使用。因此,您至少需要切换到文本控制台并关闭X11服务器。通常,这可以通过停止所使用的任何X显示管理器服务来完成(取决于您使用的桌面环境)。

正如错误消息所述,如果您正在运行nvidia-persistenced,在卸载nvidia_drm模块之前,您也需要停止该操作。

票数 6
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/440840

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档