Пытаюсь разобраться в принципах создания модулей ядра. Попробовал сделать пример с этого сайта:Файл 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Подскажите пожалуйста: что я делаю не так.
Спасибо.
>Пытаюсь разобраться в принципах создания модулей ядра. Попробовал сделать пример с этого
>сайта:>
>В эту же папку положил 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.oobj-$(CONFIG_AGP) += agpgart.o
include $(TOPDIR)/Rules.make
agpgart.o: $(agpgart-objs)
$(LD) $(LD_RFLAG) -r -o $@ $(agpgart-objs)
ключевое слово инклюде.
CONFIG_AGP=m