#yum install gcc
//这个要看自身的环境的,如果缺少对应的软件包,系统会提示的,缺啥补啥
2.下载Linux源码
从www.kernel.org下载相应的内核版本linux-3.9.2.tar.gz,放到/usr/src目录下3.在当前目录下解压源码包
#tar -zxvf linux-3.9.2.tar.gz
#cd linux-3.9.2
4.编译前的处理
#make mrproper
//此命令会删除所有的编译生成文件,内核配置文件,所以几乎只有第一次执行内核编译前才进行这个操作
#make clean
//此命令仅会删除编译生成的中间文件,而保留配置文件,如果在同一版本同一目录下重新编译,只想删除前一次编译的残留数据而保留.config配置文件,执行这个命令。如果
是不同版本的编译,应该没什么关系。
5.内核配置
#make menuconfig
//最常用的,图形界面,如果源码树目录下没有.config,则会生成一个或者
#make oldconfig
//通过使用已存在的.config,使用该文件内的设置值为默认值,只将新版本内核中的新功能选项列出来让用户选择,会去/boot目录下寻找相应的.config
或者#make config
//古老的功能挑选方式,设置错误只能够重来
//通过以上命令之一会在源码树目录下生成.config,此文件就是内核的配置文件,不用再复制到/boot目录下,如果复制到/boot下是为了重新编译时make oldconfig时可以找到6.开始编译和安装
#make -j4 bzImage//生成压缩过的内核,结束后应该会看到Kernel: arch/x86/boot/bzImage is ready字样, -j4是为了四核运行,加快速度,下同
#make -j4 modules#make -j4 modules_install
//在lib/modules下新建立这个内核的相关模块7.开始安装新内核
#cp -a arch/x86/boot/bzImage /boot/vmlinuz-3.9.2
#cp -a System.map /boot/System.map-3.9.2 && cp -a .config /boot/config-3.9.2
//此命令是为了备份,其实没必要做#depmod -a
#mkinitrd /boot/initrd.img-3.9.2 3.9.2
//新建相对应的Initial Ram Disk
8.修改grub#gedit /boot/grubmenu.lst
title CentOS 6.5(Kernel 3.9.2)root(hd0,4)
kenel /boot/vmlinuz-3.9.2initrd /boot/initrd.img-3.9.2
//这个grub只是一个示例,具体的要根据现存的grub进行修改,否则会无法进入新内核
//7、8两步骤可以用make install一步搞定,但是分解成两步更易于理解。第一次编译时可以使用make install把grub修改,然后再编译时就可以照着修改,还可以看一下此命令
在/boot目录下生成了什么
9.重启
#reboot#uname -a
//是3.9.2,搞定