内核模块中用于输出的函数是内核空间的printk(),而非用户空间的printf(),二者相似,但是printk()可定义输出级别,可作为一种最基本的内核调试手段
lsmod命令可获得系统中加载的所有模块以及模块间的依赖关系,lsmod实际上读取并分析/proc/modules文件
内核中已经加载模块的信息存在/sys/module目录下
tree -a 命令可以得到目录树
modprobe命令比insmod强大,它在加载某模块时会同时加载该模块所依赖的其他模块
使用modprobe命令加载的模块若以modprobe -r filename 的方式将同时卸载其所依赖的模块
modinfo 模块名 可以获得模块的信息
linux内核模块的组成部分:
必选:模块加载函数、模块卸载函数、模块许可证声明
可选:模块参数、模块导出符号、模块作者等信息声明
模块加载函数:
以_ _init标识声明,初始化成功,应该返回0,初始化失败时,返回错误编码(负值)
模块卸载函数不返回任何值,以_ _exit
其实_ _init _ _exit都是宏
模块参数 module_param(参数名,参数类型,参数读/写权限)
阅读(361) | 评论(0) | 转发(0) |