查看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上加载和卸载内核模块。