如何检查 Linux 上的内核模块依赖关系如何检查 Linux 上的内核模块依赖关系如何检查 Linux 上的内核模块依赖关系如何检查 Linux 上的内核模块依赖关系
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何检查 Linux 上的内核模块依赖关系

与软件包类似,许多 Linux 内核模块不是独立的,而是依赖其他模块才能成功加载和运行。了解各种情况下的内核模块依赖关系很有用。例如,您可能想知道特定行为不当的内核模块依赖于哪些其他模块,以便找到该行为的根本原因。在另一种情况下,您可能希望卸载系统上不再需要的内核模块,以便最大限度地减少内核的内存占用。

那么首先如何检查内核模块依赖关系呢?有多种方法可以查找 Linux 上的内核模块依赖性。

方法一:lsmod

第一种方法是使用 lsmod 命令,该命令显示当前加载的内核模块列表以及模块依赖信息。


$ lsmod

Module                  Size  Used by
iptable_filter          1790  1 
ip_tables               7706  1 iptable_filter
x_tables                8327  1 ip_tables
vmhgfs                 41755  0 
vsock                  30939  0 
. . . .

在 lsmod 输出中,内核依赖信息显示在“Used by”列下,该列指示内核模块和正在使用给定模块的 Linux 进程的总数。依赖于给定模块的其他内核模块的名称也列在该列下。

但请注意,如果任何现有 Linux 进程(不是内核模块)使用内核模块,则 lsmod 输出中将省略进程名称。

例如,在上面的示例输出中,iptable_filter 由一个(未知)Linux 进程使用,而 ip_tables 模块由一个名为 iptable_filter 的内核模块使用。

方法二:modinfo

给定一个内核模块 X,您可以通过运行 modinfo 命令检查该 X 是否依赖于其他模块。


$ /sbin/modinfo ip_tables

filename:       /lib/modules/4.15.0-128-generic/kernel/net/ipv4/netfilter/ip_tables.ko
description:    IPv4 packet filter
author:         Netfilter Core Team 
license:        GPL
srcversion:     DE5BF669F4D356757BF7344
depends:        x_tables
retpoline:      Y
intree:         Y
name:           ip_tables
vermagic:       4.15.0-128-generic SMP mod_unload 

如上面的示例输出所示,ip_tables 模块依赖于 x_tables。

方法三:modules.dep

如果您想获取所有现有内核模块依赖项的完整列表(无论是否加载内核模块),您只需查看内核的 modules.dep 文件即可。 modules.dep 由 depmod 工具自动生成,它显示了 /lib/modules/$(uname -r) 中找到的所有内核模块的依赖项。


$ cat /lib/modules/$(uname -r)/modules.dep

. . . .
kernel/net/ipv4/netfilter/ip_tables.ko: kernel/net/netfilter/x_tables.ko
kernel/net/ipv4/netfilter/iptable_filter.ko: kernel/net/ipv4/netfilter/ip_tables.ko kernel/net/netfilter/x_tables.ko
kernel/net/ipv4/netfilter/iptable_mangle.ko: kernel/net/ipv4/netfilter/ip_tables.ko kernel/net/netfilter/x_tables.ko
kernel/net/ipv4/netfilter/iptable_nat.ko: kernel/net/ipv4/netfilter/ip_tables.ko kernel/net/ipv4/netfilter/nf_nat.ko kernel/net/netfilter/x_tables.ko kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko kernel/net/netfilter/nf_conntrack.ko kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko
. . . .
©2015-2025 艾丽卡 support@alaica.com