网站大量收购独家精品文档,联系QQ:2885784924

Linux内核模块的添加..doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux内核模块的添加.

实验一:Linux内核模块的添加 (一)静态加载:把组件都进内核文件 (二:以hello word为例来实现这两种方法: : (1)hello word.c源代码 #include linux/init.h #include linux/module.h static int hello_init(void) { printk(KERN_INFO Hello World enter\n); return 0; } static void hello_exit(void) { printk(KERN_INFO Hello World exit\n ); } module_init(hello_init); module_exit(hello_exit); MODULE_AUTHOR(Barry Song 21cnbao@); MODULE_LICENSE(Dual BSD/GPL); MODULE_DESCRIPTION(A simple Hello World Module); MODULE_ALIAS(a simplest module); 把所有的组件都翻译进内核文件,即生成zImage或bzImage (1)进入linux--mini2440内核 (2)进入/drivers建立Hello文件夹,在Hello文件夹里面建立hello.c,Makefile,Kconfig Makefielobj-y(CONFIG_HELLO_WORD) +=hello.o Kconfig:config hello_word tristate TEST hello word help 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进行编译内核 然后在arch/arm/boot/下生成bzImage :直接编译成PC机X86的内核模块 (1)模块加载函数:insmod 模块卸载函数:rmmod查看模块函数:lsmod (2)模块可选信息:模块参数、模块导出符号、模块作者等信息声明 (3)在/work里面加入hello.c文件和Makefile文件 Makefile 的内容为:ifneq ($(KERNELRELEASE),) obj-m :=hello.o 和要编译的模块的名字一致 else KDIR:= /lib/modules/3.5.0-17-generic/build 以便寻找内核源码目录下的Mmakefile all: make -C $(KDIR) M=$(PWD) modules 用KDIR目录下的Makefile来编译当前目录下的模块 clean: rm -f *.ko *.o *.mod.o *.mod.c .symvers endif (4)、执行make 命令 (5)、然后查看hello文件夹生成hello.ko文件 (6)执行insmod hello.ko进行加载模块: 7)lsmod查看模块查看加载模块输出信息 (8)删除rmmod模块 (9)查看删除模块输出信息 模块和删除 总结:

文档评论(0)

xznh + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档