insmod命令
insmod需指定所需加载模块的路径,且只加载所指定的模块,如果所指定的模块依赖于其他模块,insmod不会自动添加;
语法
insmod [-fkmpsvxX][-o <模块名称>][模块文件][符号名称 = 符号值]
参数说明:
- -f 不检查目前kernel版本与模块编译时的kernel版本是否一致,强制将模块载入。
- -k 将模块设置为自动卸除。
- -m 输出模块的载入信息。
- -o<模块名称> 指定模块的名称,可使用模块文件的文件名。
- -p 测试模块是否能正确地载入kernel。
- -s 将所有信息记录在系统记录文件中。
- -v 执行时显示详细的信息。
- -x 不要汇出模块的外部符号。
- -X 汇出模块所有的外部符号,此为预设置。
insmod使用方法如下:insmod 某路径/xxx.ko。
insmod测试
modprobe命令
modprobe会自动加载被依赖的模块,而且加载的模块不需要指定路径,因为modprobe加载的驱动的路径默认是lib/modules/(shell uname -r)/ 下进行寻找的。
modprobe的依赖来源
modeprobe加载内核模块时依赖于/lib/modules/(shell uname -r)/modules.dep文件,modules.dep文件中列举了modproe可加载的内核文件以及内核文件所依赖的文件。假如一个内核模块位于/lib/modules/(shell uname -r)目录下,但是该模块未添加到modules.dep文件中,也无法通过modeprobe命令加载。那么问题来了,modules.dep文件是如何生成的?modules.dep文件通过depmod生成,如果往/lib/modules/(shell uname -r)目录下放置一个新的内核模块XXX并且希望通过modprobe命令进行加载模块XXX,那么将内核模块XXX放到/lib/modules/(shell uname -r) 目录下后需运行depmod命令,然后再运行modeprobe XXX才能将内核模块加载成功,否则会报错: modeprobe XXX not found。
语法
modprobe [-acdlrtvV][--help][模块文件][符号名称 = 符号值]
参数:
- -a或--all 载入全部的模块。
- -c或--show-conf 显示所有模块的设置信息。
- -d或--debug 使用排错模式。
- -l或--list 显示可用的模块。
- -r或--remove 模块闲置不用时,即自动卸载模块。
- -t或--type 指定模块类型。
- -v或--verbose 执行时显示详细的信息。
- -V或--version 显示版本信息。
- -help 显示帮助。
modprobe测试
1.没有使用depmod生成modules.dep,而且驱动不是在/lib/modules/(shell uname -r) 目录下
2.将驱动拷贝到/lib/modules/(shell uname -r) 目录下,执行depmod生成modules.dep,即可通过modprobe加载驱动以及依赖的驱动
depmod命令
depmod(depend module)可检测模块的相依性,生成modules.dep文件,方便modprobe在安装模块时可以找到依赖去加载依赖的模块使用。
语法:
depmod [-adeisvV][-m <文件>][--help][模块名称]
参数说明:
- -a或--all 分析所有可用的模块。
- -d或debug 执行排错模式。
- -e 输出无法参照的符号。
- -i 不检查符号表的版本。
- -m<文件>或system-map<文件> 使用指定的符号表文件。
- -s或--system-log 在系统记录中记录错误。
- -v或--verbose 执行时显示详细的信息。
- -V或--version 显示版本信息。
- --help 显示帮助
rmmod
用于从linux内核中卸载已加载的内核模块
语法
rmmod [选项] 模块名
参数说明:
- -f 强制卸载模块,即使模块正在被其他进程使用
- -v 显示详细信息,包括卸载过程中的日志
- -w 等待直到模块不再被使用,然后卸载
rmmod测试例子
modinfo
Linux modinfo命令用于显示kernel模块的信息。modinfo会显示kernel模块的对象文件,以显示该模块的相关信息,参数以及说明等等。
语法
modinfo [-adhpV][模块文件]
参数:
- -a或--author 显示模块开发人员。
- -d或--description 显示模块的说明。
- -h或--help 显示modinfo的参数使用方法。
- -p或--parameters 显示模块所支持的参数。
- -V或--version 显示版本信息。
modinfo测试例子
lsmod
Linux lsmod(英文全拼:list modules)命令用于显示已载入系统的模块。
参考:
insmod & depmod & modprobe的区别及用法_modeprobe-CSDN博客
Linux depmod命令教程:深入理解depmod命令及其应用(附实例详解和注意事项)_depmod 怎么使用-CSDN博客 Linux depmod命令 | 菜鸟教程 (runoob.com)