Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > Компиляция Модуля Ядра


Автор: SiTox_ 3.5.2007, 14:52
Привет,народ пытаюсь написать Модуль для ядра написал типа "Hello World" : 
Код

#include <linux/module.h>
#include <linux/kernel.h>       
int init_module(void)
{
        printk("<1>Hello world 1.\n");
        return 0;
}

void cleanup_module(void)
{
        printk(KERN_ALERT "Goodbye world 1.\n");
}

не могу его скопмилить :( и запустить
не могли бы вы привести пример Makefile который бы мог это скомпилить :(

Автор: powerfox 3.5.2007, 18:23
SiTox_, гугл всемогущ:
http://tldp.org/LDP/lkmpg/2.4/html/x208.htm

Автор: MAKCim 3.5.2007, 19:09
SiTox_, вкратце
Makefile
Код

obj-m += <имя модуля>.o

вызов make
Код

# make -C <путь к исходникам ядра> M=`pwd`


Добавлено через 1 минуту и 34 секунды
powerfox
версии 2.4*, имхо, не актуальны

Автор: powerfox 3.5.2007, 19:19
Цитата(MAKCim @  3.5.2007,  20:09 Найти цитируемый пост)
версии 2.4*, имхо, не актуальны 

Не заметил, что на 2.4 даю линк. Надо было самому написать нормально (плохая линуксфорумовская привычка всех в гугл посылать). 

Автор: SiTox_ 3.5.2007, 21:10
Цитата(powerfox @ 3.5.2007,  18:23)
SiTox_, гугл всемогущ:
http://tldp.org/LDP/lkmpg/2.4/html/x208.htm

ispolzoval primer ottuda i pri "make" vidaet:
Код

bash-2.05b# make
gcc -O2 -DMODULE -D__KERNEL__ -W -Wall -Wstrict-prototypes -Wmissing-prototypes -isystem /lib/modules/`uname -r`/build/include   -c -o main.o main.c
main.c:5: warning: no previous prototype for `init_module'
main.c:10: warning: no previous prototype for `cleanup_module'
/lib/modules/2.4.22/build/include/linux/prefetch.h: In function `prefetch':
/lib/modules/2.4.22/build/include/linux/prefetch.h:43: warning: unused parameter `x'
/lib/modules/2.4.22/build/include/linux/prefetch.h: In function `prefetchw':
/lib/modules/2.4.22/build/include/linux/prefetch.h:48: warning: unused parameter `x'

Slackware 9.1 Kernel 2.4

Автор: powerfox 3.5.2007, 21:18
SiTox_, так это только варнинги. Модуль должен был собраться smile

Автор: SiTox_ 3.5.2007, 22:04
nu da sobralsja no hotelos bi bez nih :( 
kak ih ispravit ?

Автор: MAKCim 4.5.2007, 08:51
SiTox_

M
MAKCim
В дальнейшем пользуйтесь опцией "транслит"


Добавлено через 3 минуты и 11 секунд
убери
Код

-W -Wall -Wstrict-prototypes -Wmissing-prototypes

либо для init_module()/cleanup_module() объяви прототипы и
в /lib/modules/2.4.22/build/include/linux/prefetch.h:43/48 удали unused parameter `x'

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)