Linux内核模块的添加.doc_第1页
Linux内核模块的添加.doc_第2页
Linux内核模块的添加.doc_第3页
Linux内核模块的添加.doc_第4页
Linux内核模块的添加.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一:Linux内核模块的添加(一)静态加载:把组件都添加进内核文件中,在目录kongfig文件中增加新代码对应的编译选项,在Makefile文件中添加编译条目。(二)动态加载:下载并安装Linux内核模板:make modules _install ARCH = arm CROSS _COMPILE =arm-linux,编写Makefile。以hello word为例来实现这两种方法:静态加载:(1)hello word.c源代码#include #include static int hello_init(void)printk(KERN_INFO Hello World entern);return 0;static void hello_exit(void)printk(KERN_INFO Hello World exitn );module_init(hello_init);module_exit(hello_exit);MODULE_AUTHOR(Barry Song );MODULE_LICENSE(Dual BSD/GPL);MODULE_DESCRIPTION(A simple Hello World Module);MODULE_ALIAS(a simplest module);把所有的组件都翻译进内核文件,即生成zImage或bzImage(1)进入linux-2.6.32.2-mini2440内核(2)进入/drivers建立Hello文件夹,在Hello文件夹里面建立hello.c,Makefile,KconfigMakefiel:obj-y(CONFIG_HELLO_WORD) +=hello.oKconfig:config hello_wordtristate TEST hello wordhelp usually you have to make (3)在drivers里面的Makefile添加:obj-y(CONFIG_HELLO_WORD)+= Hello/(4)在drivers里面的Kconfig添加source drivers/Hello/Kconfig(5)输入make menuconfig进入内核配置界面(6)然后输入y退出并保存(7)生成了.config文件为配置的记录(8)在make bzImage进行编译内核(9)然后在arch/arm/boot/下生成bzImage动态加载:直接编译成PC机X86的内核模块(1)模块加载函数:insmod ;模块卸载函数:rmmod;查看模块函数:lsmod(2)模块可选信息:模块参数、模块导出符号、模块作者等信息声明(3)在/work里面加入hello.c文件和Makefile文件Makefile 的内容为:ifneq ($(KERNELRELEASE),)obj-m :=hello.o 和要编译的模块的名字一致elseKDIR:= /lib/modules/3.5.0-17-generic/build 以便寻找内核源码目录下的Mmakefileall:make -C $(KDIR) M=$(PWD) modules 用KDIR目录下的Makefile来编译当前目录下的模块clean:rm -f *.ko *.o *.mod.o *.mod.c .symversendif(4)、执行make 命令(5)、然后查看hello文件夹生成hello.ko文件(6)执行insmod hello.ko进行加载模块:(7)lsmod查看模块查看加载模块输出信息(8)删除rmmod模块(9)查看删除模块输出信息(10)这样,就完成了对模块的添加和删除。总结:通过对Linux内核模块的添加和删除实验,我学会了关于内核添加和删除的很多相关知识,首先,把组件编译进内核中,如果建立的一个文件夹,需要使建立的文件夹里的Kconfig和Makefile生效,需要在上一级目录里修改Kconfig和Makefile,这样才能使新建立的Kconfig和Makefile 生效。其次,在模块

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论