苦战1300多分钟,编译centos6.3内核30遍,高效精简vps专用内核

   考虑到现在很多vps都只支持centos,但是由于centos系统的内核,用户态应用程与系统配置的高度统一完整,编译内核成为了一项比debian,freebsd,openbsd更有挑战的工作,为了广大fans的幸福,本人花了3天1200多分钟,对centos6.3在vm8.04下编译了28遍,总成正果,得到了一个比较满意的虚拟机内核。由于vps编译速度的。。。无奈只能进行vm编译,我想只要稍微更改下cpu类型和相关的kvm virtio驱动就可以投入使用,期待哪位大侠进行测试:

      1,此内核删除了kvm,xen等虚拟相关选项,删除了selinux安全模块,已经所有的无用的驱动模块,分析功能,以及所有能删除的调试功能。

      2,对内存分配机制更改为slub, 抢占模式有轻度抢占改为无抢占,制定cpu为amd,

hz=250,关闭ksm,加入了tomoyo安全机制。

     3,对所有无关驱动模块,文件系统,辅助功能,进行了大清洗。

    4,启动速度有很大提升,内存占也有较大下降。

    5,此内核为学习型内核,大家可以参考学习,编译方法为传统的make menuconfig && make -j 4 all && make modules_install && make install

   次内核是正对web服务器使用,无虚拟kvm 功能,请各位同志参考使用,如果改进大家也可以相互交流,内核配置文件下载地址如下,请大家不要嫌积分太贵,一分钱一分货哦,下载后自行编译,学习:

            http://down.51cto.com/data/453051   第一版

           http://down.51cto.com/data/453087     第二版

   使用方法:1,

  • yum groupinstall "Development Tools" # 这样做会确定你拥有编译时所需的一切工具。

  • yum install ncurses-devel # 你必须这样才能让 make *config 这个指令正确地执行。

  • yum install qt-devel # 如果你打算用 make xconfig 而不是 make gconfigmake menuconfig,才需要这样做。

  • yum install hmaccalc zlib-devel binutils-devel elfutils-libelf-devel # 创建 CentOS-6 内核时需要它们。

  • 实在不行就 yum deplist 内核源码包 列出依赖关系,使用shell脚本安全

                      2,把config-new.txt下载下来,改名为.config 复制到解压后的源码目录中

                             解压源码的命令:rpm -ivh kernel-2.6.32*.src.rpm

                                                            cd  rpmbuild/SPECS

                                                            rpmbuild -bp --target=x86_64 kernel.spec

                       3,make oldconfig 再make menuconfig 修改cpu类型为自己的,我这里是amd的,注意是在vm8.04中运行的,如果是xen kvm中请自行更改相关驱动选项,和半虚拟选项。

                       4,make -j 4 all && make modules_install && make install

                       5,重启启用新内核

    如果你还不满意非要去除所有debug信息,传统方法无法办到,因为你不能动kernel hack中的东西,一动就出错,我们只能使用centos专门的编译方法进行,次方法暂时没做测试,不过我找个时间测试下过程如下:

                1,不同就是编译阶段解压源码后,修改好.config后,我们不适用make && make modules等,我们首先把vim .config 修改第一行#空格x86_64  然后把.config 复制到源码目录中的configs/下 取名为kernel-2.6.32-x86_64.config 再复制kernel-2.6.32-x86_64.config到 ~/rpmbuild/SOURCES/下。

              2,修改~/rpmbuild/SPECS/kernel.spec

cp $RPM_SOURCE_DIR/config-* .

 

改为

cp $RPM_SOURCE_DIR/kernel-*.config .

删除下面这行

 

make -f %{SOURCE20} VERSION=%{version} configs

                3,可以编译了rpmbuild -bb --without debug --without debuginfo --without kabichk

                --without fips  --target=x86_64 kernel.spec

                4,编译好了之后就安装 ~/rpmbuild/RPMS/`uname -m`/ 目录内找到。切记要以 root 的身份,利用 rpm -ivh kernel-*.rpm

本文出自 “清蒸BSD红烧LINUX” 博客,转载请与作者联系!

你可能感兴趣的:(centos,内核编译,vps内核,linux内核编译,centos内核编译)