Функция инициализации модуля ядра работает как функция завершения и наоборот.
Добавлено: 02.08.2022 22:05
Друзья! Вот модуль my_module.c.
То есть мы его загрузим, должно вывестись "Hello, loading!". А после выгрузки- "Leaving". Инфу взял здесь
На всякий случай, вот Makefile. Собирается нормально.
Соберём (make), загрузим модуль и посмотрим, чё он напечатал:
Нормально это вообще? Теперь выгружаем и опять смотрим:
Вот и всё, собсно. ЧЯДНТ? Можно, конечно, задействовать всякие другие функции типа
module_init и module_exit, но хотелось бы разобраться с этим вопросом. Спасибо, кто откликнется. Debian 11.
Код: Выделить всё
#include <linux/module.h>
int init_module (void)
{
printk (KERN_INFO "Hello, loading!");
return 0;
}
void cleanup_module (void)
{
printk (KERN_INFO "Leaving");
}
MODULE_LICENSE("GPL");
На всякий случай, вот Makefile. Собирается нормально.
Makefile
Код: Выделить всё
obj-m += my_module.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
Shell
$ sudo dmesg -c > /dev/null
$ sudo insmod my_module.ko
$ sudo dmesg -e
[авг 2 23:51] Leaving
$
Shell
$ sudo dmesg -c > /dev/null
$ sudo insmod my_module.ko
$ sudo dmesg -e
[авг 2 23:51] Leaving
$
module_init и module_exit, но хотелось бы разобраться с этим вопросом. Спасибо, кто откликнется. Debian 11.