作者:石碩
更新: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分鐘左右,請耐心等待。
5. 安裝新內核
【注】必須使用【root】用戶執行命令su root
rpm -ivh kernel-*.rpm
6. 驗證
重啓,查看內核版本uname -a
參考資料:
[1]CentOS Wiki http://wiki.centos.org/zh/HowTos/Custom_Kernel#head-981e27f326384c58516d3b2051b225526bb0a50a