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

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

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

目 录CONTENT

文章目录

Linux bmodinfo命令教程:如何显示模块信息(附实例详解和注意事项)

Linux bmodinfo命令介绍

bmodinfo命令是Linux系统中用来显示模块信息的工具,它可以显示模块的名称、版本、作者、描述、参数、依赖等信息。bmodinfo命令是由BusyBox提供的,BusyBox是一个集成了多个常用Linux命令的小型可执行文件,它可以在嵌入式系统或者资源有限的环境中运行。bmodinfo命令的全称是BusyBox modinfo,它是modinfo命令的简化版,功能和用法类似,但是选项和输出格式有所不同。

Linux bmodinfo命令适用的Linux版本

bmodinfo命令适用于安装了BusyBox的Linux系统,例如Android、OpenWrt、Alpine Linux等。如果你的Linux系统没有安装BusyBox,你可以使用modinfo命令来显示模块信息,或者使用以下命令来安装BusyBox:

  • 对于基于Debian的Linux系统,如Ubuntu、Mint等,可以使用apt-get命令来安装BusyBox:
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install busybox
  • 对于基于Red Hat的Linux系统,如CentOS、Fedora等,可以使用yum或者dnf命令来安装BusyBox:
[linux@bashcommandnotfound.cn ~]$ sudo yum install busybox

或者

[linux@bashcommandnotfound.cn ~]$ sudo dnf install busybox
  • 对于基于Arch的Linux系统,如Manjaro、Arch Linux等,可以使用pacman命令来安装BusyBox:
[linux@bashcommandnotfound.cn ~]$ sudo pacman -S busybox

Linux bmodinfo命令的基本语法

bmodinfo命令的基本语法格式如下:

bmodinfo [选项] 模块文件

其中,模块文件是要显示信息的模块的文件名,可以是绝对路径或者相对路径,也可以是模块的别名。如果没有指定模块文件,bmodinfo命令会从标准输入读取模块文件名。

Linux bmodinfo命令的常用选项或参数说明

bmodinfo命令的常用选项或参数如下表所示:

选项参数说明
-0使用\0作为输出的分隔符,而不是换行符
-a显示模块的作者
-d显示模块的描述
-F字段显示模块的指定字段,字段可以是以下值之一:author, description, license, parm, depends, alias, vermagic, intree, filename, srcversion, modversion, firmware, sig_id, sig_key, sig_hashalgo, parmtype
-k显示模块的签名密钥
-n显示模块的文件名
-p显示模块的参数
-V显示bmodinfo命令的版本信息

Linux bmodinfo命令的实例

以下是一些使用bmodinfo命令的实例:

  • 显示模块的所有信息:
[linux@bashcommandnotfound.cn ~]$ bmodinfo /lib/modules/5.10.0-8-amd64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
filename:       /lib/modules/5.10.0-8-amd64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
version:        3.8.4-NAPI
license:        GPL
description:    Intel(R) PRO/1000 Network Driver
author:         Intel Corporation, <linux.nics@intel.com>
srcversion:     9A7F8F4E5B1A0C0F3F2F5F6
alias:          pci:v00008086d000015E3sv*sd*bc*sc*i*
...

  • 显示模块的许可证:
[linux@bashcommandnotfound.cn ~]$ bmodinfo -l /lib/modules/5.10.0-8-amd64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
license:        GPL
  • 显示模块的作者和描述:
[linux@bashcommandnotfound.cn ~]$ bmodinfo -a -d /lib/modules/5.10.0-8-amd64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
author:         Intel Corporation, <linux.nics@intel.com>
description:    Intel(R) PRO/1000 Network Driver
  • 显示模块的依赖关系:
[linux@bashcommandnotfound.cn ~]$ bmodinfo -F depends /lib/modules/5.10.0-8-amd64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
depends:        ptp
  • 显示模块的参数类型:
[linux@bashcommandnotfound.cn ~]$ bmodinfo -F parmtype /lib/modules/5.10.0-8-amd64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
parmtype:       def_reserved_size:int
parmtype:       allow_dio:int
  • 显示模块的签名信息:
[linux@bashcommandnotfound.cn ~]$ bmodinfo -k /lib/modules/5.10.0-8-amd64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
sig_id:         PKCS#7
sig_key:        3F:AD:19:66:1B:3C:CE:1E:99:8F:4E:9E:1E:CD:62:1A:DF:2F:15:3C
sig_hashalgo:   sha512
  • 从标准输入读取模块文件名,并使用\0作为分隔符:
