Linux内核修改与编译图文教程.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux内核修改与编译图文教程.doc

Linux 内核修改与编译图文教程 实验目的 针对Ubuntu10.04中,通过下载新的内核版本,并且修改新版本内核中的系统调用看,然后,在其系统中编译,加载新内核。 任务概述 2.1 下载新内核 / 2.2 修改新内核系统调用 添加新的系统调用函数,用来判断输入数据的奇偶性。 2.3 进行新内核编译 通过修改新版内核后,进行加载编译。最后通过编写测试程序进行测试 实验步骤 3.1 准备工作 查看系统先前内核版本: (终端下)使用命令:uname -r 3.2 下载最新内核 我这里使用的内核版本是 3.3 解压新版内核 将新版内核复制到“/usr/src”目录下 在终端下用命令:cd /usr/src进入到该文件目录 解压内核:linux-2.6.36.tar.bz2,在终端进入cd /usr/src目录输入一下命令: bzip2 -d linux-2.6.36.tar.bz2 tar -xvf linux-2.6.36.tar 文件将解压到/usr/src/linux目录中 使用命令:ln -s linux-2.6.36 linux 3.4 安装必要的工具 在终端下输入一下命令: sudo apt-get install build-essential kernel-package libncurses5-dev fakeroot  sudo aptitude install libqt3-headers libqt3-mt-dev libqt3-compat-headers libqt3-mt 3.5 内核修改 3.5.1添加新的系统调用 在文件:usr/src/ linux /arch//x86/kernel/syscall_table_32.S最后增加一个系统表项: .long sys_mycall 3.5.2 添加系统调用号 usr/src/linux/include/ asm-generic /unistd.h中添加: #define _NR_mycall 245 #define NR_syscalls (343为先前在系统调用表中占用的位置,即为新添加的系统调用分配系统调用号为343) 3.5.3添加系统调用的处理函数 在usr/src/linux/kernel/sys.c中添加以下处理函数: 函数源码如下:(判断奇偶数) asmlinkage int sys_mycall(int n) { if(n%2==0) return 1; else return 0; } 3.6 清除从前编译内核时残留的.o 文件和不必要的关联(如果从前没有进行内核编译的话,则可以省略这一步) 终端下切换至cd /usr/src/linux 输入以下命令: 3.7 asm、linux和scsi等链接是指向要升级的内核源代码 # cd /usr/include/ # rm -r asm linux scsi # ln -s /usr/src/linux/include/asm-generic asm # ln -s /usr/src/linux/include/linux linux # ln -s /usr/src/linux/include/scsi scsi 3.8配置内核,修改相关参数 3.8.1 如何配置内核参数? y:将该功能编译进内核。 n:不将该功能编译进内核。 m:将该功能编译成在需要时动态插入到内核中的模块。 单击“Main Menu”按钮,返回主配置窗口; 单击“Next”按钮,配置下一个配置项; 单击“Prev”按钮,配置上一个配置项。 选择的原则是将与内核其它部分关系较远且不经常使用的部分功能代码编译成为可加载模块,有利于缩减内核,减少内核消耗的内存。与内核关心紧密而且经常使用的部分功能代码直接编译到内核中。 (终端下)修改路径为:cd /usr/src/linux 在图形界面下,make xconfig 字符界面下,make menuconfig 3.8.2 修改内核范围(更新后能否启动至关重要): 1)文件系统 请务必要选中ext3文件系统,   File systems---   [*] Ext3 journalling file system support   [*] Ext3 Security Labels   [*] JBD (ext3) debugging support (一定要修改)   以上三项一定要选上,而且要内建(即标*). 这个非常重要,在配置完后一定要检查一下.config文件有没有CONFIG_EXT3_FS=y这一项. 如果不是CONFIG_EXT3_FS=y而是CONFIG_EXT3_FS=m

文档评论(0)

phljianjian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档