其他分享
首页 > 其他分享> > 内核模块管理命令

内核模块管理命令

作者:互联网

1、insmod命令

在Linux系统下,insmod命令用于将给定的模块加载到内核中去,Linux系统有许多功能是通过模块的方式,在需要时才载入kernel,这样做可以使kernel较为精简,进而提高效率,这类可载入的模块,通常是设备驱动程序。

(1)命令语法

insmod(选项)(参数)

(2)常用选项说明

-f:不检查目前kernel版本与模块编译时的kernel版本是否一致,强制将模块载入。

-k:将模块设置为自动卸载。

-m:输出模块的载入信息。

-o<模块名称>:指定模块的名称,可使用模块文件的文件名。

-p:测试模块是否能正确载入到kernel。

-s:将所有信息记录在系统记录文件中。

-v:执行时显示详细的信息。

-x:不要汇出模块的外部符号。

-X:汇出模块所有的外部符号

(3)参数

内核模块:指定要加载的内核模块文件

(4)实例

加载一个简单的hello.ko内核模块,并查看加载结果:

# insmod hello.ko
# lsmod | grep “hello”

运行结果如下所示:

 

2、rmmod命令

在Linux系统下,rmmod命令用于从当前运行的内核中移除指定的内核模块,执行rmmod命令,可删除不需要的模块。

(1)命令语法

rmmod(选项)(参数)

(2)常用选项说明

-v:显示指令执行的详细信息。

-f:强制移除模块,该选项比较危险。

-w:等待着,直到模块能够被移除时再移除模块。

-s:向系统日志(syslog)发送错误信息。

(3)参数

模块名称:要移除的模块的名称

(4)实例

将hello内核模块进行移除:

# lsmod | grep “hello”
# rmmod hello
# lsmod | grep “hello”

运行结果如下所示:

 

3、lsmod命令

在Linux系统下,lsmod命令用于显示已经加载到内核中的模块的状态信息,运行lsmod命令后会列出所有已经载入系统的模块。

(1)语法

lsmod

(2)实例

查看当前系统已经载入的模块:

# lsmod

运行结果如下:

 

在上面显示的结果中:

第一列:表示模块的名称;

第二列:表示模块的大小;

第三列:表示依赖模块的个数;

第四列:表示依赖模块的内容。

4、modinfo命令

在Linux系统下,可以使用modinfo命令显示给定模块的详细信息。

(1)语法

modinfo(选项)(参数)

(2)常用选项说明

-a:显示模块的作者。

-d:显示模块的描述信息。

-l:显示模块的许可证信息。

-p:显示模块的参数信息。

-n:显示模块对应的文字信息。

(3)参数

模块名:要显示详细信息的模块名称。

(4)实例

显示hello.ko模块的信息:

# modinfo hello.ko

运行结果如下所示:

 

4、modprobe命令

Linux系统下,modprobe命令用于智能地向内核中加载模块或者从内核中移除模块。

(1)语法

modprobe(选项)(参数)

(2)常用选项说明

-a或--all:载入全部的模块。

-c或--show-conf:显示所有模块的设置信息。

-d或--debug:使用排错模式。

-r或--remove:当模块闲置不用时,即自动卸载模块。

-v或--verbose:执行时显示详细信息。

-V或--version:显示版本信息。

-help:显示命令帮助信息。

(3)参数

模块名:要加载或移除的模块名称。

(4)实例

加载hello.ko模块:

先将要加载的模块拷贝到/lib/modules/“uname -r”目录下,uname –r表示内核版本号

# cp hello.ko /lib/modules/“uname -r”
# depmod
# modprobe hello.ko
# lsmod | grep “hello”
# modprobe -r hello
# lsmod | grep hello

运行结果如下所示:

 

标签:lsmod,管理,命令,模块,移除,加载,hello,内核模块
来源: https://www.cnblogs.com/Cqlismy/p/11363043.html