Linux Mint 上已卸载的驱动程序在插入 USB 时仍会加载

Linux Mint 上已卸载的驱动程序在插入 USB 时仍会加载

我已经从 PPA 为 USB 设备安装了 DKMS 驱动程序。我正在更改代码并尝试使用 apt-get --purge remove 卸载驱动程序,但当我插入设备时,内核模块仍然加载...为什么会这样?它们藏在哪里?

提前致谢

答案1

当您 (或 DKMS) 构建内核模块并安装它时,它们会转到/lib/modules/$(uname -r)/...,因此请在那里检查。我的系统中的一个例子:

/lib/modules/3.2.0-36-generic-pae/updates/dkms/nvidia_current_updates.ko

答案2

安装和使用通过 DKMS 安装的内核模块涉及几个(大部分是自动化的)步骤:

  1. (在您的例子中)添加 PPA 源,刷新包列表。
  2. 使用包管理器 ( ) 安装 DKMS 包,apt-get首先将源文件和自动安装说明复制到标准目录 ( /usr/src/<module name>-<version>)
  3. DKMS 将文件复制到其私人目录。
  4. DKMS 在其私有目录中编译内核模块的源代码。
  5. DKMS将编译好的内核模块文件复制到modules目录下(一般是/lib/modules/<kernel version>/updates
  6. DKMS 更新模块依赖关系,以便您可以使用modprobe <modname>而不是insmod /lib/modules/<kernel version>/updates/<modname>.ko
  7. 您可以手动加载内核模块(modprobe <modname>),或者当您插入 USB 设备时,系统组件(udev)会为您加载该模块。

清除软件包时,将撤消步骤 1-6。步骤 7 不会自动撤消。通常,模块在加载后会保持加载状态,除非您使用 手动将其删除sudo rmmod <modname>。使用lsmod来找出模块的名称,通常与 相同<modname>,但至少对于 Ubuntu 上的 nvidia 驱动程序,此方法不同(您应使用modprobe nvidia-current,但使用rmmod nvidia)。

相关内容