Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1080054
  • 博文数量: 185
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2640
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-01 13:46
个人简介

鸟在笼中,恨关羽不能张飞;Survival of the fittest

文章分类

全部博文(185)

分类: LINUX

2012-05-15 22:17:49


原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://blog.chinaunix.net/uid-10915175-id-3209244.html

这次主要说一下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 来进行核心的编译
 
最底下的 之后,按下『Enter 』
就可以进入该项目去作更进一步的细部设定
 
在细部项目的设定当中,如果前面有[ ] 或< > 符号时,该项目才可以选择,而选择可以
使用『空格键』来选择
 
若为[*] <*> 则表示编译进核心;若为 则表示编译成模块!尽量在不知道该项目为何时,
且有模块可以选,那么就可以直接选择为模块
 
当在细项目选择 后,并按下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 配置选项很多,多看看,这些很重要
 
升级就说到这里
 
 
成功!!!!!!!!!!!!

本文出自 “单身贵族” 博客,请务必保留此出处http://blog.chinaunix.net/uid-10915175-id-3209244.html
附件下载:
阅读(2314) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~