Linux modinfo命令介绍
Linux modinfo命令是用于显示内核模块的信息的命令。modinfo会显示内核模块的对象文件,以显示该模块的相关信息,如作者、描述、版本、参数、别名、依赖等。modinfo命令可以帮助用户了解内核模块的功能和用法,以及如何配置和加载它们。
Linux modinfo命令适用的Linux版本
modinfo命令是一个通用的Linux命令,它适用于大多数的Linux发行版,如Ubuntu, Debian, Fedora, CentOS, Red Hat等。如果用户的系统没有安装modinfo命令,可以使用以下命令来安装它:
- 对于基于Debian的系统,如Ubuntu,可以使用
apt-get
命令来安装kmod
软件包,该软件包包含了modinfo命令:
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install kmod
- 对于基于Red Hat的系统,如Fedora,可以使用
dnf
命令来安装kmod
软件包,该软件包包含了modinfo命令:
[linux@bashcommandnotfound.cn ~]$ sudo dnf install kmod
- 对于基于Red Hat的系统,如CentOS 7,可以使用
yum
命令来安装kmod
软件包,该软件包包含了modinfo命令:
[linux@bashcommandnotfound.cn ~]$ sudo yum install kmod
- 对于基于Red Hat的系统,如CentOS 8,可以使用
dnf
命令来安装kmod
软件包,该软件包包含了modinfo命令:
[linux@bashcommandnotfound.cn ~]$ sudo dnf install kmod
Linux modinfo命令的基本语法
modinfo命令的基本语法格式如下:
modinfo [选项] [模块名或文件名...]
其中,选项可以是以下之一:
-0
或--null
:在每个字段的末尾输出一个空字符,而不是换行符。-a
或--author
:显示模块的作者。-d
或--description
:显示模块的描述。-F
或--field
:只显示指定的字段,可以是filename
,author
,description
,license
,version
,alias
,parm
,depends
,intree
,vermagic
,sig_id
,signer
,sig_key
,sig_hashalgo
或srcversion
。-k
或--set-version
:指定内核版本,而不是使用当前运行的内核版本。-n
或--filename
:只显示模块的文件名,而不是完整的路径。-p
或--parameters
:显示模块的参数。-V
或--version
:显示modinfo的版本信息。-h
或--help
:显示modinfo的帮助信息。
模块名或文件名可以是一个或多个,如果是模块名,modinfo会在/lib/modules/$(uname -r)
目录下查找对应的模块文件,如果是文件名,modinfo会直接显示该文件的信息。
Linux modinfo命令的常用选项说明
modinfo命令的常用选项有以下几个:
-a
或--author
:显示模块的作者,这可以帮助用户了解模块的来源和负责人。-d
或--description
:显示模块的描述,这可以帮助用户了解模块的功能和作用。-F
或--field
:只显示指定的字段,这可以帮助用户快速获取模块的某些信息,如版本,依赖,参数等。-p
或--parameters
:显示模块的参数,这可以帮助用户了解模块的配置选项和用法。
Linux modinfo命令的实例
以下是一些使用modinfo命令的实例:
- 显示
sg
模块的所有信息:
[linux@bashcommandnotfound.cn ~]$ modinfo sg
filename: /lib/modules/5.4.0-77-generic/kernel/drivers/scsi/sg.ko
license: GPL
version: 3.5.36
description: SCSI generic (sg) driver
author: Douglas Gilbert
srcversion: 1F9B7C9E8A6F2E7B9F4F0F9
alias: char-major-21-*
depends: scsi_mod
retpoline: Y
intree: Y
name: sg
vermagic: 5.4.0-77-generic SMP mod_unload modversions
parm: def_reserved_size:size of buffer reserved for each fd (int)
parm: allow_dio:allow direct I/O (default: 0 (disallow)) (bool)
- 显示
sg
模块的作者和描述:
[linux@bashcommandnotfound.cn ~]$ modinfo -a -d sg
author: Douglas Gilbert
description: SCSI generic (sg) driver
- 显示
sg
模块的参数:
[linux@bashcommandnotfound.cn ~]$ modinfo -p sg
def_reserved_size:size of buffer reserved for each fd (int)
allow_dio:allow direct I/O (default: 0 (disallow)) (bool)
- 显示
/lib/modules/5.4.0-77-generic/kernel/drivers/scsi/sg.ko
文件的版本和依赖:
[linux@bashcommandnotfound.cn ~]$ modinfo -F version -F depends /lib/modules/5.4.0-77-generic/kernel/drivers/scsi/sg.ko
3.5.36
scsi_mod
Linux modinfo命令的注意事项
使用modinfo命令时,需要注意以下几点:
- 如果模块名或文件名不存在,modinfo会报错
modinfo: ERROR: Module alias not found.
或modinfo: ERROR: Module filename not found.
。 - 如果指定的字段不存在,modinfo会输出空行。
- 如果指定的内核版本不存在,modinfo会报错
modinfo: ERROR: could not find /lib/modules/...
。 - 如果用户的系统没有安装modinfo命令,会出现
bash: modinfo: command not found
的错误提示,需要按照上述方法安装kmod
软件包。
评论区