У меня есть простой модуль, записывается следующим образом:Модуль ядра: нет сообщений для печати. Вызывается функция init?
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
MODULE_LICENSE("GPL");
static int __init hellomod_init(void)
{
printk(KERN_DEBUG, "Hello, world!\n");
return 0;
}
static void __exit hellomod_exit(void)
{
printk(KERN_DEBUG, "Goodbye, world!");
}
module_init(hellomod_init);
module_exit(hellomod_exit);
и
$ cat /proc/sys/kernel/printk
7 7 7 7
так что любые сообщения уровня должны выводиться.
Модуль нагрузки и это может быть проверено с lsmod, однако вывод не производится при загрузке или выгрузке модуля и проверки dmesg.
Я попытался заменить «KERN_DEBUG» на более низкие уровни и до сих пор не выводить, поэтому я не думаю, что уровень журнала является проблемой.
Как еще можно проверить функцию init? Если это не вызвано, какова моя ошибка?
Я бегу и компилируюсь против версии ядра 4.6.1-2 в Arch Linux.
е: упс
Без запятой после 'KERN_DEBUG', просто сообщение' KERN_DEBUG '. –
О, это смущает. Спасибо! – wfc0003