linux - 插入 scsi_wait_scan 时出错 - 模块格式无效

标签 linux linux-kernel boot initrd

系统是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/

相关文章:

linux - 是否可以从一个点创建多个独立的持久 VPN 连接?

linux - 如何在Linux中使用date命令读取ANSI日期

linux - 找不到 Samba testparam 命令

linux - 我需要什么硬件来开始编写、编译和运行我自己的内核?我需要购买像树莓派这样的新机器吗?

cpu - 普通的 x86 或 AMD PC 是直接从 ROM 运行启动/BIOS 代码,还是先将其复制到 RAM?

c++ - posix_fallocate 是否适用于以追加模式打开的文件?

linux - ARM汇编 "retne"指令

c - 如何在 Linux 中检查信号处理程序

linux - yum更新后Xen CentOS 6 VM无法启动-内核错误

ruby-on-rails - Ubuntu 服务器上的 ROR、Redis、Resque、God 和 Cron - 启动