- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux操作系统10
Linux操作系统 北京邮电大学 电信工程学院计算中心 编译系统内核 编译或不编译内核的原因 编译(或者升级)内核 编译或者不编译内核的原因 编译的原因 运行一个程序,但是操作系统不支持该程序需要的功能。 某个用户需要的内核功能—比如说用户的机器中装有1GB到2GB容量之间的RAM系统内存,只能重新编译经过改动的内核才能够激活它。 用户希望对内核进行优化。 内核升级(驱动、BUG、意愿、功能、安全、有时间进行升级) 为什么不编译 如果只是想给内核加上很少数量的功能的话,就没有必要进行编译 编译内核可能会遇到的困难:面对众多的选项 编译(或升级)内核 确定内核版本 uname –r 确定内核是测试版还是正式版 按照下面的方法确定内核是测试版还是正式版: 1) 忽略句号”.”前的第一个数字。 2) 查看紧跟在句号”.”后面的第二个数字。 在实验性版本中,紧跟在第一个句号后面的第一个数字是一个奇数。 在成熟版本中,紧跟在第一个句号后面的第一个数字是一个偶数。 举例来说,内核版本2.2.5-15是成熟版本,而版本2.3.4-12是实验性版本 找到内核源代码 一些可以找到内核源代码或者解答内核方面问题的地方: / 为内核源代码打补丁 内核经常需要小规模地升级。每次升级修复一个特定的bug,增加一个新的驱动程序或者功能,或者实现其他任务。 1) 下载主版本的源代码和升级到新版本需要的每一个补丁的源代码。 2) 使用c d命令把路径切换到/usr/src目录。 3) 使用l s命令列出目录中的内容清单。如果其中有一个/usr/src/linux-version-ext目录已经存在的话,一般情况这就是正在已经运行的内核源代码。 4) 输入“mkdir linux-newversion-ext”命令建立一个新的源代码目录。 为内核源代码打补丁 5) 把下载的源代码和补丁都拷贝到这个目录中。 6) 使用tar命令对源代码进行解包操作。 7) 每一个补丁都应该分别并按顺序来处理。使用tar命令对第一个补丁进行解包操作。 8) 使用patch命令把这个补丁打到源代码中去。输入“patch -p0 original patchname”命令。 9) 依次打补丁 10) 准备编译 注意:在源代码中有时候会包括有一个名为kernel-patch的命令脚本程序,该程序的功能是按顺序打所有的补丁。 编译内核 1) 获取需要安装的内核源代码。 2) 使用tar命令把源代码解包到/usr/src/linux-version-ext目录 3) 使用cd命令把路径切换到这个目录。 4) 选择你想使用的内核配置工具程序: 图形化功能最少,又很乏味的工具是config程序 一个图形化的工具是menuconfig程序 用于对内核进行配置的X工具总是最流行的,它叫做xconfig Make [config|menuconfig|xconfig] 保存并退出内核配置程序之后,就已经有了用来配置内核设置值了。 编译内核 5) 输入“make dep”命令建立依赖关系表,它定义了包括在内核源代码中的某个特定文件如果发生了变化,就需要修改哪一个文件。 6) 输入“make clean”命令删除安装过程中产生的大量临时文件。 7) 输入“make bzImage”命令完成建立新内核的过程。 8) 输入“make modules”命令编译内核模块并把它们存放到相应的位置。这是那些需要加载或者卸载的内核模块,另外还有一些固定加载的。 9) 安装内核 安装内核 简单(自动)方法:make install make module_install reboot 手工方法: 1) 使用ls命令列出/boot目录中的内容。 2) 如果已经有一个名为vmlinuz存在,使用mv命令把它改名为vmlinuz-version-ext(加上当前运行的内核版本号)。 3) 使用cp命令把在刚才的编译过程中生成的bzImage文件拷贝到/boot目录中。这个文件可以在/usr/src/LINUX_PATH/arch/i386/boot/目录中找到。如果它不在那里,使用find命令找出它来。 4) 把/boot目录中的bzImage文件改名为“vmlinuz”。 5) 把/usr/src/linux/System.map文件拷贝到/boot目录。 安装内核 6) 把路径切换回/usr/src/LINUX_PATH目录。 7) 输入“make module_install”命令把内核模块存放到相应的位置。 8) 如果系统是从一个SCSI硬盘上引导启动的,输入“ mkinitrd /boot/initrd-version-ext version-ext”命令确保SCSI模块在引导过程中能够被及时加载。如果不从S
您可能关注的文档
最近下载
- 《市政排水管道气囊封堵施工规程》.pdf
- TOPRAAD920印刷模切开槽机.pdf VIP
- 单相整流电路建模与仿真.doc VIP
- 缺血性脑血管病临床管理指南解读.pptx VIP
- 工程概算预算审核方案(3篇).docx VIP
- 神经重症气管切开患者气道功能康复与管理专家共识2024.pptx VIP
- 2025年监理工程师之监理概论考试题库及答案(名师系列).docx VIP
- 2025年监理工程师之监理概论押题练习试卷B卷附答案 .pdf VIP
- 2025年监理工程师之监理概论考试题库及完整答案(必刷).docx VIP
- 2025年监理工程师之监理概论押题练习试卷A卷附答案 .pdf VIP
文档评论(0)