1、系统命令
①静态编译
②不能选择系统用户目录
③交叉编译前缀
2、模块与直接编译进内核的区别
模块存在于文件系统,编译进内核存在用户内核
3、驱动模块主要包括:
初始化和退出
4、Makefile文件:
开始:宏KERNELRELEASE
Obj-m:=hello modoules
KDIR:=/mini2440/linux-2.6.32.2
在驱动程序中:
要包含(GPL协议)
5、添加驱动到内核:
①insmod +.ko文件
②rmmod+驱动文件名(.ko)从内核删除驱动程序
③ls mod
6、modinfo查看驱动信息
7、给驱动程序中变量传参:
要先在驱动程序中将变量导出:module param(name,type,perm)示例
Module param(a,int,S_IRWXU)
8、内核符号导出
EXPORT_SYMBOL
注意模块导出:若有依赖关系的文件要先将导出函数的驱动程序添加至内核再加用函数的模块添加至内核
9、驱动编写中的三中文件:
驱动文件
设备文件(设备号,主设备号,次设备号)
用户程序(测试和应用程序)
10、对编译成module的代码和数据来说,当模块加载时,__init属性的函数就被执行