1
我有一个单模,写成如下:内核模块:不显示printk消息。 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函数被调用?如果没有被调用,我的错误是什么?
我在Arch Linux上运行和编译内核版本4.6.1-2。
E:哎呀
“KERN_DEBUG”后面没有逗号,只是'KERN_DEBUG“消息”'。 –
哦,这是尴尬。谢谢! – wfc0003