linux下insmod lsmod rmmod 分类: arm-linux-Ubuntu 2015-05-08 11:51 277人阅读 评论(0) 收藏 lsmod

insmod(install module)

功能说明:载入模块 install loadable kernel module

语法:insmod [-fkmpsvxX][-o <模块名称>][模块文件][符号名称 = 符号值]

参数:

-f  不检查目前kernel版本与模块编译时的kernel版本是否一致,强制将模块载入。
-k  将模块设置为自动卸除。
-m  输出模块的载入信息。
-o   <模块名称>  指定模块的名称,可使用模块文件的文件名。
-p  测试模块是否能正确地载入kernel。
-s  将所有信息记录在系统记录文件中。
-v  执行时显示详细的信息。
-x  不要汇出模块的外部符号。
-X  汇出模块所有的外部符号,此为预设置。

使用说明:Linux有许多功能是通过模块的方式,在需要时才载入kernel。如此可使kernel较为精简,进而提高效率,以及保有较大的弹性。这类可载入的模块,通常是设备驱动程序。

 

insmod命令主要用于在Linux 2.4内核之前加载Linux内核模块命令。对于通过此命令加载的Linux内核模块,系统不仅不会自动解决内核模块之间的依赖关系,而且还要求将模块路径写详细。所以在Linux 2.6内核出现时,此命令已渐渐被遗忘。

 

加载RAID1阵列级别模块,如下所示:

 

[root@rhel5 boot]# insmod /lib/modules/2.6.

18-8.el5/kernel/drivers/md/raid1.ko  

[root@rhel5 boot]# lsmod |grep raid1  

raid1                  25153  0 

从以上显示结果可知,RAID1模块已加载成功。只是在使用insmod命令加载模块时,需要使用绝对路径方能加载,且加载时无法自动解决依赖关系。

扩展阅读:insmod 和modprobe的区别

insmod 与 modprobe 都是载入 kernel module,不过一般差别于 modprobe 能够处理 module 载入的相依问题。
比方你要载入 a module,但是 a module 要求系统先载入 b module 时,直接用 insmod 挂入通常都会出现错误讯息,不过 modprobe 倒是能够知道先载入 b module  后才载入 a module,如此相依性就会满足。
不过 modprobe 并不是大神,不会厉害到知道 module 之间的相依性为何,该程式是读取 /lib/modules/2.6.xx/modules.dep 档案得知相依性的。而该档案是透过 depmod 程式所建立。

参考资料:http://www.linuxso.com/command/insmod.html


  说明:执行lsmod指令,会列出所有已载入系统的模块。Linux操作系统的核心具有模块化的特性,因此在编译核心时,无需把全部的功能都放入核心。你可以将这些功能编译成一个个单独的模块,待需要时再分别载入。



rmmod(remove module)

功能说明:删除模块。

语  法:rmmod [-as][模块名称...]

补充说明:执行rmmod指令,可删除无需的模块。Linux操作系统的核心具备模块化的特性,应此在编译核心时,务须把全部的功能都放如核心。您能够将这些功能编译成一个个单独的模块,待有需要时再分别载入他们。

参  数:
-a  删除任何现在无需的模块。 
-s  把信息输出至syslog常驻服务,而非终端机界面。


版权声明:本文为博主原创文章,未经博主允许不得转载。