如何安装内核头文件?


85

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

Answers:


118

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

sudo apt-get install linux-headers-$(uname -r)

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


3
嘿,谢谢,但是您能告诉我通用,服务器等是什么意思吗(内核驱动程序)
编码器

8
这不会自动安装标题以供将来更新,并且您每次都必须重新运行此命令。因此,建议改为安装metapackage,如另一个答案中所述
gertvdijk

注意:这仍未将它们放在GCC包含路径中-I
Ciro Santilli新疆改造中心法轮功六四事件

1
注意:要使此功能起作用,deb-src必须在中显示适合的行/etc/apt/sources.list
沃拉克

87

您可以输入:

sudo apt-get install linux-headers-generic

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


15
当新版本问世时,Ubuntu也将对其进行更新
Csq 2013年

3
或者,linux-headers-virtual如果您在Openstack实例中运行VM ...
BSchlinker 2013年

1
在Debian的喘息我得到错误信息“包linux-头泛型是不可用的,而是由另一包称为[...] E:包‘Linux的头-通用’没有安装候选人”
IQAndreas

4
@IQAndreas linux-headers-generic软件包是ubuntu特定的。在Debian上,您应该使用sudo apt-get install linux-headers-$(uname -r)
Alexandre Teles

14

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

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

sudo apt-get update
sudo apt-get install linux-generic

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


1
尝试安装驱动程序时,没有其他解决方案对我有用。谢谢。
Sopalajo de Arrierez,2016年

1
一个几乎等同于debian的被调用linux-headers-amd64(显然是针对amd64系统)
hanshenrik

1

或者,如果您安装了智能: sudo aptitude install linux-headers-$(uname -r)


5
本质上是一样的。
2015年

-1

这些命令应该起作用:

sudo apt-get dist-upgrade -y
systemctl reboot
sudo apt-get install linux-headers-$(uname -r)
sudo apt-get upgrade linux-headers-$(uname -r)

为了更好的指导,请观看视频

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.