内核编译42190.doc

上传人:博****1 文档编号:544797196 上传时间:2023-01-02 格式:DOC 页数:23 大小:124.51KB
返回 下载 相关 举报
内核编译42190.doc_第1页
第1页 / 共23页
内核编译42190.doc_第2页
第2页 / 共23页
内核编译42190.doc_第3页
第3页 / 共23页
内核编译42190.doc_第4页
第4页 / 共23页
内核编译42190.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《内核编译42190.doc》由会员分享,可在线阅读,更多相关《内核编译42190.doc(23页珍藏版)》请在金锄头文库上搜索。

1、现在流行的ODL(only disk linux)中做内核部分,那些文章不介绍此点内容。我正在做,完工后整理资料。BY THE WAY ,想成为LINUX高手吗?你需要熟练掌握KERNEL COMPILE 、XCONFIGRATER、LINUXCONFIG、 SAMBA四大利器,你随时可以找到后三者的大量相关资料,但内核编译就只好啃为数不多的英文了。笔者耗时3月,搜集并整理大量资料,在儿童节前连续工作18个小时后,给小企鹅送了这份礼物。笔者自信是目前为止KERNEL编译方面最完备的中文资料(将不断翻译补充),这可是毕业论文哪!为什么要放网上呢?首先找这方面资料太难了,文章对各位LINUX爱好者

2、会有所帮助。其次,取之于网用之于网。欢迎使用这篇文章,请随便引用,这才符合LINUX自由软件的精神嘛,不过别忘了提提我的名字,就算为我的辛苦付了点稿酬。介于内核方面资料较少,欢迎在这篇文章中添加和修改内容,但不要过多删除,笔者列表要加入你的名字,让我们为把它变成数百页的资料而努力。OK,交个朋友吧, 我是玉玉安,email : 目录序言第一章 内核编译的基础第一节内核简介第二节内核版本第三节编译原因第四节准备工作第二章 内核编译的流程第一节编译开始 第二节配置内核 核心内容1.代码成熟等级2.处理器类型和特色3.对模块的支持4.基本的选择5.即插即用支持 6.块设备支持7.网络选项8.电话支持

3、9.SCSI设备的支持 10.I2O接口适配器11.网络设备支持 12.配置业余无线广播13.红外支持14.ISDN的文件系统 15.旧型光驱类型(非IDE界面的光驱)16.字符设备17.USB支持18.文件系统 19.控制台驱动20.声卡驱动21.Kernel hacking 第二节 内核版本 由于Linux的源程序是完全公开的,任何人只要遵循GPL,就可以对内核加以修改并发布给他人使用。Linux的开发采用的是集市模型(bazaar,与cathedral-教堂模型-对应),为了确保这些无序的开发过程能够有序地进行,Linux采用了双树系统。一个树是稳定树(stable tree),另一个树

4、是非稳定树(unstable tree)或者开发树(development tree)。一些新特性、实验性改进等都将首先在开发树中进行。如果在开发树中所做的改进也可以应用于稳定树,那么在开发树中经过测试以后,在稳定树中将进行相同的改进。一旦开发树经过了足够的发展,开发树就会成为新的稳定树。开发数就体现在源程序的版本号中;源程序版本号的形式为x.y.z:对于稳定树来说,y是偶数;对于开发树来说,y比相应的稳定树大一(因此,是奇数)。确定是以 root 的身份签入,然后cd 到 /usr/src 。uname -r 这个指令将会显示版本。内核版本的更新可以访问。第三节 编译原因Linux作为一个自

5、由软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译内核。通常,更新的内核会支持更多的硬件,具备更好的进程管理能力,运行速度更快、更稳定,并且一般会修复老版本中发现的许多漏洞等,经常性地选择升级更新的系统内核是Linux使用者的必要操作内容。为了正确的合理地设置内核编译配置选项,从而只编译系统需要的功能的代码,一般主要有下面四个考虑:-自己定制编译的内核运行更快(具有更少的代码)-系统将拥有更多的内存(内核部分将不会被交换到虚拟内存中)-不需要的功能编译

6、进入内核可能会增加被系统攻击者利用的漏洞-将某种功能编译为模块方式会比编译到内核内的方式速度要慢一些以上是针对成熟的Linux套件如Redhat Linux而言,我的目的是为建造嵌入式Linux操作系统做准备,也是必由之路。第四节 准备工作第一部分 新版本内核的获取和更新Linux内核版本发布的官方网站是,国内各大ftp上一般都可以找到某些版本的内核。新版本的内核的发布有两种形式,一种是完整的内核版本,另外一种是patch文件,即补丁。完整的内核版本比较大,比如linux-2.4.0-test8.tar.bz2就有18M之多。完整内核版本一般是.tar.gz(.tgz)文件或者是.bz2文件,

7、二者分别是使用gzip或者bzip2进行压缩的文件,使用时需要解压缩。patch文件则比较小,一般只有几十K到几百K,极少的会超过1M。但是patch文件是针对于特定的版本的,需要找到自己对应的版本才能使用。编译内核需要root权限。把需要升级的内 拷贝到/usr/src/下(下文中以2.2.16的内核的linux-2.2.16tar.gz为例),命令为#cp linux-2.2.16tar.gz /usr/src先查看当前/usr/src的内容,注意到有一个linux的符号链接,它指向一个类似于linux-2.2.14(对应于现在使用的内核版本号)的目录。首先删除这个链接:#cd /usr/

