CentOS6.5 内核升级

CentOS6.5内核升级


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

1. 准备工作

1.1 下载源码包

Linux内核版本有两种:稳定版和开发版,Linux内核版本号由3个数字组成:r.x.y

· r:主版本号

· x:次版本号,偶数表示稳定版本;奇数表示开发中版本。

· y:修订版本号,表示修改的次数

http://www.kernel.org首页,可以看到有stable, longterm等版本,longterm是比stable更稳定的版本,会长时间更新,因此我选择 3.10.28,

wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.10.28.tar.xz

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 installncurses-devel #必须这样才能让 make *config 这个指令正确地执行。

sudo yum install qt-devel #如果你没有 X 环境,这一条可以不用

sudo yum install hmaccalczlib-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文件,参考http://stackoverflow.com/questions/4178526/what-does-make-oldconfig-do-exactly-linux-kernel-makefile

3 编译

sudo make -j8 bzImage #生成内核文件sudo make -j8 modules #编译模块sudo make -j8 modules_install #编译安装模块

要严格按照这个顺序进行编译,不能合并成一句,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步,重新开始。


更多相关文章
  • 今年3月10号,市民蔡先生报案,称其在建设银行开户的两张信用卡内的16万6千余元人民币不翼而飞,在分析了银行反馈信息掌握被害人经常使用网上银行业务后,侦查员判断,被害人的电脑极有可能被黑客侵入并安装木马程序,从而窃取银行帐号.密码和认证证书,导致存款被盗. 银行转帐记录显示,被害人的两张信用卡内的1 ...
  • [最科技讯]最近热得匪夷所思的除了重庆的天气,就属即将闪亮登场的“微信5.0”了.2012年末封杀暴露美女,2013年初重点封杀广告,而今年3月则主要打击公号互推,就在最近几天貌似有多家接淘宝广告的公号惨遭封杀.   微信多次封杀微信营销账号的举动,好像是在为“微信5.0”清扫道路,阿里认为腾讯推微 ...
  • http://www.2cto.com/Article/201110/109037.html   在我的第一篇里埋了个坑,没有详细说CSP策略.   http://www.2cto.com/Article/201110/109038.html 而最后一篇其实也埋了个坑,没有详细说拦截方式.   实际 ...
  • 维基的简介:Paxos算法是莱斯利·兰伯特(Leslie Lamport,就是 LaTeX 中的"La",此人现在在微软研究院)于1990年提出的一种基于消息传递且具有高度容错特性的一致性算法. Paxos算法目前在Google的Chubby.MegaStore.Spanner等 ...
  • 前几天用微信支付预约了小米三,以为没有多少人会开通微信抢手机,于是并不在意,等今天再去抢的时候,发现已经卖光,让我对觉得不可思议.后来看新闻,有630W人用微信支付参与预约.先无论这个数字是否有水分,但是至少说明这次微信支付获得了非常大的关注度. 在微信5.0之前,就听说微信要推出支付,从当时的想法 ...
  • <%@ page language="java" contentType="text/html; charset=UTF-8"       pageEncoding="UTF-8"%>   <!DOCTYPE html&g ...
一周排行
  •         今天我们放松放松,谈谈不同的话题:汽车的未来会是什么样?        我们考虑一个问题,类似于百度地图.谷歌地图的实时路况是如何实现的?        答案可能有如下几个:        1.  交 ...
  • 下载BlazeDS.war 解压后文件目录如下: Lib下保存jar包: Flex中保存配置文件: Web.xml为配置文件: <servlet> <servlet-name>MessageB ...
  • 常用KEY: 1. 监控端口 net.tcp.port[,3306] 2. 监控进程 proc.num[mysqld] 3. 查看CPU核数 system.cpu.num 4. 查看系统的系统启动时间和当前时间 sy ...
  •   多线程 信号驱动I/0和异步I/0的区别 信号驱动I/0是指进程预先告知内核,使得当某个描述字上发生某事时,内核使用信号通知相关进程. 异步I/0是进程执行I/0系统调用(比如读或者写),内核启动I/0操作后立刻 ...
  • 一.存储过程 用途 用于执行某项操作,命名的 PL/SQL 块,能够接受传递的参数,能够被调用. 简述 命名的PL/SQL块 能够接受参数 能够被重复调用 用于执行某项操作 存储在数据库中 二.过程的参数 有三种 1 ...
  • 测试短网址:http://dwz.cn/ 生成短网址 $ch=curl_init(); curl_setopt($ch,CURLOPT_URL,"http://dwz.cn/create.php" ...
  • stackoverflow上看到的一个回答,概念性介绍为主,总结的不错. 主要就是两种,礼貌的做法是在robots.txt文件中设置允许爬虫爬取的内容:粗暴的做法又分为两种,一种是过滤user agent,另一种是布 ...
  • 例子:数组 1, 2, 4, 7, 10, 11, 7, 12, 6, 7, 16, 18, 19 只要对下标3到9之间的元素排序,就能使整个数组有序 思路是: // Left: 1, 2, 4, 7, 10, 11 ...
  • 1 //有关运算符重载 2 //实现一个复数之间的相加 3 #include<iostream> 4 using namespace std; 5 class Complex 6 { 7 public: ...
  •   <?xml version="1.0" encoding="utf-8"?><mx:Application xmlns:mx="http://w ...