[linux@bashcommandnotfound.cn ~]$ echo -ne "/lib/modules/5.10.0-8-amd64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko\0/lib/modules/5.10.0-8-amd64/kernel/drivers/net/ethernet/intel/igb/igb.ko\0" | bmodinfo -0
filename:       /lib/modules/5.10.0-8-amd64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
version:        3.8.4-NAPI
license:        GPL
description:    Intel(R) PRO/1000 Network Driver
author:         Intel Corporation, <linux.nics@intel.com>
srcversion:     9A7F8F4E5B1A0C0F3F2F5F6
alias:          pci:v00008086d000015E3sv*sd*bc*sc*i*

...

alias:          pci:v00008086
filename:       /lib/modules/5.10.0-8-amd64/kernel/drivers/net/ethernet/intel/igb/igb.ko
version:        5.6.0-k
license:        GPL
description:    Intel(R) Gigabit Ethernet Network Driver
author:         Intel Corporation, <linux.nics@intel.com>
srcversion:     0F0C9E8E9F0B8F2F8A8B9F9
alias:          pci:v00008086d000015E5sv*sd*bc*sc*i*
...
  • 显示模块的文件名和版本号:
[linux@bashcommandnotfound.cn ~]$ bmodinfo -n -F version /lib/modules/5.10.0-8-amd64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
filename:       /lib/modules/5.10.0-8-amd64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
version:        3.8.4-NAPI
  • 显示模块的签名ID和签名算法:
[linux@bashcommandnotfound.cn ~]$ bmodinfo -F sig_id -F sig_hashalgo /lib/modules/5.10.0-8-amd64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
sig_id:         PKCS#7
sig_hashalgo:   sha512
  • 显示模块的源代码版本号和模块版本号:
[linux@bashcommandnotfound.cn ~]$ bmodinfo -F srcversion -F modversion /lib/modules/5.10.0-8-amd64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
srcversion:     9A7F8F4E5B1A0C0F3F2F5F6
modversion:     3.8.4-NAPI

Linux bmodinfo命令的常见技巧或高级技巧

  • 使用-F选项可以显示模块的指定字段,而不是所有的信息。例如,如果你只想看模块的版本号,你可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ bmodinfo -F version /lib/modules/5.10.0-8-amd64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
3.8.4-NAPI
  • 使用-0选项可以使用\0作为输出的分隔符,而不是换行符。这样可以方便地将输出传递给其他命令,如xargs。例如,如果你想列出所有依赖于e1000e模块的模块,你可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ bmodinfo -0 -F depends /lib/modules/5.10.0-8-amd64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko | xargs -0 -n1 lsmod | grep -v Module
e1000e                 331776  0
ptp                    32768  2 e1000e,igb
  • 如果你不知道模块的文件名,但是知道模块的别名,你可以使用别名来显示模块的信息。例如,如果你想查看pci:v00008086d000015E3svsdbcsci*这个别名对应的模块,你可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ bmodinfo pci:v00008086d000015E3sv*sd*bc*sc*i*
filename:       /lib/modules/5.10.0-8-amd64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
version:        3.8.4-NAPI
license:        GPL
description:    Intel(R) PRO/1000 Network Driver
author:         Intel Corporation, <linux.nics@intel.com>
srcversion:     9A7F8F4E5B1A0C0F3F2F5F6
alias:          pci:v00008086d000015E3sv*sd*bc*sc*i*
alias:          pci:v00008086d000015E2sv*sd*bc*sc*i*
...

Linux bmodinfo命令的注意事项

  • bmodinfo命令只能显示已经安装的模块的信息,如果你想查看未安装的模块的信息,你需要使用modinfo命令。
  • bmodinfo命令的输出格式和modinfo命令的输出格式有所不同,bmodinfo命令会在每个字段的值前加上字段的名称,而modinfo命令不会。例如,bmodinfo命令会显示:
[linux@bashcommandnotfound.cn ~]$ bmodinfo -F version /lib/modules/5.10.0-8-amd64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
version:        3.8.4-NAPI

而modinfo命令会显示:

[linux@bashcommandnotfound.cn ~]$ modinfo -F version /lib/modules/5.10.0-8-amd64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
3.8.4-NAPI
  • 如果你输入了一个不存在的模块文件或者别名,bmodinfo命令会报错,提示bash: bmodinfo: command not found,这表示你的系统没有安装BusyBox或者没有将BusyBox的路径添加到环境变量中。你可以使用以下命令来检查你的系统是否安装了BusyBox:
[linux@bashcommandnotfound.cn ~]$ which bmodinfo
/usr/bin/bmodinfo

如果你看到了类似的输出,说明你的系统已经安装了BusyBox,并且bmodinfo命令的路径是/usr/bin/bmodinfo。如果你没有看到任何输出,说明你的系统没有安装BusyBox,你可以使用我之前提到的命令来安装BusyBox,或者使用modinfo命令来显示模块信息。

0

评论区