Я пытаюсь сделать свой первый загружаемый модуль ядра на debian wheezy 7.5. Я попробовал несколько примеров кода из разных руководств в Интернете, но он не работает для меня так, как я думаю.
Вот мой код:
#include <linux/module.h>
#include <linux/kernel.h>
void cleanup_module(void)
{
printk(KERN_INFO "exit LKM...");
}
int init_module(void)
{
printk(KERN_INFO "loading LKM...");
return 0;
}
и я компилирую его с помощью Makefile, который выглядит так
obj-m += lkm.o
all:
sudo make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
Таким образом, он компилируется нормально, но когда я загружаю LKM с помощью "$ sudo insmod lkm.ko", а затем просматриваю сообщения журнала, он возвращает "exit LKM ..." < / strong>, поэтому кажется, что insmod вызывает системный вызов cleanup_module вместо init_module. То же самое происходит, когда я использую «$ sudo rmmod lkm», я возвращаю «загрузка LKM ..» в сообщениях журнала. Так что я действительно не знаю, почему это так, и все, что я нашел в сети, это то, что insmod загружает LKM через init_module () и так далее ...
Я был бы признателен за некоторую помощь или объяснение по этому поводу, так как я действительно понятия не имею, что пошло не так.
Спасибо