首先,访问 http://www.kernel.org/选择需要的内核.
目前最新的mainline地址是: http://www.kernel.org/pub/linux/kernel/v3.0/testing/linux-3.6-rc7.tar.bz2
最新的stable地址是: http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.5.4.tar.bz2
官方提供bz2包和xz包下载。
可以用各种下载工具下载,比如我用的是 wget . tar -xjvf linux* 解压 (如果是xz包则是-xJvf)
一般习惯将源码移动到/usr/src/kernels/目录下
然后进入源码包中。
如果不是初次安装(比如是从其他地方copy过来的,或者是已经不幸安装失败过的),务必先要清理下之前的痕迹
make mrproper #清除环境变量,即清除配置文件 make clean #清除以前编译出的文件 make dep #清除依赖
为了方便编译配置 将 boot 目录下的 配置文件 复制到自己目录下的.config文件中
#cp /boot/config-* /usr/src/kernels/linux-*/.config
以上根据自己配置补全
Ncurses是一个不错的内核配置工具,可以通过yum直接安装。
yum install ncurses-devel
其实就是对控制台上玩图形界面
然后配置
make menuconfig
跳出个字符界面的GUI - 跑到最下面,勾上"Load an Alternate Configuration" 弹出的对话框中自然是默认的.config文件。 确定后,之前的配置则被载入到Ncurses中了。
然后可以再看看有自己要调整的没,然后save。
正式开始编译:
make bzImage #生成内核文件 make modules #编译模块 make modules_install #安装模块 make install #安装
如编译没有错误,可以看到/boot目录下多了一组新的内核文件。
一般情况下,linux大多用grub/grub2什么的管理,直接使用grub可以看看是否成功。 命令为
grub-mkconfg
或者
grub2-mkconfg
然后一堆的输出,翻下这些输出,一般是各个版本的内核,以及windows什么的。 如果没有错误,就可以写入到grub配置文件中了。
grub-mkconfig -o /boot/grub/grub.conf
之类的命令,输出到boot的grub配置文件中了 因为不同的机器不太一样,比如我的fedora是输出到/boot/grub2/grub.cfg文件中,而且还是grub2-mkconfig.所以在grub生成配置文件的时候,务必记得先看下原本配置文件在哪里 完了就可以重启了。
重启在启动界面应该可以看到第一个就是新的内核了
顺便
rpm -qa | grep kernel
可以查看自己内核
参考资料:
- centos 升级内核 : http://liaozy.blog.51cto.com/921527/553921
- CentOS 6.0 升级内核步骤、方法: http://www.cnblogs.com/zhunian/archive/2012/04/04/2431883.html(本文在网上copy众多,也不知哪个是原版,只取我参考的这篇)