URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5556
[ Назад ]

Исходное сообщение
"Добавление функций в ядро"

Отправлено Вован , 07-Июл-06 17:10 
Добрый день!

Решил я добавить в scheduler парочку новых функций :). Вроде сделал все правильно:

sched.h :

void new_func(int param);

sched.c :

void new_func(int param)
{
.......
}
EXPORT_SYMBOL(new_func);

Перекомпилил после этого ядро (make clean потом make xconfig потом make). И вот пытаюсь подключить к ядру insmod-ом модуль, в котором эта функция вызывается. Линукс пишет ошибку
Error inserting ..... -1 Unknown symbol in module

как неизвестный символ выдается эта функция. Ядро 2.6.14......

Помогите пожалуйста, может кто-нибудь знает что надо делать - я уже третий день с этим парюсь!


Содержание

Сообщения в этом обсуждении
"Добавление функций в ядро"
Отправлено int_0d , 10-Июл-06 13:14 
а можно cat /proc/kallsyms | grep new_func в студию?

"Добавление функций в ядро"
Отправлено Вован , 10-Июл-06 23:38 
>а можно cat /proc/kallsyms | grep new_func в студию?


А что значит "в студию"? Нужно этот каталог где-то в Makefile прописать? Если да, то где и как это делается?


"Добавление функций в ядро"
Отправлено int_0d , 11-Июл-06 10:03 
>>а можно cat /proc/kallsyms | grep new_func в студию?
>
>
>А что значит "в студию"? Нужно этот каталог где-то в Makefile прописать?
>Если да, то где и как это делается?


в студию значит неплохо было бы проделать вышеуказанную процедуру (cat /proc/kallsyms | grep new_func), после чего результат поместить сюда. В связи с жарой мои телепатические способности резко пошли на спад.


"Добавление функций в ядро"
Отправлено Вован , 11-Июл-06 15:44 

> в студию значит неплохо было бы проделать вышеуказанную процедуру (cat /proc/kallsyms
>| grep new_func), после чего результат поместить сюда. В связи с
>жарой мои телепатические способности резко пошли на спад.

:)))  Не выдает вообще ничего.


"Добавление функций в ядро"
Отправлено int_0d , 11-Июл-06 16:10 

>:)))  Не выдает вообще ничего.
из чего следует, что в ядре ваша функция отсутствует. Значит вы скорее всего 1) загрузили не то ядро (поелику make clean вы написали, что сделали)
      2) у вас 2.4.х (тогда в студию надо cat /proc/ksyms | grep new_func)
    
ЗЫ: естесно ,что new_func - имя реальной функции, добавленной вами в ядро



"Добавление функций в ядро"
Отправлено Вован , 11-Июл-06 17:16 

>из чего следует, что в ядре ваша функция отсутствует. Значит вы скорее
>всего 1) загрузили не то ядро (поелику make clean вы написали,
>что сделали)
>      2) у вас 2.4.х (тогда в
>студию надо cat /proc/ksyms | grep new_func)
>
>ЗЫ: естесно ,что new_func - имя реальной функции, добавленной вами в ядро
>

В том-то и проблема, что вроде бы делаю все так как надо. Ядро 2.6 железно ( ASP 11 ). Грузил/билдил его тоже по книжке:
сначала исходники распаковываются в usr/src/asplinux/BUILD/kernel-2.6.14
потом содержимое этой папочки копируем в usr/src/linux-2.6.14
делаем на нее символьную ссылочку linux в папке usr/src
залезаем туда и говорим make...

Если в свежеустановленном линуксе попытаться написать свой драйвер без отбуилженного таким образом ядра, то он начинает ругаться, что свидетельствует о том, что ядро действительно буилдится.

Так что я вообще в непонятках...
Может, у меня дистрибутив такой долбанутый, что каким-то образом предотвращает появление новых функций? Или я все же делаю что-нибудь не так?



"Добавление функций в ядро"
Отправлено int_0d , 11-Июл-06 17:52 
билдится - это хорошо, а вы потом загружаете это свежеотбилженное ядро?

"Добавление функций в ядро"
Отправлено Вован , 11-Июл-06 19:06 
> билдится - это хорошо, а вы потом загружаете это свежеотбилженное ядро?
>

Спасибо! Не знал, что его нужно еще и загружать! Горю от нетерпения узнать, как это делается. Если вам не хочется самим все расписывать, то может, знаете где можно это прочитать?


"Добавление функций в ядро"
Отправлено Вован , 11-Июл-06 20:19 
Буду очень благодарен :)))

"Добавление функций в ядро"
Отправлено int_0d , 12-Июл-06 09:44 
>Буду очень благодарен :)))

google рулит


"Добавление функций в ядро"
Отправлено Вован , 12-Июл-06 16:11 
>>Буду очень благодарен :)))
>
>google рулит

Воистину рулит :))) Все нашел. Сенкс!