更新Linux内核头文件(linux headers)

一般来说,如果不是自己编译kernel,那么更新头文件是比较容易的事情,在Ubuntu/Fedora等操作系统上,可以直接安装相应的linux-headers软件包,下面就演示了在Ubuntu上安装内核头文件的过程。

master@jay-intel:~/workspace/c-study$ uname -r
3.2.0-33-generic
master@jay-intel:~/workspace/c-study$ apt-get install linux-headers-$(uname -r)
Reading package lists... Done
Building dependency tree
Reading state information... Done
linux-headers-3.2.0-33-generic is already the newest version.
linux-headers-3.2.0-33-generic set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 331 not upgraded.

然而,如果自己编译Linux kernel并用它启动了系统,然后为了让本地程序基于当前kernel的headers来编译,就需要自己手动更新内核的头文件了。手动更新linux headers的步骤如下:
1. 在Linux kernel目录中,执行“make headers_install”命令,将headers安装到当前目录的usr/include/下面。
2. 将以前的headers备份:包括/usr/include/目录下的asm,asm-generic,linux等目录。
3. 将刚才生成的当前编译内核目录下的usr/include/中的asm,asm-generic,linux等目录复制到/usr/include/目录下即可。
(当然如果还需要更新其他的目录的头文件,也都可以一起复制过去。)

操作演示如下:

[root@jay-linux kvm.git]# make headers_install
  CHK     include/generated/uapi/linux/version.h
  WRAP    arch/x86/include/generated/asm/clkdev.h
  SYSHDR  arch/x86/syscalls/../include/generated/uapi/asm/unistd_32.h
  SYSHDR  arch/x86/syscalls/../include/generated/uapi/asm/unistd_64.h
  SYSHDR  arch/x86/syscalls/../include/generated/uapi/asm/unistd_x32.h
  SYSTBL  arch/x86/syscalls/../include/generated/asm/syscalls_32.h
  SYSHDR  arch/x86/syscalls/../include/generated/asm/unistd_32_ia32.h
  SYSHDR  arch/x86/syscalls/../include/generated/asm/unistd_64_x32.h
  SYSTBL  arch/x86/syscalls/../include/generated/asm/syscalls_64.h
  HOSTCC  arch/x86/tools/relocs
  HOSTCC  scripts/unifdef
  INSTALL include/asm-generic (35 files)
  INSTALL include/drm (15 files)
  INSTALL include/linux/byteorder (2 files)
  INSTALL include/linux/caif (2 files)
  INSTALL include/linux/can (5 files)
  INSTALL include/linux/dvb (8 files)
  INSTALL include/linux/hdlc (1 file)
  INSTALL include/linux/hsi (1 file)
  INSTALL include/linux/isdn (1 file)
  <省略部分信息...>
  INSTALL include/asm (64 files)
 
[root@jay-linux include]# pwd
/usr/include
[root@jay-linux include]# mv asm asm_orig
[root@jay-linux include]# mv linux linux_orig
[root@jay-linux include]# mv asm-generic asm-generic_orig
 
[root@jay-linux kvm.git]# pwd
/root/kvm_demo/kvm.git
[root@jay-linux kvm.git]# cp -r usr/include/asm /usr/include/
[root@jay-linux kvm.git]# cp -r usr/include/asm-generic/ /usr/include/
[root@jay-linux kvm.git]# cp -r usr/include/linux /usr/include/

Original article: 更新Linux内核头文件(linux headers)

©2013 笑遍世界. All Rights Reserved.

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值