Проблема с драйвером [message #29463] |
Mon, 14 April 2008 09:40 |
sprut_nsk
Messages: 3 Registered: April 2008
|
Junior Member |
|
|
Добрый день уважаемые!
Такая ситуация: имею сервер от Интела на плате S500VSASAS + 2 SAS винта сконфигуренных как аппаратный ред-зеркало.
Для установки CentOS 5.1 подсовываю драйвет(megasr.ko) от интела для RHEL5.1, система ставится без проблем.
Качаю ядрышко ovz ovzkernel-2.6.18-53.1.13.el5.028stab053.10.src.rpm, собираю с дефолтовыми настройками, ставлю, делаю следующее:
1) ложу в /lib/modules/2.6.18-53.1.13.el5.028stab053.10 драйвер
2) делаю depmod -a 2.6.18-53.1.13.el5.028stab053.10
3) rm /boot/initrd-2.6.18-53.1.13.el5.028stab053.10.img
4) mkinitrd /boot/initrd-2.6.18-53.1.13.el5.028stab053.10.img 2.6.18-53.1.13.el5.028stab053.10
5) переобуваюсь
При старте с нового ядра initrd пробует подгрузить модуль драйвера и пишет что неправильный формат драйвера:
Loading megasr.ko module
megasr: disagrees about version of symbol struct_module
insmod: error inserting '/lib/megasr.ko': -1 Invalid module format
Проделываю все тоже самое с оригинальным ядром kernel-2.6.18-53.1.13.el5.src.rpm ---- работает без проблем.
Для чистоты эксперимента конфигурацию скачанных ядер оставлял без изменение(по дефолту).
Думается что если бы были исходные тексты драйвера, то проблемы бы возможно не возникло. Но интел недает, тока модуль имеем...
Подскажите, пожалуйсто, в чем может быть проблема, и как она решается...
[Updated on: Tue, 15 April 2008 02:19] Report message to a moderator
|
|
|
|
Re: Проблема с драйвером [message #29509 is a reply to message #29497] |
Tue, 15 April 2008 13:38 |
maratrus
Messages: 1495 Registered: August 2007 Location: Moscow
|
Senior Member |
|
|
Здравствуйте,
Насколько я понимаю, все дело в CONFIG_MODVERSIONS, именно этот параметр заставляет проверить crc число для символа struct_module
(./kernel/module.c, функция check_modstruct_version). Можно для чистоты эксперимента скомпилировать ядро с выключенным этим парамером и попробывать снова, но это не очень-то хорошо.
Параметр утилиты modprobe "--force-modversion" позволяет обойти эту проверку. Попробуйте загрузить этот модуль на работающей системе, если удастся, то можно поробовать изменить initrd, вот только что-то у меня не получается в initrd подсунуть modprobe. Во всяком случае, может кто-нибудь скажет, как это делать.
Но тяжело что-либо говорить о стабильности работы таким образом подгурженного модуля.
P.S. Ксати, вот полезная статья для модифицирования initrd в ручную
http://wiki.openvz.org/Modifying_initrd_image
|
|
|
|
|