您的位置:首页 > 运维架构 > Linux

linux视频教程之Linux(RedHat9)内核的升级

2012-02-29 11:37 267 查看
这次主要说一下Linux(RedHat9)内核的升级

[主版本].[次版本].[修订版本]-[附版本]
2 4 20 8

1. 如果次版本是奇数的话,例如2.3, 2.5 等等,那表示他是一个『测试性质功能的核心版本』,
这种核心通常是在推出稳定版本的核心之前,用来给developer ( 核心维护更新测试者!) 测试用的!
虽然功能较为强大,但是由于是属于测试性质,所以可能会有些许的bug 也说不定
2. 如果次版本是偶数的话,例如2.2, 2.4, 2.6 等等,那表示他是一个经过测试之后才释出的稳
定核心版本,这种核心较为稳定不容易出错,比较适合一般个人或者是商业使用!

开始编译之前:
由于害怕不小心前面有人已经先编译过了核心,则由于编译过程当中会产生目的档
案(档名为.o ),为了避免此一问题,请先执行make mrproper 这个指令来清理代码树

设定编译模式:
目前的Kernel可以允许多种编译的模式,包括了:
make config : 这种模式需要逐行输入所需要设定的项目,无法往前修改设定,所以目前很少
       使用这种方式来设定Kernel 的项目了
make xconfig: 这种模式则是使用X-Window 为主要环境的设定模式!除非你有X-Window
       在执行,否则没有办法使用这种模式
make menuconfig 这种模式有点像是文字界面的选单模式,较为简便,而且可以在纯文字界面下
面执行编辑动作!是目前最常使用的模式
由于我们是在文字接口下工作,因此,我们就使用make menuconfig 来进行核心的编译

最底下的<Select> <Exit> <Help> :可以使用『左右键』来移动光标;

上下键可以移动上面大框框部分的Code maturity level options 那一行
有箭头『---> 』则表示该行内部还有其它细项需要来设定的意思

当以『上下键』选择好想要设定的项目之后,并以『左右键』选择<Select> 之后,按下『Enter 』
就可以进入该项目去作更进一步的细部设定

在细部项目的设定当中,如果前面有[ ] 或< > 符号时,该项目才可以选择,而选择可以
使用『空格键』来选择

若为[*] <*> 则表示编译进核心;若为<M> 则表示编译成模块!尽量在不知道该项目为何时,
且有模块可以选,那么就可以直接选择为模块

当在细项目选择<Exit> 后,并按下Enter ,那么就可以离开

基本上建议只要『上下左右空白及Enter 』这六个按键就好了!

看,生成的这个文件是要用来做编译的  没有它就一切都无从开始

开始编译

make dep        <==建立相依的属性关系!
make clean       <==将旧的资料去除掉!
make bzImage      <==开始编译核心!这个核心是经过压缩的,此外,这个步骤也很长!
make modules      <==开始编译模块!这个动作视您刚刚编译的模块数量!
make modules_install  <==好了!将数据给他安装在/lib/modules/`uname -r` 里面啰!
make install      <==嗯!就将刚刚bzImage 建立完成的核心给他安装上来!

make dep :这个动作在进行,将您在上一节所选择的项目当中,属于模块的东西进行相依属性的建立
以方便未来软件或程序进行的时候,模块的呼叫
make clean :这个动作会将您前一次编译的目标文件( *.o 的档案) 给他去除,
所以编译的内容才会是新的核心!
虽说这个书上没有,编译也可以成功,但个人建议,还是用下好
      如果是已经编译好几次了,那一定要用这样
make bzImage :注意喔!那个I 是『i 』的大写字符.这个步骤主要在产生可开机的核心档案,
也就是我们再开机程序当中提到好多次的vmlinuz 那个档案!但是由于目前的
核心档案都很大,因此都会经过压缩的程序.所以,编译出来的核心档案放置的
地点在底下的目录当中:/usr/src/linux/arch/i386/boot/bzImage
make modules :这个步骤在编译模块! 
make modules_install :这个步骤在安装模块!那么模块安装在哪里呢?
就是我们之前提过的,在/lib/modules/`uname –r` 里面,
 

由于全部的升级时间很长,约近2小时,当然也要看机器的配置而定,所以这里不再演示过程
只要步骤顺序没错的话,都是可以成功的。如果在编译的过程当中发生问题的话,通常的
可能就是挑选的项目有点问题,这个时候请重新再挑选一次设定内容『make menuconfig 』
通常编译都可以成功的!

注意:在编译第二次之前,先把/lib/modules/下的第一次失败的那个版本的文件夹删除。
用这个举例,如果你第一次升级失败的话,要把2.4.20-8custom这个文件夹删除,然后
再一次升级,否则很容易产生错误

第一个就是编译成功后产生的

虽说书上还有一个 根据原有配置文件生成的新配置文件  这样的内核定制方式
但只是在实验里用用就好了,如果你是要升级内核的话,这样做不太好
所以,做实验用这个

看,有2个了,如果你没升级之前就一个

OK了,注意的地方也说过了
在升级的过程中,会有很多不经常见的错误,多注意
再一个,make menuconfig 配置选项很多,多看看,这些很重要

升级就说到这里

成功!!!!!!!!!!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: