linux内核模块开发
时间:2011-04-04 来源:Roberts
模块的功能:
1、如果把所有的功能加载内核中会导致两个问题:
2、内核会很大。
3、添加或删除功能时要重新编译。
模块程序结构:
1、模块加载函数
2、退出函数
加载模块:insmod、modprobe
卸载模块:rmmod
查看安装的模块:lsmod
模块的可选信息:
1、MODULE_LICENSE
2、MODULE_AUTHOR
3、MODULE_DESCRIPTION
4、MODULE_VERSION
5、MODULE_ALIAS
模块参数:
module_param(name, type, perm)
1、name表示模块参数的名字
2、type表示这个参数的类型
3、perm是该模块参数的访问权限。
内核符号导出:这也是模块间通信的一种方式。
1、EXPORT_SYMBOL(符号名)
2、EXPORT_SYMBOL_GPL(符号名)只能用于GPL许可证的模块
内核版本不匹配问题:
1、确保编译模块时用的内核版本 == 当前运行的内核版本(uname -r查看)
2、modprobe --force-modversion强行插入
内核打印:
可以参考内核文件
相关阅读 更多 +