版本:1.0.1
作者:石硕
更新:2014-05-09 15:04:53
============================================================
出于工作需要,定制CentOS内核,以改进TCP的传输效率,如何改进这里暂且不提,下面重点讲解如何获取源码,编译。
1. 编译前的准备
以【root】用户安装下列组件:
su root
yum -y groupinstall "Development Tools"
yum -y install ncurses-devel qt-devel
yum -y install rpm-build redhat-rpm-config asciidoc hmaccalc perl-ExtUtils-Embed xmlto
yum -y install audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-devel
yum -y install newt-devel python-devel zlib-devel
2. 安装内核的源代码组件
【注】必须使用【非root】用户执行命令
rpm -i http://vault.centos.org/6.5/updates/Source/SPackages/kernel-2.6.32-431.11.2.el6.src.rpm 2>&1 | grep -v mock
附:kernel-2.6.32-431.11.2.el6.src.rpm 源在国外,下载速度可能会比较慢,可以借助BGP机房或VPN加速。
附源代码地址:
http://vault.centos.org/6.5/os/Source/SPackages/
http://vault.centos.org/6.5/updates/Source/SPackages/
3. 解压及预备源代码文件
【注】必须使用【非root】用户执行命令
cd ~/rpmbuild/SPECS
rpmbuild -bp --target=$(uname -m) kernel.spec
附:现在内核的源代码目录树可以在 ~/rpmbuild/BUILD/kernel*/linux*/ 这个目录内找得到。
4. 编译新内核
【注】必须使用【非root】用户执行命令
cd ~/rpmbuild/SPECS
rpmbuild -bb --with baseonly --without debug --without debuginfo --target=`uname -m` kernel.spec 2> build-err.log | tee build-out.log
附:此过程可能需要花费90分钟左右,请耐心等待。
附:现在自定义内核的 rpm 文件可以在 ~/rpmbuild/RPMS/`uname -m`/ 目录内找到。
5. 安装新内核
【注】必须使用【root】用户执行命令
su root
rpm -ivh kernel-*.rpm
6. 验证
重启,查看内核版本
uname -a
参考资料:
[1]CentOS Wiki http://wiki.centos.org/zh/HowTos/Custom_Kernel#head-981e27f326384c58516d3b2051b225526bb0a50a