自己编写的内核模块,要挂到内核上去,有两个命令
1、insmod
该命令不分析模块的依赖关系,可以把模块放在任意目录,在该目录下执行insmod xxxx.ko即可
需要自己理清依赖关系,顺序安装
如果顺序错了,会提示:-1 Unknown symbol in module
2、modprobe
该命令分析模块依赖关系,把所有的依赖都安装,
需要放到/lib/modules/$(uname -r)目录下,执行depmod,否则会提示:FATAL:Module xxxx not found
在任意目录执行modprobe xxxx即可,注意xxxx只是模块名,不带ko后缀
depmod
功能:分析模块依赖,生成modules.dep
用法:depmod [-e] [-n] [-A]
depmod [-e] [-n] [filename...]
描述:
一个模块可以为其它模块提供服务(用EXPORT_SYMBOL),这被称作”symbols”。若第二个模块使用这个symbol,则该模块依赖于第一个模块。
depmod读取在/lib/modules/version 目录下的所有模块,并检查每个模块导出的symbol和需要的symbol,然后创建一个依赖关系列表。
默认地,该列表写入到/lib/moudules /$(uname -r)目录下的modules.dep文件中。
-A:不加任何参数时,depmod会主动去分析目前内核的模块,并且重新写入/lib/modules/$(uname -r)/modules.dep当中。
如果加-A参数,则会查找比modules.dep内还要新的模块,如果真找到,才会更新。
-n:不写入modules.dep,而是将结果输出到屏幕上。
-e:显示出目前已加载的不可执行的模块名称。
filename:只更新该filename相关的
阅读(1046) | 评论(0) | 转发(0) |