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命令来显示模块信息。
评论区