我正在尝试按照这些说明构建 Linux Parted 工具。 构建 Parted 后,您可以对其运行测试,这些说明指出:
如果构建以下内核模块,则运行大约 20% 的测试:
尽管有这些信息,我仍然不确定我需要的一个或多个内核模块的名称是什么?
我一直在使用这些命令搜索我的 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
“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。
享受吧。