не загружаются модули ядра [РЕШЕНО]
поставил Gentoo 2007.0, ядро 2.6.19-gentoo-r5
выполнил emerge nvidia-drivers и emerge ltmodem
всё прошло успешно, соответствующие модули ядра (*.ko) были созданы в /lib/modules
однако загрузить эти модули (insmod или modprobe) не получилось, выдаётся сообщение
cannot load module ... : invalid module format
это же сообщение видно и при загрузке системы
создал свой модуль ядра вот с таким тривиальным кодом:
#include int __init init_module (void) { void __exit cleanup_module (void) { в Makefile написал obj-m += kodummy.o выполняю команду make -C/usr/src/linux-2.6.19-gentoo-r5 SUBDIRS=$PWD modules опять же файл *.ko создаётся, никаких сообщений при сборке не выводится при этом nm этот файл читает, все символы выводит правильно ядро конфигурировал, MODULES стоит в YES куда двигаться дальше? спасибо
return 0;
}
}
пробую его загрузить (insmod) - то же самое: invalid module format
более того - этот же модуль прекрасно загружается и выгружается в Ubuntu c ядром 2.6.20-15-generic
- Для комментирования войдите или зарегистрируйтесь
По моему, дело в
По моему, дело в ядре. Попробуйте CONFIG_MODVERSIONS=y. Может дело в этом.
дело в ядре, конечно
дело в ядре, конечно. старое - потому что такое было в дистрибутиве. но ведь вряд ли в версиях ядра до 2.6.19 нельзя было загружать модули, правда? нужно как-то его правильно сконфигурировать. CONFIG_MODVERSIONS и так стоит в YES, это я с самого начала попробовал
Что ж ядро-то
Что ж ядро-то такое старое?
Пожалуйста, не описывайте своё железо в подписи
Если не
Если не ошибаюсь ругается потому что нет:
MODULE_LICENSE{"GPL");
MODULE_AUTHOR("BlaBla");
Пример модуля hello_world есть в книжке:
http://www.gentoo.ru/node/7764
та же мысль
спасибо
мне несколько минут назад пришла в голову такая же мысль насчёт GPL - не помогло. сейчас попробую с MODULE_AUTHOR.
на самом деле написать модуль hello_world я в состоянии, мне надо разобраться, почему конкретно этот не работает.
не оно
в общем, с MODULE_AUTHOR тоже не помогло
invalid module format и всё тут
ещё идеи?
взять прмер
взять прмер модуля и начать его "обрезать"
попробую
попробую, но подозреваю, что и рабочий пример из книжки не загрузится
ещё раз: то, что я написал, загружается в других системах (в одной как минимум) - это явно рабочий модуль
что-то с ядром не так, а не с модулем
так и получилось
так и получилось - пример из книжки не заработал, всё то же самое
видимо, остаётся только ядро пересобрать
а чтонить по
а чтонить по этому поводу грит
dmesg | tail
?
продвижение
dmesg | tail действительно оказался очень полезен
там было написано что vermagic у всех этих незагружающихся модулей содержит строку PENTIUM4 а надо чтобы была строка 686 и к тому же 4KSTACK
я запустил make config для ядра там отметил тип процессора 686 вместо Pentium 4 и поставил галочку 4KSTACK
запустил make prepare и make modules_prepare
после этого пересобрал свой пустой модуль (код см. выше)
vermagic действительно стал содержать строки 686 и 4KSTACK
я его попробовал вставить (insmod) и получил сообщение segmentation failed после чего lsmod вообще не запускалась
я перезагрузился и запустил emerge ltmodem (вот тут-то и была моя ключевая ошибка - надо было до конца разобраться со своим модулем)
всё собралось я запустил modprobe ltserial и modprobe ltmodem
одна из этих команд прошла успешно другая тоже выдала segmentation failed
я перезагрузился - и с тех пор Gentoo не может загрузиться
при загрузке модуля ltserial происходит ошибка я нажимаю ^C загрузка продолжается но останавливается на шаге mounting local filesystems
теперь главный вопрос: где убрать упоминание об этом модуле? соответствующие строки в /etc/modules.conf я вроде закомментировал а он всё равно пытается грузиться. можно ли это вообще сделать не загружая это ядро?
Это всего
Это всего навсего означает что у вас ядро и модули собраны разными компиляторами =) вот и все =)
___________________________________________
Gentoo GNU/Linux 2.6.25 GCC 4.2.3 && GCC 4.3.0
Working on Gentoo for iPAQ hx4700 :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера
да это понятно
да это понятно и так
как теперь-то сделать чтобы ядро при загрузке эти модули не грузило?
fin
в общем не получилось у меня как-нибудь изящно эту проблему решить
пересобрал ядро пересобрал все модули под ним
всё естественно стало загружаться
всем спасибо