如何识别所需的linux内核模块的名称

问题描述 投票:0回答:1

我正在尝试按照这些说明构建 Linux Parted 工具。 构建 Parted 后,您可以对其运行测试,这些说明指出:

如果构建以下内核模块,则运行大约 20% 的测试:

enter image description here 尽管有这些信息,我仍然不确定我需要的一个或多个内核模块的名称是什么?

我一直在使用这些命令搜索我的 Linux/Manjaro 系统以获取提示,但不确定我是否有所需的内核模块,因为我不知道我需要的模块的名称,或者我是否正在查找适合他们的地方。

lsmod lsmod | grep scsi tail /proc/modules ls -l /sys/module | grep scsi modinfo -p scsi_mod

我当前的内核是:6.1.94-1-MANJARO

find /lib/modules/6.1.94-1-MANJARO/ -type f -name '*.ko*' find /lib/modules/6.1.94-1-MANJARO/ -type f -name '*.ko*' | grep scsi

	
testing linux-kernel scsi parted
1个回答
0
投票

“SCSI 调试主机和设备模拟器”旁边的“

”提示我需要一个模块,其名称位于方括号中 -->

scsi_debug< m >。 根据

kernel.io

,此驱动程序还具有“描述”“SCSI 调试主机模拟器”,并确认该模块的实际名称是:scsi_debug 该链接还指出,scsi_debug 模块自 v2.6.12 以来一直存在于 Linux 内核中,但检查它是否“内置”到内核中的另一种方法在

此站点

上描述: zcat /proc/config.gz > filename.config

该文件将保存到您运行命令的目录中,然后打开该文件给我这个:

... .. CONFIG_SCSI_WD719X=m CONFIG_SCSI_DEBUG=m CONFIG_SCSI_PMCRAID=m .. ...

“m”意味着在我的内核中 scsi_debug 已被构建为
可加载模块

。这意味着它不是内置的,因此在启动时不会自动可用,但可以根据需要动态加载和卸载。 当我运行 Manjaro 时,我访问了

Arch Wiki

并找到了有关如何检查系统上加载的模块以及如何加载/卸载它们的信息。我认为这些命令适用于任何 Linux 发行版... 模块存储在/usr/lib/modules/kernel_release中。我的是 6.1.94-1-MANJARO,我用这个命令确认了它:

uname -r

通过这种方式确认我有 scsi_debug 模块:

find /usr/lib/modules/6.1.94-1-MANJARO/ -type f -name '*.ko*' | grep scsi_debug

显示 scsi_debug 是否已加载:

lsmod | grep scsi_debug

模块可以在启动时加载或在启动后手动加载,如下所示:

sudo modprobe scsi_debug

或者,如果您将该模块放在“/usr/lib/modules/kernel_release”以外的位置,您会这样做...

insmod path_to_filename [args]

然后像这样手动卸载模块:

sudo modprobe -r scsi_debug

在构建 Parted 后,我可能不需要执行上述任何操作即可获得 20% 以上的测试。运行这些测试的脚本可能会根据需要加载和卸载 scsi_debug。

享受吧。

© www.soinside.com 2019 - 2024. All rights reserved.