首先,访问 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

可以查看自己内核

参考资料:

  1. centos 升级内核 : http://liaozy.blog.51cto.com/921527/553921
  2. CentOS 6.0 升级内核步骤、方法: http://www.cnblogs.com/zhunian/archive/2012/04/04/2431883.html(本文在网上copy众多,也不知哪个是原版,只取我参考的这篇)
Categories: Code

Yu

Ideals are like the stars: we never reach them, but like the mariners of the sea, we chart our course by them.

Leave a Reply

Your email address will not be published. Required fields are marked *