linux内核修改与编译图文教程

linux内核修改与编译图文教程

ID:14101631

大小:1.53 MB

页数:16页

时间:2018-07-26

linux内核修改与编译图文教程_第1页
linux内核修改与编译图文教程_第2页
linux内核修改与编译图文教程_第3页
linux内核修改与编译图文教程_第4页
linux内核修改与编译图文教程_第5页
资源描述:

《linux内核修改与编译图文教程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Linux内核修改与编译图文教程11、实验目的针对Ubuntu10.04中,通过下载新的内核版本,并且修改新版本内核中的系统调用看,然后,在其系统中编译,加载新内核。2、任务概述2.1下载新内核http://www.kernel.org/2.2修改新内核系统调用添加新的系统调用函数,用来判断输入数据的奇偶性。2.3进行新内核编译通过修改新版内核后,进行加载编译。最后通过编写测试程序进行测试3、实验步骤3.1准备工作查看系统先前内核版本:(终端下)使用命令:uname-r153.2下载最新内核我这里使用的内核版本是3.3解压新版内核将新版

2、内核复制到“/usr/src”目录下在终端下用命令:cd/usr/src进入到该文件目录解压内核:linux-2.6.36.tar.bz2,在终端进入cd/usr/src目录输入一下命令:bzip2-dlinux-2.6.36.tar.bz2tar-xvflinux-2.6.36.tar文件将解压到/usr/src/linux目录中15使用命令:ln-slinux-2.6.36linux3.4安装必要的工具在终端下输入一下命令:sudoapt-getinstallbuild-essentialkernel-packagelibncurs

3、es5-devfakeroot sudoaptitudeinstalllibqt3-headerslibqt3-mt-devlibqt3-compat-headerslibqt3-mt153.5内核修改3.5.1添加新的系统调用在文件:usr/src/linux/arch//x86/kernel/syscall_table_32.S最后增加一个系统表项:.longsys_mycall3.5.2添加系统调用号usr/src/linux/include/asm-generic/unistd.h中添加:#define_NR_mycall245

4、#defineNR_syscalls(343为先前在系统调用表中占用的位置,即为新添加的系统调用分配系统调用号为343)153.5.3添加系统调用的处理函数在usr/src/linux/kernel/sys.c中添加以下处理函数:函数源码如下:(判断奇偶数)asmlinkageintsys_mycall(intn){if(n%2==0)return1;elsereturn0;}3.6清除从前编译内核时残留的.o文件和不必要的关联(如果从前没有进行内核编译的话,则可以省略这一步)终端下切换至cd/usr/src/linux输入以下命令:1

5、53.7asm、linux和scsi等链接是指向要升级的内核源代码#cd/usr/include/#rm-rasmlinuxscsi#ln-s/usr/src/linux/include/asm-genericasm#ln-s/usr/src/linux/include/linuxlinux#ln-s/usr/src/linux/include/scsiscsi153.8配置内核,修改相关参数3.8.1如何配置内核参数?y:将该功能编译进内核。n:不将该功能编译进内核。m:将该功能编译成在需要时动态插入到内核中的模块。单击“MainMe

6、nu”按钮,返回主配置窗口;单击“Next”按钮,配置下一个配置项;单击“Prev”按钮,配置上一个配置项。选择的原则是将与内核其它部分关系较远且不经常使用的部分功能代码编译成为可加载模块,有利于缩减内核,减少内核消耗的内存。与内核关心紧密而且经常使用的部分功能代码直接编译到内核中。(终端下)修改路径为:cd/usr/src/linux在图形界面下,makexconfig15字符界面下,makemenuconfig153.8.2修改内核范围(更新后能否启动至关重要):1)文件系统请务必要选中ext3文件系统,  Filesystems-

7、-->  [*]Ext3journallingfilesystemsupport  [*]Ext3SecurityLabels  [*]JBD(ext3)debuggingsupport(一定要修改)  以上三项一定要选上,而且要内建(即标*).这个非常重要,在配置完后一定要检查一下.config文件有没有"CONFIG_EXT3_FS=y"这一项.如果不是"CONFIG_EXT3_FS=y"而是"CONFIG_EXT3_FS=m",你在运行内核时就会遇上以下错误:pivotroot:pivot_root(/sysroot,/sysro

8、ot/initrd)failed2)网卡驱动(在Ubuntu10.04中已默认选择,可省略这一步)  请务必把自己网卡对应的驱动编译进内核,比较普遍的网卡是realtek8139,以下就是这种网卡的配置,以

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。