Linux内核头文件来匹配当前内核

Rat*_*ler 5 kernel

我看到了一些有关 linux-headers 包的问题,​​但找不到任何内容来解决我的具体问题。

我使用的是 Kubuntu 16.04,并且收到以下错误(来自 VirtualBox):

请安装与当前内核匹配的 Linux 内核“头”文件,以便为系统添加新的硬件支持。包含标头的分发包可能是:

linux-headers-generic linux-headers-4.13.0-43-generic

我很惊讶地发现它linux-headers-generic没有安装,尽管我不确定它是否应该默认存在。

无论如何,虽然内核是 4.13.0-43-generic,但确实没有安装相应的标头:

$ uname -r
4.13.0-43-generic

$ aptitude search  linux-headers | grep  ^i
id  linux-headers-4.13.0-32         - Header files related to Linux kernel versi
id  linux-headers-4.13.0-32-generic - Linux kernel headers for version 4.13.0 on
i A linux-headers-4.13.0-37         - Header files related to Linux kernel versi
i A linux-headers-4.13.0-37-generic - Linux kernel headers for version 4.13.0 on
i A linux-headers-4.13.0-38         - Header files related to Linux kernel versi
i A linux-headers-4.13.0-38-generic - Linux kernel headers for version 4.13.0 on
i A linux-headers-4.13.0-39         - Header files related to Linux kernel versi
i A linux-headers-4.13.0-39-generic - Linux kernel headers for version 4.13.0 on
Run Code Online (Sandbox Code Playgroud)

linux-headers-generic将始终取决于可用的最新通用内核头文件”,因此我认为安装它会安装最新的软件包(在本例中,linux-headers-4.13.0-43-generic根据 VirtualBox 的要求)并保持它们最新。

但是,如果我尝试这样做,系统会要求我安装看起来非常旧的软件包:

$ sudo aptitude install linux-headers-generic
The following NEW packages will be installed:
linux-headers-4.4.0-127{a} linux-headers-4.4.0-127-generic{a} linux-headers-generic 
0 packages upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 10.8 MB of archives. After unpacking 78.4 MB will be used.
Run Code Online (Sandbox Code Playgroud)

还有一个名为 的包linux-headers-generic-lts-xenial,但它或多或少做同样的事情。

所以,我的问题是:

  • 默认情况下应该有 linux-headers-generic 软件包吗?哪一个?
  • 我需要在我的情况下安装其中一个吗?
  • 如果我linux-headers-4.13.0-43-generic直接安装必要的包,升级内核后会发生什么?

mur*_*uru 4

默认情况下应该有 linux-headers-generic 软件包吗?哪一个?

不,都不是。

我需要在我的情况下安装其中一个吗?

从内核版本来看,您似乎正在使用(HWE) 内核。因此,您应该安装以下标头:linux-headers-generic-hwe-16.04,元包应该依赖于 HWE 内核 (4.13) 的正确标头包。

如果我linux-headers-4.13.0-43-generic直接安装必要的包,升级内核后会发生什么?

您必须再次手动安装相关标头。最好使用linux-headers-generic-hwe-16.04.