一.解压Linux源代码
我们从网上下下来的Linux源代码一般都是压缩包的形式,通常以.tar.bz2结尾,如
,这时,我们需要执行命令tar xvf linux-2.6.32.60.tar.bz2(2.6.32.60是我下载的Linux内核版本),这里还要说明一点,Linux内核的编译是向高版本编译的,比如说你现在的Linux内核版本是3.3.4的,那你就不可能再编译2.6.32.60的。
二.编译Linux内核
进入解压好的Linux内核源码目录下:
如果你是直接得到的解压好的Linux内核源码,建议你在编译之前执行一下make distclean 命令,这会将Linux中的中间文件和配置文件清理掉,以免编译时报错。
然后进入root模式,内核编译的方法有四种,这里介绍两种:
1.执行 make config 命令:
这种方式的好处是你能看到Linux内核编译时的所有内容,但是麻烦的是系统一直在提醒你要不要装,yes/no,所以不推荐这种方法。
2.执行 make menuconfig命令:
你会看到:
点击General setup:
点击Local version:
然后然你输入你自己想要添加的版本标识(我这里输入了worldhope):
然后保存配置文件(也可以自己修改其余的配置选项比如说网络配置等等)并退出:
然后执行 make 命令,开始编译。
我在刚开始make后系统报错,提示“You have not yet configured your kernel! missing kernel .config file”无法进行编译,上网查了一下,你可以执行一下make mrproper(和make distclean类似,确保源代码目录下没有不正确的.o文件以及文件的互相依赖,但是make
distclean删除的更加彻底),然后重新设置一下,再执行 make oldconfig ,然后make 就跑起来啦!
这个过程大概需要一个多小时,结束后是这样的:
然后执行make modules 命令,和make modules_install,再执行make install,最后再输入 update-initramfs -c -k 2.6.32.60 worldhope(此为你刚才输入的版本标识名),最后出现的界面是这样:
3.最后一步,让我们来修改一下grub 的启动项,你可以直接update-grub,但是可能会多出一些启动项,或者执行 cd /boot/grub/,然后执行gedit grub.cfg,自己来编辑启动项,这时会到gedit的编辑界面下:
如果显示无法编辑,先执行 chmod 644 /boot/grub/grub.cfg 获得可编辑权限,编辑完成后再执行 chmod 444 /boot/grub/grub.cfg 再改为只读就行了,
将图示中的Linux版本全部改成你所编译的版本号,我所编译的是2.6.32.60worldhope(worldhope是我自己改的版本标识,依你自己输入的而定)。
至此,整个内核编译的工作就全部完成了,这时你就可以重启系统了,可以通过执行:
uname -a
cat /proc/version
gnome-system-monitor 来查看版本号。
希望能够帮助到Linux的初学者朋友们 


