LINUX.ORG.RU

загрузка модуля ?


0

0

Здраствуйте не подскажите в чем может быть проблема ?
Написал простенький модкль ядра. Собрал его под конкретное ядро. 
Модуль на этом ядре, на моей рабочей машине загружается - все нормально.
У меня есть целевая машина с урезанным LINUX-ом (busybox - может кто знает)
там есть свои резанные утилиты insmod, rmmod. С помощью этих утилит обычные
модули сетевые компилируемые при компиляции ядра и да-же nvidea  нормально
загружаются. А мой модуль не грузится.
Выдает:
# insmod t5-2.4.26-tec.o
Using t5-2.4.26-tec.o
insmod: unresolved symbol __wake_up
insmod: unresolved symbol __release_region
insmod: unresolved symbol unregister_chrdev
insmod: unresolved symbol register_chrdev
insmod: unresolved symbol __check_region
insmod: unresolved symbol free_irq
insmod: unresolved symbol interruptible_sleep_on
insmod: unresolved symbol request_irq
insmod: unresolved symbol sprintf
insmod: unresolved symbol __request_region
insmod: unresolved symbol printk
insmod: unresolved symbol ioport_resource
#

Моему модулю ничего не требуется (других модулей)
Повторюсь что на рабочей станции все нормально.
Не подскажите в чем может быть проблема ?

anonymous

Добавлю еще. Если использовать утилиту insmod с рабочей станции то она
нормально загружает модуль.  Непонятно почему, может криво написан модуль ?
подскажите если не сложно ?

anonymous
()
Ответ на: комментарий от anonymous

Функций, перечисленных после слов "unresolved symbol", нет в составе ядра целевой машины.

KtaK ★★
()
Ответ на: комментарий от anonymous

При компиляци модуля был использован конфиг ядра не соответсвующего текущему - в твоем случае это ядру твоего кастрата. Тебе нужно перекомпилировать ядро с тем конфигом ядра которое стоит у тебя на урезанной машине.

anonymous
()

Проблемы с версионированием?

Murr ★★
()
Ответ на: комментарий от anonymous

Вот что я сделал.
Собрал с нуля ядро. Под это ядро собрал модуль, изменив линки
/usr/include/asm и /usr/include/linux  так, чтоб они указывали на нужные 
директории нужного мне ядра. Это все на рабочей машине. Загружаю модуль
все работает, он грузится и работает.
Дальше тупо копирую это ядро + модули на целевую машину и мой модуль.
Ядро грузится на целевой машине. Затем я загружаю командочкой insmod
нужные мне драйвера для этого ядра сеть и всякое такое.
Затем пытаюсь загрузить мой самодельный модуль - не выходит.
Пишет те ошибки которые я написал выше. - чудеса.
Тогда беру от рабочей машины insmod - и гружу драйвер - загружается.
 Конечно выход вроде найден.
Но мне не понятно почему все драйвера грузятся от ядра а мой нет,
утилитой от кострированного Linux-а ?  
Драйвер собран под тот конфиг с которым собиралось ядро.
Может криво написан драйвер или я его неправильно собираю ?
Можите чтонибудь подсказать, не знаю что и придумать

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.