kernel insmod 命令


 

insmod的工作[转]

《LINUX设备驱动程序》

insmod 实际上它依赖于定义在kernel/module.c中的一个系统调用。函数sys_init_module给模块分配内核内存(函数vmalloc负责内存分配)以便装载模块。然后该系统调用将模块正文复制到内核区域,并且通过内核符号表解析模块中的内核引用,最后调用模块的初始化函数。

 

insmod:        

sys_init_module(分配内存)-->copy模块代码到内核空间-->解析符号引用-->module_init(XXXX)

 

modprobe是处理层叠模块的一个实用工具。它的功能在很大程度上和insmod类似,但是它除了装入指定模块外还同时装入指定模块所依赖的其他模块。

 

因此,在使用insmod命令往kernel中装载自己的.ok时候,如果未成功,并且没有输出任何信息"死机"的时候,可以在module_init(XXXX)的XXXX初始化函数中,加入一些printk,用于调试insmod.

你可能感兴趣的:(工作,linux,Module,工具)