插入scsi_wait_scan时出错-无效的模块格式 [英] Error inserting scsi_wait_scan - Invalid module format
问题描述
系统是CentOS 6.3.
The system is CentOS 6.3.
我已经编译了一个新内核,并将生成的rpm安装在目标计算机上. 从内核启动时,我在问题标题中收到错误消息.
I've compile a new kernel and the resulting rpm installed on a target machine. When booting from the kernel I've receive the error in a title of the question.
我已经提取了相应的initramfs并比较了以下内容的输出:
I've extracted corresponding initramfs and compared output of:
modprobe --dump-modversions /path/to/scsi_wait_scan.ko
在相应的/boot/符号-*中带有条目.所有符号校验和都适合,包括 module_layout .
with entries in corresponding /boot/symvers-*. All symbols checksums fit, including of module_layout.
是否可以从内核本身提取符号?
Is there a way to extract symvers from kernel itself?
推荐答案
我发现了问题.
简短答案
问题是我安装了内核rpm(B)而不是已经安装的内核rpm(A), 而不先删除它.
The problem was that I installed kernel rpm (B) over already installed kernel rpm (A), without removing it first.
详细答案
scsi_mod.ko
仅由(A)拥有.安装(B)时,scsi_mod.ko
位于/lib/modules/中.
在(B)的安装后脚本中创建intramfs时. depmod决定scsi_wait_scan.ko
依赖于scsi_mod.ko
,而两者均基于不同的配置进行构建.
scsi_mod.ko
was owned only by (A). While installing (B), scsi_mod.ko
was in /lib/modules/.
When intramfs was created in (B)'s postinstall script. depmod decided that scsi_wait_scan.ko
depends on scsi_mod.ko
, while both build against different configurations.
稍后启动计算机时,内核开始运行initramfs.依次修改scsi_wait_scan.ko
.尝试将modprobe作为征服scsi_mod.ko
加载,这不适用于当前内核,因此导致我看到的错误.
Later when booting the machine, kernel started run initramfs. This in turn modprob'ed scsi_wait_scan.ko
. modprobe tried loaded as a consiquence scsi_mod.ko
, which is not appropriate to the current kernel, thus resulting to error I saw.
这篇关于插入scsi_wait_scan时出错-无效的模块格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!