Cześć,
Chciałem stworzyć moduł jądra Linux który jako argumenty przyjmie moje imię, oraz dwie liczby całkowite, a potem wypisze imię oraz sumę tych liczb na standardowym wyjściu. Niestety plik się nie kompiluje. Dostaję komunikat: make[2]: *** Brak reguł do zrobienia obiektu '/home/rafal/Core/core.o', wymaganego przez '/home/rafal/Core/core.mod'. Stop. Poniżej wklejam kod Makefile oraz modułu. Ktoś podpowie co jest nie tak.
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
static char *my_name= "Janusz";
module_param(my_name, charp, 0644);
MODULE_PARM_DESC(my_name, "String");
static int first_value = 1;
module_param(first_value, int, 0644);
MODULE_PARM_DESC(first_value, "Integer");
static int second_value = 2;
module_param(second_value, int, 0644);
MODULE_PARM_DESC(second_value, "Integer");
static int __init my init(void)
{
int sum;
sum= first_value+second_value;
printk(KERN_INFO "[parameters] Init module!\n");
printk(KERN_INFO "[parameters] my_name = %s\n", my_name);
printk(KERN_INFO "[parameters] sum = %d\n", sum);
return 0;
}
void __exit my_exit(void)
module_init(my_init);
module_exit(my_exit);
obj-m := core.o
KERNELDIR = /lib/modules/$(shell uname -r)/build
all:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
clean:
$(MAKE) -C $(KERNELDIR) M=$(PWD) clean