Go to main content

手册页部分 8:系统管理命令

退出打印视图

更新时间: 2022年7月27日 星期三
 
 

modinfo(8)

名称

modinfo - 显示关于已装入的内核模块的信息

用法概要

/usr/sbin/modinfo [-aw] [-c | [-i module] [-pP] 
[-o field[,...]]]

描述

modinfo 实用程序显示关于已装入的模块的信息。信息格式如下所示:

ID LOADADDR SIZE INFO REV NAMEDESC

其中,ID 是十进制模块 ID,LOADADDR 对于特权用户来说是十六进制的起始文本地址,但对于非特权用户来说是 '--'。SIZE 是以十六进制字节为单位的文本、数据和 bss 的大小,INFO 是特定于模块的信息,REV 是可装入的模块系统的修订版,NAMEDESC 是模块的文件名和说明。

特定于模块的信息包括块和字符主设备号(对于驱动器)、系统调用编号(对于系统调用);对于其他模块类型,没有特定的信息。

选项

支持以下选项:

–c

显示已装入模块的次数以及模块的当前状态。此选项包含 –a,不能与 –i–o–p–P 一起使用。

–i module

仅显示关于特定模块的信息。如果“模块”以数字开头,则将其解释为十进制模块 ID,否则将其解释为模块名称。十进制模块 ID 在重新引导后可能会更改。

–o field[,...]

要显示的输出字段的列表,这些字段不区分大小写,并且由逗号分隔。字段名称必须是下面列出的某个字段,或者是可以显示所有字段的特殊值 all。支持以下字段:id、loadaddr、size、info、rev、path、name、desc、namedesc、loadcnt、state 和 all。对于已装入的模块,'path' 将显示内核在装入模块时使用的实际路径。对于未装入的模块,将派生内核要用来装入模块的路径。输出可能与绑定内容不匹配,在系统上添加或删除了软件时会发生这种情况。此类更改可能会导致在下次装入模块时使用不同的路径。如果 modinfo(8) 无法确定从哪里加载模块,它会在路径前输出一个问号。此选项隐式包含 –w

–p

使用计算机可解析的稳定格式显示。–o 选项需要与此选项一起使用。请参见下文的“可解析的输出格式”。

–P

仅显示路径和标头信息。它是 '-p -o path' 的别名。

–a

显示所有模块(包括当前未装入的模块)的信息。

–w

不在 80 个字符处截断模块信息。

可解析的输出格式

如果输入了多个字段,则输出格式是一行或多行以冒号 (:) 分隔的字段。输出仅包括通过 –o 选项请求的字段,这些字段按请求的顺序排列。当请求多个字段时,将在输出之前使用反斜杠 (\) 对任何文本冒号字符进行转义。类似地,也会对文本反斜杠字符进行转义 (\\)。通过使用 shell read(1) 函数并将环境变量设置为 IFS=:,可以解析这种转义格式。

请注意,当仅请求一个字段时,不会进行转义。

示例

示例 1 显示模块的状态

以下示例显示了模块 3 的状态:

example% modinfo -i 3
 
ID  LOADADDR         SIZE   INFO REV NAMEDESC
3   fffffffffbdcf000 7410   1    1   specfs (filesystem for specfs)
example% modinfo -i specfs
 
ID  LOADADDR         SIZE   INFO REV NAMEDESC
3   fffffffffbdcf000 7410   1    1   specfs (filesystem for specfs)
示例 2 显示内核模块的状态

以下示例显示了一些内核模块的状态:

example% modinfo

ID  LOADADDR         SIZE   INFO REV NAMEDESC
0   fffffffffb800000 3b3cb4 --   0   unix () 
1   fffffffffb9f8208 43e068 --   0   genunix ()
3   fffffffffbdcf000 7410   1    1   specfs (filesystem for specfs)
4   fffffffffbdd6370 5d80   3    1   fifofs (filesystem for fifo)
5   fffffffff80b4000 267c8  53   1   dtrace (Dynamic Tracing)
6   fffffffffbddc038 9608   16   1   devfs (devices filesystem)
7   fffffffffbde53f0 21830  17   1   dev (/dev filesystem)
8   fffffffffbe064e8 8078   --   1   dls (Data-Link Services)
9   fffffffffbe0e248 4c908  --   1   mac (MAC Services)
10  fffffffffbe59968 25c20  5    1   procfs (filesystem for proc)
示例 3 使用 –c 选项

modinfo 命令与 –c 选项一起使用将显示已装入的模块的实例数和模块的当前状态。

example% modinfo -c
   
ID  LOADCNT NAME                    STATE
0   1       unix                    LOADED/INSTALLED
1   1       genunix                 LOADED/INSTALLED
2   0       cl_bootstrap            UNLOADED/UNINSTALLED
3   1       specfs                  LOADED/INSTALLED
4   1       fifofs                  LOADED/INSTALLED
5   1       dtrace                  LOADED/INSTALLED
6   1       devfs                   LOADED/INSTALLED
7   1       dev                     LOADED/INSTALLED
8   1       dls                     LOADED/INSTALLED
9   1       mac                     LOADED/INSTALLED
10  1       procfs                  LOADED/INSTALLED
11  0       lbl_edition             UNLOADED/UNINSTALLED
示例 4 使用 –o–p 选项

使用带有 –o–p 选项的 modinfo 命令能以计算机可解析的格式显示用户指定的字段。

example% modinfo -o id,desc,path -i specfs
ID  DESC                            PATH
3   filesystem for specfs           /kernel/fs/amd64/specfs
example% modinfo -o id,desc,path -i specfs -p
3:filesystem for specfs:/kernel/fs/amd64/specfs

属性

有关下列属性的说明,请参见 attributes(7)

属性类型
属性值
可用性
system/core-os
接口稳定性
Committed(已确定)

另请参见

attributes(7)modload(8)modunload(8)