系统是CentOS 6.3。
我已经编译了一个新的内核,并在目标机上安装了生成的RPM。从内核启动时,我会收到问题标题中的错误。
我已经提取了相应的initramfs,并比较了:
的输出 modprobe --dump-modversions /path/to/scsi_wait_scan.ko
带有相应/boot/ Symvers - *的条目。所有符号校验和拟合,包括 module_layout 。
是否有一种方法可以从内核本身提取 Symers ?
我发现了问题。
简短答案
问题是我在已经安装的内核rpm(a)上安装了内核rpm(b),不先删除它。
详细信息答案
scsi_mod.ko
仅由(a)拥有。安装(b)时,scsi_mod.ko
在/lib/lib/模块中/。当在(b)的后插图脚本中创建Intramfs时。DEPMOD决定scsi_wait_scan.ko
取决于scsi_mod.ko
,而两者都靠不同的配置构建。
稍后启动计算机时,内核开始运行initramfs。这又是modprob'ed scsi_wait_scan.ko
。MODPROBE尝试加载为CONIQUENCE scsi_mod.ko
,这不适合当前内核,因此导致了我看到的错误。