侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux modinfo命令详解:如何查看内核模块的信息(附实例教程和注意事项)

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:只显示指定的字段,可以是filenameauthordescriptionlicenseversionaliasparmdependsintreevermagicsig_idsignersig_keysig_hashalgosrcversion
  • -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软件包。
0

评论区