内核模块的开发
来源:互联网 发布:移动网络电视首页 编辑:程序博客网 时间:2024/05/18 03:42
1.内核模块的三大要素
1.1头文件 <linux/init.h>和<linux/module.h>(和模块相关的)
1.2加载模块函数module_init():在insmod模块是会调用这个函数
ps它的返回值为0,如果返回非零值,就会认为出错
1.3卸载模块函数module_exit();同上
2.代码的编写
2.1申明
MODULE_LICENSE("遵守的协议")一般是GPL
MODULE_AUTHOR("作者")
MODULE_DESCRIPTIOM("模块功能描述")
MODULE_VERSION("v1.0")
2.2模块传递参数
module_param(name,type(字符串型用charp),perm)
2.3输出
而在模块程序编写中不使用printf而使用printk。例printk(KERN_WARNING”Hello World\n”)
2.4内核中导出使用的宏
EXPORT_SYMBOL()
EXPORT_SYMBOL_GPL()只能用于含有GPL许可证的
在其他程序调用extern
3.Makefile的编写
一般分为四部分
obj-m :=name1.o name2.o
name1-obj :=file1.c file2.c...(name1模块石由多个c文件组成)
KDIR :=/内核代码路径
all:
make -C $(KDIR) M=$(PWD) modules CROSS_COMPILE=arm-linux- ARCH=arm
进入KDIR中执行编译PWD中的模块命令
clean:
rm -f
4.第一次在板子卸载模块时提示没有目录
需要在lib/modules中有内核版本的目录
使用 mkdir -p /lib/modules/$(uname -r)
- 内核模块的开发
- 内核模块的开发
- 内核模块的开发
- Helloworld内核模块的开发
- 有关linux内核模块的开发
- 有关linux内核模块的开发
- 简单linux内核模块的开发
- Linux 驱动开发内核模块的添加
- Linux内核学习2:内核模块的开发
- Linux内核模块开发
- freeswitch 内核模块开发
- freeswitch内核模块开发
- Linux内核模块开发
- 内核模块开发基础
- linux内核模块开发
- 内核模块开发基础
- Linux内核模块开发
- Eclipse开发内核模块
- shell中条件判断if中的-a到-z的意思
- MVC 用EasyUI
- java代码
- UVA 10815 Andy's First Dictionary
- Early Z Rejection
- 内核模块的开发
- Android 发送Post请求上传图片(以InputStream为数据交互)
- FindBugs错误修改指南
- Java数据库操作
- MVC修改 (当前页面开启Dialog,不用Ifram)
- 卸载oracle11g
- iOS8下,UIAlertController内存泄露怎么办?
- nagios全攻略(五)----监控windows系统的”本地信息”
- IOS 不同的 UIViewController 之间如何跳转