查看Linux内核模块信息

每次启动Linux系统时,系统就会加载许多内核模块,并用于为文件系统、新硬件和许多其他事物提供额外的支持。获取有关特定内核模块的信息可能是一项重要的故障排除技能。在本教程中,我们将解释怎样使用modinfo命令及其各类选项来获取模块信息,比如描述、依赖项、作者或相关目标文件名。

在本教程中您将学习:

怎样使用modinfo命令检测内核模块信息

默认情况下,任何可加载的内核模块都安装在/lib/modules目录中。对于每位特定的内核,还会创建一个单独的目录来包含与该特定内核一起使用的模块:


$ ls /lib/modules/
5.15.0-25-generic  5.15.0-30-generic

从我们的测试系统的输出中,我们可以见到这个特定的系统安装了两个内核。Linux系统一般会在系统上保留一两个额外的内核,以防出现错误而且须要回挪到旧版本。但请记住,在任何给定时间只能运行一个内核。

我们可以使用uname命令查看当前正在使用那个内核。


$ uname -a
Linux linuxconfig 5.15.0-30-generic #31-Ubuntu SMP Thu May 5 10:00:34 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

里面的uname命令输出显示5.15.0-30-generic是当前系统正在运行的内核查看linux 内核版本,因而模块是从/lib/modules/5.15.0加载的-30-generic/目录正在使用中。要列举所有当前加载的内核模块,我们可以使用lsmod命令:


$ lsmod

使用modinfo查看已加载模块的信息

如今我们将使用modinfo命令来检测有关当前加载的内核模块的信息。查看下边的一些示例并注意各个命令选项的作用。

首先,让我们使用-d选项获取特定模块的通常描述:


$ modinfo -d psmouse
PS/2 mouse driver

接出来,让我们使用-n选项找出该特定模块的实际目标文件位置:


$ modinfo -n psmouse
/lib/modules/5.15.0-30-generic/kernel/drivers/input/mouse/psmouse.ko

要查看任何给定已安装Linux内核的目标文件位置,请使用-k开关并指定内核名称。


$ modinfo -k 5.15.0-30-generic -n psmouse
/lib/modules/5.15.0-30-generic/kernel/drivers/input/mouse/psmouse.ko

使用-a选项搜集有关模块作者的信息。


$ modinfo -a psmouse
Vojtech Pavlik

最后查看linux 内核版本,要查找模块的依赖信息红旗linux系统,我们可以使用-F开关:


$ modinfo -F depends ppdev
parport

请注意,假若输出中未返回任何内容,则该模块不具有任何依赖项。

结束语

在本教程中,我们了解了怎样在Linux系统上检测有关内核模块的信息。因为模块扩充了Linux系统的功能,并为硬件和软件提供了额外的支持,因而系统管理员了解排除模块故障的基础知识十分重要。如今您早已晓得怎样检测有关已加载内核模块的信息,请查看我们有关用于模块管理的基本Linux内核命令的其他教程,以了解怎样在Linux上加载和卸载内核模块。

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复