系统是CentOS 6.3。
我已经编译了一个新内核,并将生成的 rpm 安装在目标计算机上。 从内核启动时,我在问题标题中收到错误。
我提取了相应的 initramfs 并比较了以下输出:
modprobe --dump-modversions /path/to/scsi_wait_scan.ko
在相应的/boot/symvers-* 中包含条目。所有符号校验和都适合,包括module_layout。
有没有办法从内核本身提取symvers?
最佳答案
我发现了问题。
简短回答
问题是我在已经安装的内核 rpm (A) 上安装了内核 rpm (B), 无需先将其删除。
详细解答
scsi_mod.ko
仅由 (A) 所有。安装 (B) 时,scsi_mod.ko
位于/lib/modules/中。
当 intramfs 在 (B) 的安装后脚本中创建时。 depmod 认为 scsi_wait_scan.ko
依赖于 scsi_mod.ko
,而两者都是针对不同的配置构建的。
稍后启动机器时,内核开始运行 initramfs。这反过来又会对 scsi_wait_scan.ko
进行 modprob 处理。 modprobe 尝试加载为 consiquence scsi_mod.ko
,这不适合当前内核,从而导致我看到的错误。
关于linux - 插入 scsi_wait_scan 时出错 - 模块格式无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13929176/