CentOS安装内核源代码

本文参考于CentOS官网的《I need the Kernel Source》。

1. 或许你不需要整个内核的源代码

如果你只是需要编译一个内核的驱动程序(模块),很可能你并不需要安装整个内核源代码。只需要安装 kernel-devel 这个组件即可(然而,假若你需要完整的源代码目录树,请看第二部分)。
运行下面的命令即可安装 kernel-devel 组件:
[root@host]# yum install kernel-devel
安装成功后,便可编译你的模块了。
但这样安装后是看不到内核源代码的,内核目录下全都是kconfig和makefile文件。

2. 如果你真的需要整个内核的源代码

如果你真的因为某个原因需要整个内核的源代码,它是有被提供的。
以一个 不是 root 的用户,创建一个以 ~/rpmbuild 为基础的目录树:
[user@host]$ mkdir -p ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
[user@host]$ echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros
CentOS官网是不建议以 root 的身份创建这个目录的。(见: http://www.owlriver.com/tips/non-root/
要在 CentOS-7 安装源代码组件及工具:
以 root 的身份安装 rpm-build、redhat-rpm-config、asciidoc、hmaccalc、perl-ExtUtils-Embed、pesign、xmlto、audit-libs-devel、binutils-devel、elfutils-devel、elfutils-libelf-devel、ncurses-devel、newt-devel、numactl-devel、pciutils-dedvel、python-devel 及 zlib-devel 组件:
[root@host]# yum install rpm-build redhat-rpm-config asciidoc hmaccalc perl-ExtUtils-Embed pesign xmlto
[root@host]# yum install audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel
[root@host]# yum install ncurses-devel newt-devel numactl-devel pciutils-devel python-devel zlib-devel
可以到下面这个链接下载内核源代码组件:
以一个不是 root的普通户口,执行以下指令来安装源代码组件:
[user@host]$ rpm -i http://vault.centos.org/7/os/Source/SPackages/kernel-2.6.32-696.el6.src.rpm 2>&1 | grep -v exist
要在 CentOS-6 安装源代码组件及工具:
以 root 的身份安装 rpm-build、redhat-rpm-config、asciidoc、bison、hmaccalc、patchutils、perl-ExtUtils-Embed、xmlto、audit-libs-devel、binutils-devel、elfutils-devel、elfutils-libelf-devel、newt-devel、python-devel 及 zlib-devel 组件:
[root@host]# yum install rpm-build redhat-rpm-config asciidoc bison hmaccalc patchutils perl-ExtUtils-Embed xmlto
[root@host]# yum install audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel
[root@host]# yum install newt-devel python-devel zlib-devel
以一个不是 root 用户的户口,执行以下指令来安装源代码组件:
[user@host]$ rpm -i http://vault.centos.org/6.9/os/Source/SPackages/kernel-2.6.32-696.el6.src.rpm 2>&1 | grep -v exist
现在源代码组件已经安装了,请解压及预备源代码文件:
[user@host]$ cd ~/rpmbuild/SPECS
[user@host SPECS]$ rpmbuild -bp --target=$(uname -m) kernel.spec
$(uname -m) 这个值将目标结构设置为你的现有内核的结构。一般来说这是可行的,因为多数人的系统框架都是i686 或 x86_64。
现在内核的源代码目录树可以在 ~/rpmbuild/BUILD/kernel*/linux*/ 这个目录内找得到。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值