linux内核编译常见指令介绍

来源:互联网 发布:fuzz直播软件下载 编辑:程序博客网 时间:2024/04/29 03:36

这次主要说一下Linux(RedHat9)内核的升级 [主版本].[次版本].[修订版本]-[附版本] 2 4 20 8 

1. 如果次版本是奇数的话,例如2.3, 2.5 等等,那表示他是一个『测试性质功能的核心版本』这种核心通常是在推出稳定版本的核心之前,用来给developer ( 核心维护更新测试者!测试用的! 虽然功能较为强大,但是是属于测试性质,可能会有些许的bug 也说不定 

2. 如果次版本是偶数的话,例如2.2, 2.4, 2.6 等等,那表示他是一个经过测试之后才释出的稳 定核心版本,这种核心较为稳定不容易出错,比较适合一般个人或者是商业使用!

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

   设定编译模式目前的Kernel可以允许多种编译的模式,包括了:

             make config : 这种模式需要逐行输入所需要设定的项目,无法往前修改设定,目前很少 使用这种方式来设定Kernel 的项目了  

            make xconfig: 这种模式则是使用X-Window 为主要环境的设定模式!除非你有X-Window 在执行,  则没有办法使用这种模式    

            make menuconfig (推荐)这种模式有点像是文字界面的选单模式,较为简便,可以在纯文字界面下  是目前最常使用的模式  

                                       由于我们是在文字接口下工作,因此,我们就使用make menuconfig来进行核心的编译

    最底下的<Select> <Exit> <Help> :可以使用『左右键』来移动光标;上下键可以移动上面大框框部分的             maturity level options 那一行有箭头『---> 』则表示该行内部还有其它细项需要来设定的意思        

        当以『上下键』选择好想要设定的项目之后,并以『左右键』选择<Select>之后,按下『Enter

        就可以进入该项目去作更进一步的细部设定在细部项目的设定当中,如果前面有[ ] < > 符号时,该项目才可以选择,而选择可以使用『空格键』来选择若为[*] <*> 则表示编译进核心;若为<M>则表示编译成模块!尽量在不知道该项目为何时,且有模块可以选,那么就可以直接选择为模块当在细项目选择<Exit>,并按下Enter ,那么就可以离开基本上建议只要『上下左右空白及Enter』这六个按键就好了!,生成的这个文件是要用来做编译的  没有它就一切都无从开始开始编译

       make dep<==建立相依的属性关系!(依赖关系)

      make clean<==将旧的资料去除掉!(。o)

      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 配置选项很多,多看看,这些很重要升级就说到这里成功!!!!!!!!!!!!

 

 

原创粉丝点击