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

Исходное сообщение
"Не получается создать модуль"

Отправлено neoweber , 10-Июл-07 13:14 
Пытаюсь разобраться в принципах создания модулей ядра. Попробовал сделать пример с этого сайта:

Файл mod-1.c
#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:
obj-m += mod-1.o

При выполнении: make -C /lib/modules/2.4.31/build SUBDIRS=/mod_prog modules
Выводится:

make: Entering directory `/usr/src/linux-2.4.31'
make -C  /mod_prog CFLAGS="-D__KERNEL__ -I/usr/src/linux-2.4.31/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=i486  -DMODULE" MAKING_MODULES=1 modules
make[1]: Entering directory `/mod_prog'
make[1]: *** Нет правила для сборки цели `modules'.  Останов.
make[1]: Leaving directory `/mod_prog'
make: *** [_mod_/mod_prog] Ошибка 2
make: Leaving directory `/usr/src/linux-2.4.31'


Исходники ядра лежат тут /usr/src/linux-2.4.31

Подскажите пожалуйста: что я делаю не так.
Спасибо.


Содержание

Сообщения в этом обсуждении
"Не получается создать модуль"
Отправлено NuINu , 10-Июл-07 14:22 
>Пытаюсь разобраться в принципах создания модулей ядра. Попробовал сделать пример с этого
>сайта:

>
>В эту же папку положил Makefile:
>obj-m += mod-1.o

>make[1]: *** Нет правила для сборки цели `modules'.  Останов.
>make[1]: Leaving directory `/mod_prog'

у тебя больно "худой" макефайл
вот какой он бывает обычно

O_TARGET        := agp.o

export-objs := agpgart_be.o

list-multi := agpgart.o
agpgart-objs := agpgart_fe.o agpgart_be.o

obj-$(CONFIG_AGP) += agpgart.o

include $(TOPDIR)/Rules.make

agpgart.o: $(agpgart-objs)
        $(LD) $(LD_RFLAG) -r -o $@ $(agpgart-objs)


ключевое слово инклюде.
CONFIG_AGP=m