如何安装内核头文件?

cod*_*der 102 kernel linux-headers

我想编写一个设备驱动程序但找不到头文件有人可以帮我找到它们吗?另外,如果有人能指出一些重要的站点链接,将不胜感激

Jan*_*anC 129

您应该能够通过在终端中运行以下命令来为当前运行的内核安装内核头文件:

sudo apt-get install linux-headers-$(uname -r)
Run Code Online (Sandbox Code Playgroud)

通常,内核头文件包被命名为 linux-header-*,其中“*”表示版本和变体(通用、服务器等)。

  • 这不会自动安装用于未来更新的标头,您每次都必须重新运行此命令。因此,建议改为安装元包,如 [another answer](http://askubuntu.com/a/268710/88802) 中所述。 (10认同)
  • 嘿,谢谢,但你能告诉我什么是*通用、服务器等*意味着我想写(内核驱动程序) (3认同)

Ale*_*les 98

您只需键入:

sudo apt-get install linux-headers-generic
Run Code Online (Sandbox Code Playgroud)

如果您使用的是桌面安装。apt-get 将解决依赖关系并安装正确版本的内核头文件。

  • Ubuntu 也会在新版本发布时更新它们 (17认同)
  • @IQAndreas `linux-headers-generic` 包是特定于 ubuntu 的。在 Debian 上你应该使用 `sudo apt-get install linux-headers-$(uname -r)` (4认同)
  • 或者 `linux-headers-virtual` 如果你在 Openstack 实例中运行虚拟机...... (3认同)

use*_*.dz 15

在以下情况下,这应该涵盖另一个问题:正在运行的内核已过时,这意味着它不再位于存储库中,也不再位于其头文件中。所以最好的办法是将内核更新到存储库中的最新版本。

linux-generic是一个元包,用于保留当前版本的内核及其头文件

sudo apt-get update
sudo apt-get install linux-generic
Run Code Online (Sandbox Code Playgroud)

注意:根据您的 Ubuntu 版本,查看您是否需要linux-lowlatency(Ubuntu Studio)linux-signed-genericlinux-virtual.

  • 尝试安装驱动程序时,其他解决方案都不适合我。感谢您。 (2认同)
  • debian 的几乎等效项称为“linux-headers-amd64”(显然,对于 amd64 系统) (2认同)