8、src#rm -f linux 现在解压下载的源程序文件。如果所下载的是.tar.gz(.tgz)文件,使用命令:#tar -xzvf linux-2.2.16tar.gz如果下载的是.bz2文件,例如linux-2.2.16tar.bz2,使用命令#bzip2 -d linux-2.2.16tar.bz2#tar -xvf linux-2.2.16tar现在再来看一下/usr/src下的内容,发现现在有了一个名为linux的目录,里面就是需要升级到的版本的内核的源程序。还记得那个名为linux的链接么?之所以使用那个链接就是防止在升级内核的时候会不慎把原来版本内核的源程序给覆盖掉了。现在也需

9、要同样处理:#mv linux linux-2.2.16#ln -s linux-2.2.16 linux如果还下载了patch文件,比如patch-2.2.16,就可以进行patch操作(下面假设patch-2.2.16已经位于/usr/src目录下了,否则需要先把该文件拷贝到/usr/src下): #patch -p0 patch-2.2.16第二部分 准备主机板和相关硬件的说明手册其实也不用太详细,只要知道您的硬件是属于哪一类型就行了。例如:有一张SCSI卡,那就要知道这张卡的名字,有一台cd-rom,就要知道这台光驱是哪一种牌子的,是否为标准的IDE/ATAPI界面,还是另有专属接口卡

10、呢?或者,主机版是否有支持Triton芯片(通常586以上的电脑常有),这些信息能帮助我们,使得设定变得清楚且容易。因此,不管您有什么使用手册,准备好吧。即使现在不用,将来还是会用到的(设Xwindow system时要显示卡的手册)。第三部分 检查声卡的IRQ设定和其种类如果配有一张声卡,除了要知道卡的种类外(例如 Sound Blaster)还需要知道这张卡的IRQ地址。一般来说,卢卡的IRQ地址是5或7而IO地址则为220。DMA则l,不过,有时不同的声卡可能会有不同的设定。因为稍后的选项里,就会要填入这些数字。第四部分 编译核心的硬件需求在编译核心时,确定您的RAM最好在8MB以上,

11、否则可能会很慢而且问题会很多,记得查看swap有没有打开(用free指令)。此外,最好不要超频,不然很有可能会发生signal 11的错误,使得编到一半的核心停了下来,其实编译核心就好比编译程序一样,只是因为构成核心的程序太多了,因此我们能小心尽量小心。第二章 内核编译的流程概述编译的流程:编译开始- make mrproper;检查所需的连接配置核心编译核心编辑/etc/lilo.conf重新启动新核心重新启动机器 发现并修理故障(仔细看我的文章,应该没多少问题了)第一节 编译开始通常要运行的第一个命令是:#cd /usr/src/linux #make mrproper 该命令确保源代码目

12、录下没有不正确的目标.o文件以及文件的互相依赖。如使用刚下载的完整的源程序包进行编译,本步可以省略。而如果多次使用了这些源程序编译内核,那么最好要先运行一下这个命令。确保/usr/include/目录下的asm、linux和scsi等链接是指向要升级的内核源代码的。它们分别链向源代码目录下的真正的、该计算机体系结构(对于PC机来说,使用的体系结构是i386)所需要的真正的include子目录。如:asm指向/usr/src/linux/include/asm-i386等。若没有这些链接,就需要手工创建,按照下面的步骤进行:# cd /usr/include# rm -r asm linux s

13、csi# ln -s /usr/src/linux/include/asm-i386 asm# ln -s /usr/src/linux/include/linux linux# ln -s /usr/src/linux/include/scsi scsi这是配置非常重要的一部分。删除掉/usr/include下的asm、linux和scsi链接后,再创建新的链接指向新内核源代码目录下的同名的目录。这些头文件目录包含着保证内核在系统上正确编译所需要的重要的头文件。也是上面又在/usr/src下多余地创建了个名为linux的链接的原因之一. 一旦万事俱备,转到/usr/src/linux。现在你

14、也许想停下细读一下文档文件,实际上如果你有些特别的硬件,或几种光驱驱动程需要自己动手设置,他们通常这样做,当引导时这些驱动程序将给出警告,这并不碍事他们照常工作少,阅读扩展名为.txt .h .c的文件。通常我发现他们具有共性且易于配置。如果你不想冒险,你没必要做。记住你照样可以解开tar文件(或再次安装.rpm文件)恢复前的文件。 第二节 配置内核 核心内容接下来的内核配置过程比较烦琐,但是配置的适当与否与日后Linux的运行直接相关,有必要了解一下选项的设置。配置内核可以根据需要与爱好使用下面命令中的一个:#make config (基于文本的最为传统的配置界面,不推荐使用)#make m

15、enuconfig(基于文本选单的配置界面,字符终端下推荐使用,必须安装ncurses-dev和tk4-dev库) #make xconfig (基于图形窗口模式的配置界面,Xwindow下推荐使用)#make oldconfig (如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)如果不能使用Xwindow,那么就使用make menuconfig好了。界面虽然比上面一个差点,总比make config的要好多了。选择相应的配置时,有三种选择,它们分别代表的含义如下:Y-将该功能编译进内核N-不将该功能编译进内核M-将该功能编译成可以在需要时动态插入到内核中的模块 在每一个选项前都有个括号, 但有的是中括号有的是尖括

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号