每次启动 Linux 系统时,系统都会加载大量内核模块,用于为文件系统、新硬件等提供另外支持。
获取有关特定内核模块的信息可能是一项重要的故障排除技巧。
在本文中,我们将解释如何使用 modinfo
命令获取模块信息,例如描述、依赖关系、作者或者相关目标文件名。
默认情况下,任何可加载的内核模块都安装在 /lib/modules
目录中。
对于每个特定内核,创建一个单独的目录以包含要与该特定内核一起使用的模块:
# ls /lib/modules/ 3.14.5-200.fc20.x86_64 3.14.6-200.fc20.x86_64 3.14.8-200.fc20.x86_64
从上面的例子我们可以看到这个特定的系统安装了三个内核。
在任何给定时间只能运行一个内核:
# uname -a Linux localhost.localdomain 3.14.8-200.fc20.x86_64 #1 SMP Mon Jun 16 21:57:53 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
上面的 uname
命令输出显示 3.14.8-200.fc20
是当前系统的运行内核,因此从 /lib/modules/3.14.8-200.fc20.x86_64/
目录加载的模块正在使用中.要列出所有当前加载的内核模块,我们可以使用 lsmod
命令:
$ lsmod ... e1000e 258512 0 ghash_clmulni_intel 13216 0 i2c_algo_bit 13257 1 i915 drm_kms_helper 50652 1 i915 drm 283747 4 i915,drm_kms_helper ptp 18725 1 e1000e pps_core 19130 1 ptp ...
从这里我们可以使用 modinfo
命令dig有关任何特定模块的模式信息。
首先,我们可以得到通用的模块描述:
$ modinfo -d e1000e Intel(R) PRO/1000 Network Driver
这个特定模块的实际目标文件位置是什么:
$ modinfo -n e1000e /lib/modules/3.14.8-200.fc20.x86_64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
要查看任何给定的已安装 Linux 内核的目标文件位置,可以使用“-k”开关。
$ modinfo -k 3.14.5-200.fc20.x86_64 -n e1000e /lib/modules/3.14.5-200.fc20.x86_64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko
作者的相关资料:
$ modinfo -a e1000e Intel Corporation,
或者要查找模块的依赖信息,我们可以使用 -F
开关:
$ modinfo -F depends e1000e ptp
不带参数执行 modinfo
将导致 modinfo
命令打印所有可用信息。
日期:2020-07-07 20:57:04 来源:oir作者:oir