【发布时间】:2018-08-10 05:42:46
【问题描述】:
我知道通过编译内核来禁用它而不在配置中设置CONFIG_DRM_VMWGFX。但是我不想构建一个新内核,我可以通过一些配置来实现它吗?
我试图从lib/modules/.../kernel/driver 目录中删除vmwgfx.ko 并重新启动,但驱动程序在 Ubuntu 16.04 上运行良好。为什么?文件在其他地方吗?
我也尝试过 rmmod,但它不起作用。
[root@ubuntu:] lsmod |grep vmwgfx
vmwgfx 235405 4
drm_kms_helper 159169 1 vmwgfx
ttm 99345 1 vmwgfx
drm 370825 7 ttm,drm_kms_helper,vmwgfx
[root@ubuntu:] rmmod -f vmwgfx
rmmod: ERROR: ../libkmod/libkmod-module.c:793 kmod_module_remove_module()
could not remove 'vmwgfx': Resource temporarily unavailable
[root@ubuntu:] modprobe -r vmwgfx
modprobe: FATAL: Module vmwgfx is in use.
【问题讨论】:
-
根据模块的类型,您可能可以使用
rmmod。使用lsmod查看列表。 -
短语
Module vmwgfx is in use.并不意味着 vmwgfx 是内置的。相反,这意味着vmwgfx是一个模块。您可以输入lsmod来查看模块列表。在此列表中,您可能还会看到哪个模块使用您的模块。顺便说一句,这个问题根本不是关于编程的,所以它在 Stack Overflow 上是题外话。你可以在askubuntu问。 -
您可以将 modprobe 配置中的模块列入黑名单以阻止它们自动加载。见modprobe.d(5)。
-
@askubuntu 一个模块也可以在没有其他模块使用的情况下被使用,例如当某些东西打开一个由模块管理的设备时,它的“使用中”计数会增加。由于
vmwgfx是一个图形驱动程序,可能有Xorg 服务器和帧缓冲控制台tty 进程(例如agetty)在使用它。
标签: linux-kernel driver linux-device-driver ubuntu-16.04