Просто чтобы расширить некоторые примеры, вот проблема: Учитывая следующий источник:
/* hello.c */
#include <linux/module.h>
#include <linux/kernel.h>
int init_module(void)
{
printk(KERN_INFO "Hello world\n");
return 0;
}
void cleanup_module(void)
{
printk(KERN_INFO "Goodbye world\n");
}
/* end of hello.c */
и следующий Makefile:
obj-m += hello.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
Когда я набираю make, находясь вВ той же директории, что и исходный файл, и в файлах make, я получаю сообщение: «Ничего не нужно делать для« всего ». Компиляция здесь останавливается, и объектный файл не создается».
Теперь просто для тестирования я попробовалновый более простой Makefile: TARGET: = hello $ {TARGET} .o: $ {TARGET} .c
Запуск make дает мне новую ошибку: hello.c: 1: фатальная ошибка: linux / module.h:Нет такого файла или каталога.
, однако этот файл доступен в папке:
/usr/src/linux-headers-2.6.35-22/include/linux
, а также в
/usr/src/linux-headers-2.6.35-22-generic/include/linux
, как и файл kernel.h
Чего мне не хватает, есть идеи?
Заранее спасибо