Ошибка при вставке scsi_wait_scan — неверный формат модуля

Система CentOS 6.3.

Я скомпилировал новое ядро, и получившийся rpm установил на целевую машину. При загрузке из ядра получаю ошибку в заголовке вопроса.

Я извлек соответствующие initramfs и сравнил вывод:

   modprobe --dump-modversions /path/to/scsi_wait_scan.ko

с записями в соответствующих файлах /boot/symvers-*. Подходят контрольные суммы всех символов, включая module_layout.

Есть ли способ извлечь symvers из самого ядра?


person dimba    schedule 18.12.2012    source источник


Ответы (1)


Я нашел проблему.

Короткий ответ

Проблема заключалась в том, что я установил rpm ядра (B) поверх уже установленного rpm ядра (A), не удаляя его предварительно.

Подробный ответ

scsi_mod.ko принадлежал только (А). Во время установки (B) scsi_mod.ko находился в /lib/modules/. Когда intramfs был создан в постустановочном скрипте (B). depmod решил, что scsi_wait_scan.ko зависит от scsi_mod.ko, хотя оба строятся с разными конфигурациями.

Позже при загрузке машины ядро ​​​​запустило initramfs. Это, в свою очередь, modprob'ed scsi_wait_scan.ko. modprobe попытался загрузить как следствие scsi_mod.ko, что не соответствует текущему ядру, что привело к ошибке, которую я видел.

person dimba    schedule 19.12.2012
comment
когда вы устанавливаете одно и то же ядро ​​дважды, нет ли отдельных каталогов модулей. например, /lib/modules/‹kernel_version1›/.. и /lib/modules/‹kernel_version1(1)›/… - person raj_gt1; 09.07.2013