我“需要”DKMS 吗?

Jus*_*ser 17 kernel dkms 14.04

我的基于 Ubuntu 的发行版预装了一些 VirtualBox 的东西,所以我卸载了它,它自动删除了 DKMS 包。

从我看到的来看,它看起来像是有用的包,但我需要它吗?像 VirtualBox 和 CDemu 这样的东西自己安装它,而 Ubuntu 默认没有安装它,所以我猜它只有一些安装模块或其他东西的程序“需要”。

我不是一个长期的 GNU/Linux 用户,所以我没有太多的经验,我什至没有编译的经验。

现在我有一个 Linux 内核更新待处理,但我不知道是否应该在没有安装 DKMS 的情况下更新它。

Pil*_*ot6 18

如果您没有安装 dkms 模块,则不需要 dkms 包。默认情况下,它没有安装在 Ubuntu 中。

当您安装某些专有驱动程序时,例如 Nvidia、AMD 或 Broadcom,也会自动安装 dkms 包。

要检查您是否有任何可以运行的 dkms 模块

dkms status
Run Code Online (Sandbox Code Playgroud)

如果未安装 dkms,此命令将不起作用,但您可以查看/var/lib/dkms/目录。

dkms 包的来源存储在 /usr/src/

  • 如何检查我是否有一些模块?你是对的,我试图安装专有的 NVIDIA 驱动程序,它想安装 DMKS,所以我想如果我真的需要它,包管理器会为我安装它。 (2认同)

Arr*_*cal 8

我猜您已经对 DKMS 进行了一些研究,它用于更新普通内核源之外的内核模块。通常是需要 DKMS 的驱动程序和包,如 VirtualBox。您可能不一定“需要” DKMS,但安装它很方便,尤其是如果您安装了额外的软件包,尽管不安装它不会破坏您的内核升级。

此处提供了有关 DKMS 的更多信息,以及在此处询问 ubuntu 的有用答案。

  • 额外的软件包是指您已安装的其他软件。一些包,如 VirtualBox,需要与内核交互,因此将模块安装到内核中以使其能够运行。当内核更新时,packages 模块可能不再工作,或者可能被覆盖。DKMS 确保如果有任何模块通过补充包加载到内核中,则在内核更新时对其进行适当处理,并且软件继续运行。 (2认同)

frl*_*lan 6

简短回答:如果您还想在内核更新后使用 Vitualbox,您将需要 DKMS 以及适合您内核的内核头文件。

长答案:该系统帮助您编译驱动程序(也称为内核模块),以便它们可以与您当前的内核一起运行。如果你不重新编译一个模块,会发生模块无法加载,因此它提供的功能将不再可用。在您的情况下:如果您不重新编译 virtual box 模块,则更新后 Virtualbox 将不可用。它将启动,但无法启动任何 VM。


Pet*_*des 5

Ubuntu 将在没有 DKMS 的情况下正常启动。

如果您使用的任何东西都依赖于 DKMS,但Depends:包装中没有它,您会注意到并且可以重新安装 DKMS 并提交错误。

DKMS 适用于以源代码形式(或带有源代码包装器的二进制文件)提供内核模块的软件包,因此它们不必为每个内核重建更新模块。无论 DKMS 与否,标准内核本身始终有效。