Linux-dmesg不显示printk消息

Linux-dmesg不显示printk消息,linux,linux-kernel,linux-device-driver,Linux,Linux Kernel,Linux Device Driver,因此,我正在学习编写设备驱动程序,并编写了以下简单的驱动程序: #包括 #包括 #包括 静态int\uu init gotemp\u init(void) { printk(KERN_调试“helloworld”); 返回0; } 静态void\uuu退出gotemp\u退出(void) { } 模块初始化(gotemp初始化); 模块出口(gotemp出口); 模块作者(“Abhinav Jain”); 模块描述(“简单驱动程序”); 模块许可证(“GPL”); 生成文件如下所示: obj-

因此,我正在学习编写设备驱动程序,并编写了以下简单的驱动程序:

#包括
#包括
#包括
静态int\uu init gotemp\u init(void)
{
printk(KERN_调试“helloworld”);
返回0;
}
静态void\uuu退出gotemp\u退出(void)
{
}
模块初始化(gotemp初始化);
模块出口(gotemp出口);
模块作者(“Abhinav Jain”);
模块描述(“简单驱动程序”);
模块许可证(“GPL”);
生成文件如下所示:

obj-m := hello.o

KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD       := $(shell pwd)

all:
        $(MAKE) -C $(KERNELDIR) M=$(PWD)
但是
dmesg
的输出不会打印
“Hello world”
。 我还尝试了
KERN_INFO
,但结果仍然相同,尽管
lsmod
显示正在加载模块
hello


那么为什么没有记录该消息呢?

它应该可以正常工作。有时,由于缓冲,消息可能会延迟到达。然后需要在字符串末尾添加换行符来刷新缓冲区。试着做:

printk(KERN_DEBUG "Hello world\n");

它应该很好用。有时,由于缓冲,消息可能会延迟到达。然后需要在字符串末尾添加换行符来刷新缓冲区。试着做:

printk(KERN_DEBUG "Hello world\n");