Chinaunix首页 | 论坛 | 博客
  • 博客访问: 140139
  • 博文数量: 43
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 501
  • 用 户 组: 普通用户
  • 注册时间: 2014-10-24 15:28
文章分类

全部博文(43)

文章存档

2015年(18)

2014年(25)

我的朋友

分类: LINUX

2014-10-28 21:34:26

CentOS 6.5 升级内核到 3.10.28

内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。Linux作为一个自由软件,在广 大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一 个更高效,更稳定的内核,就需要重新编译内核。

本文适用于CentOS 6.4, CentOS 6.5,亲测可行,估计也适用于其他Linux发行版。

1. 准备工作

1.1 下载源码包

Linux内核版本有两种:稳定版和开发版 ,Linux内核版本号由3个数字组成:r.x.y
r: 主版本号
x: 次版本号,偶数表示稳定版本;奇数表示开发中版本。
y: 修订版本号 , 表示修改的次数

去 首页,可以看到有stable, longterm等版本,longterm是比stable更稳定的版本,会长时间更新,因此我选择 3.10.28,
wget 

1.2 解压
tar -xf linux-3.10.28.tar.xz

1.3 更新当前系统
sudo yum update
sudo yum upgrade

1.4 安装编译内核所需要的软件包
sudo yum groupinstall "Development Tools" # 一口气安装编译时所需的一切工具
sudo yum install ncurses-devel #必须这样才能让 make *config 这个指令正确地执行。
sudo yum install qt-devel #如果你没有 X 环境,这一条可以不用
sudo yum install hmaccalc zlib-devel binutils-devel elfutils-libelf-devel #创建 CentOS-6 内核时需要它们

2 配置文件

2.1 查看当前系统内核
uname -r
2.6.32-358.11.1.el6.x86_64

2.2 将当前系统的配置文件拷贝到当前目录(新的内核解压目录)
cp /boot/config-2.6.32-358.11.1.el6.x86_64 .config

2.3 使用旧内核配置,并自动接受每个新增选项的默认设置
sh -c 'yes "" | make oldconfig'  (这步要在新的内核解压目录中执行)

make oldconfig会读取当前目录下的.config文件,在.config文件里没有找到的选项则提示用户填写,然后备份.config文件为.config.old,并生成新的.config文件,参考

3 编译
sudo make mrproper    #清理上次编译的现场  (第一次编译不选也行)
make menuconfig    #配置内核(按两次esc键保存退出)
sudo make -j8 bzImage #生成内核文件
sudo make -j8 modules #编译模块
sudo make -j8 modules_install #编译安装模块
如果发现错误,从第一步make mrproper重新开始。

要严格按照这个顺序进行编译,不能合并成一句,sudo make -j8 bzImage modules modules_install。

-j后面的数字是线程数,用于加快编译速度,一般的经验是,有多少G内存,就填写那个数字,例如有8G内存,则为-j8。

4 安装
sudo make install

如果出现了 ERROR: modinfo: could not find module xxx,数量少的话,可以忽略。

5 修改Grub引导顺序

安装完成后,需要修改Grub引导顺序,让新安装的内核作为默认内核。

编辑 grub.conf文件,
sudo vim /etc/grub.conf

数一下刚刚新安装的内核在哪个位置,从0开始,然后设置default为那个数字,一般新安装的内核在第一个位置,所以设置default=0。

6 重启
sudo reboot

重启后,看一下当前内核版本号,
uname -r
3.10.28

成功啦!!

7 如果失败,则重新循环

如果失败,重新开始的话,要清理上次编译的现场
make mrproper #清理上次编译的现场

然后转到第2步,重新开始。




阅读(1764) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~