linux module 管理操作

环境信息

  • Centos 7

查看内核已加载的模块

使用 lsmod 命令列出所有已加载的内核模块,输出中包含: 模块名称(Name)大小(Size)何处被使用(Used by)

# lsmod 
Module Size Used by
softdog 12288 0
xt_MASQUERADE 16384 2
nf_conntrack_netlink 53248 0
nfnetlink 20480 2 nf_conntrack_netlink
iptable_nat 12288 1
nf_nat 57344 2 iptable_nat,xt_MASQUERADE
xt_addrtype 12288 2
br_netfilter 32768 0
overlay 180224 0
ipt_REJECT 12288 2
nf_reject_ipv4 16384 1 ipt_REJECT
xt_comment 12288 7
xt_multiport 16384 2
xt_conntrack 12288 10
nf_conntrack 188416 4 xt_conntrack,nf_nat,nf_conntrack_netlink,xt_MASQUERADE
nf_defrag_ipv6 24576 1 nf_conntrack
nf_defrag_ipv4 12288 1 nf_conntrack

查看内核模块的详细信息

要查看已加载的内核模块的详细信息,可以使用 modinfo 命令,不是所有的模块都有详细的描述信息,如果没有,则无任何返回

# modinfo -d ena
Elastic Network Adapter (ENA)

# modinfo -d lp

# modinfo -n ena
/lib/modules/6.8.0-1015-aws/kernel/drivers/net/ethernet/amazon/ena/ena.ko

modinfo 命令常用选项:

选项 说明 示例
-a, --author 打印模块的作者
-d, --description 打印模块的描述信息
-p, --parameters 打印模块的 ‘parm’
-n, --filename Print only ‘filename’

加载内核模块

insmod

使用 insmod 命令加载内核模块. 模块需要完整后缀(如果有)

insmod simple.ko

modprobe

使用 modprobe 命令加载内核模块. 模块不需要完整后缀(如果有) 。临时加载,重启后会消失。

# modprobe parport

卸载内核模块

使用 rmmod 命令卸载内核模块。无需后缀,只需要给定模块名

rmmod simple

也可以使用命令 modprobe -r 移除模块,它不仅会移除指定的模块,还会移除未被继续使用的依赖的模块