欢迎来到天天文库
浏览记录
ID:30368049
大小:117.67 KB
页数:25页
时间:2018-12-29
《《内核编译详解》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、内核编译详解#makemrproper该命令保证源代码目录下没有不正确的.o文件(即object文件,编译c语言时生成的,目的是下一步编译成可执行码时link之用)以及文件的相互倚赖关系.第一次编译刚下载的源码包不用此命令,但如果多次使用这些源码编译内核,那么一定要先运行本命令.#makexconfig在XWindow下编译内核。#makemenuconfig在文本模式下编译:#makedep链接程序代码与函数库。实际上读取配置过程生成的配置文件,来创建对应于配置的依赖关系树,从而决定哪些需要编译而那些不需要。#
2、makeclean完成删除前面步骤留下的文件,以避免出现一些错误#makebzImage使用gzip压缩、编译系统内核#makemodules开始编译外挂模块。即生成相应的模块#makemodules_install把模块拷贝到需要的目录中。即安装编译完成的模块。#depmod–a创建模块的链接。生成模块间的依赖关系,这样你启动新内核之后,使用modprobe命令加载模块时就能正确地定位模块。编译完成的系统内核所在位置如下:lbzImage文件放在/usr/src/linux/arch/i386/boot目录下l
3、各个外挂模块文件放置在/usr/src/linux/modules目录下l已安装的模块文件放置在/lib/modules/(内核版本)目录下接下来就是根据自己的实际情况进行选择:需要注意的事:1:如果你的linux的文件格式是ext3的那么文件系统中的ext3一定要选择上,不要作为可选择模块。不这样的话,你的系统就可能启不来。2:本机的一些必要的驱动程序最好也直接加在,不要编译在可加载模块中。因此在编译内核之前最后把准备工作做好,看清楚自己机子的硬件设备、驱动程序。3:下面给出一些编译内核的具体选项的内容和含义,
4、不同版本的可能选项有所不同具体可以使用"?"来看某项功能是否对自己有用。4.选择相应的配置时,有三种选择,它们分别代表的含义如下:Y--将该功能编译进内核N--不将该功能编译进内核M--将该功能编译成可以在需要时动态插入到内核中的模块2.4.22内核例:1.Codematurityleveloptions代码成熟等级。1.1.promptfordevelopmentand/orincompletecode/drivers.在Linux的世界里,每天都有许多人为它发展支持的driver和加强它的核心。但是有些dri
5、ver还没进入稳定的阶段。但其作者很欢迎其他人去测试这些driver并提出一些bugs。很多参考书上说这是那些开发人员认为还不是很稳定的功能。但是我个人认为,这个是应该选的一个选项,系统默认是N,我建议还是选择Y,因为会使性能有所提高。如果要减少内核的大小可以把所有后缀试验性质的代码全部不选。2.Loadablemodulesupport:对模块的支持。2.1.Enableloadablemodulesupport.启动动态载入额外模块的功能,系统默认为Y,建议选择该功能。2.2.Setversioninform
6、ationonallmodulesymbols.通常,我们更新核心版本之后,模块要重新的编译。这个选项可以为某个版本的内核编译的模块在另一个内核下使用,但通常用不到,可以不选,系统默认为Y。2.3.Kernelmoduleloader.让内核在启动时有自己装入必需模块的能力,建议选上。注意:在开机就会mount上来的partition的FS、devicedriver记得要compiler进kernel,不能把它弄成modules。请不要夸张到为了完全模组化而忘了把ext2fs和IDEdirvercompiler进
7、kernel里。通常的建议是如果可能,将内核代码编译成可加载模块,因为这样可以使内核更小,而且更稳定。警告!千万不要将文件系统(FileSystem)部分的代码编译为可加载模块,如果你犯了这个错误,将文件系统(FileSystem)部分的代码编译为可加载模块,结果将是内核无法读取它自己的文件系统。然后内核无法加载它自己的配置文件--一些很明显是在正常启动Linux时所必需的东西。另:/etc/conf.modules与/lib/modules/(内核版本)/modules.dep,这两个文件是有关模块方面的配置文
8、件。3.Processortypeandfeatures:处理器类型和特色3.1.Processorfamily.它会对每种CPU做最佳化,所以要选择正确的CPU否则会对该机的性能有一定的影响。不过,如果您的gCC编译器是2.7.0版以前的。那么只能选择386或是486。通常"/dev/cpu"选项更高级,多数用户并不需要选择它。需要注意的是不能选择比你的CPU类型还高级
此文档下载收益归作者所有