Linux Printk打印两次:如何抑制带有前缀信息的打印?

Linux Printk打印两次:如何抑制带有前缀信息的打印?,linux,driver,device,printk,Linux,Driver,Device,Printk,我正在尝试linux设备编程,但遇到了一个奇怪的问题。对于我的所有printk行,它将始终在控制台上显示两次 例如,下面是我的helloworld驱动程序: #include <linux/init.h> #include <linux/module.h> #include <linux/kernel.h> MODULE_LICENSE("Dual BSD/GPL"); static int hello_init(void) { printk("&l

我正在尝试linux设备编程,但遇到了一个奇怪的问题。对于我的所有printk行,它将始终在控制台上显示两次

例如,下面是我的helloworld驱动程序:

#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void) {
    printk("<1> Hello world!\n");
    return 0;
}

static void hello_exit(void) {
    printk("<1> Bye, cruel world\n");
}

module_init(hello_init);
module_exit(hello_exit);
当我加载驱动程序时,它将显示消息两次。第二次总是会给出一些我不需要的恼人的前缀信息

# insmod hello.ko
Hello world!
# Oct 31 10:16:35 gumstix user.alert kernel:  Hello world!
我尝试更改printk配置,它只会抑制第一条消息(见下文)。而‘dmesg-n1’也有同样的结果

# echo 0       0       0      0 > /proc/sys/kernel/printk
# insmod hello.ko
# Oct 31 10:29:58 gumstix user.alert kernel:  Hello world!
有谁能告诉我为什么这个前缀信息(timestamp+“gumstix user.alert kernel:”)总是出现?如果可能,如何移除它?非常感谢

以下是我的环境概述:

kernel: linux-2.6.21
qemu: QEMU PC emulator version 0.9.1

可能是因为您将信息级别指定为警报。无论如何,如果您想这样做,请使用
KERN\u ALERT“Hello world”
而不是
“Hello world”
。这样,目的就更清楚了。谢谢你。我也尝试过(警报、信息、警告等),但仍然遇到同样的问题:(
kernel: linux-2.6.21
qemu: QEMU PC emulator version 0.9.1