Linux kernel printk/pr_信息仍未打印到内核缓冲区

Linux kernel printk/pr_信息仍未打印到内核缓冲区,linux-kernel,linux-device-driver,printk,Linux Kernel,Linux Device Driver,Printk,我正在尝试调试为什么我所做的更改不能正常工作。这很奇怪,因为这个驱动程序有两个不同的版本同时运行(mpt2sas和mpt3sas),而且变化是如此的相似。此更改在MPT2 AS中有效,但在MPT3AS中无效。我得弄清楚原因。我的第一个想法是:打印出驾驶员实际检查的内容 为此,我阅读了Stack Overflow的文章,并引用了Stack Overflow中关于类似问题的一些链接(例如和)。我当前的printk级别: [root@dmandylnx64 ~]# cat /proc/sys/kern

我正在尝试调试为什么我所做的更改不能正常工作。这很奇怪,因为这个驱动程序有两个不同的版本同时运行(mpt2sas和mpt3sas),而且变化是如此的相似。此更改在MPT2 AS中有效,但在MPT3AS中无效。我得弄清楚原因。我的第一个想法是:打印出驾驶员实际检查的内容

为此,我阅读了Stack Overflow的文章,并引用了Stack Overflow中关于类似问题的一些链接(例如和)。我当前的printk级别:

[root@dmandylnx64 ~]# cat /proc/sys/kernel/printk
8       4       1       7
然而,当我这样做时,我看不到任何输出:

dmesg | less   # and search around for my strings
我发现了另一个链接,说明内核缓冲区是通过/proc/kmsg提供的。所以,我做到了

cat /proc/kmsg
。。。还是没有骰子。我运行我的程序,没有看到打印。我在上面提供的一个链接中说,“将printk更改为pr_info成功了…”。我也试过了

printk(KERN_DEBUG "MPT3SAS: 0x%08x\n", someIntegerData);
// became
pr_dbg("MPT3SAS: 0x%08x\n", someIntegerData);
不,那也不行。我将它们从调试级别更改为信息级别,从而提高了优先级。不,那没用

问题很简单:我错过了什么

编辑我忘了提及,甚至不确定它是否相关,但这是CentOS 6.5

谢谢,

安迪

@osgx这是一个很好的问题,必须提出。是的,我重新启动了。我甚至使用modinfo来确保我所更改的版本号和戳记在适当的标题中得到更新。@AndrewFalanga您的printk()消息在哪里?它们是否在模块init中?你能试试printk(“测试…”\n“;”吗;?
printk
KERN_ALERT
一起工作吗?我不能说我知道问题出在哪里。我和另一个办公室(几个州之外)的一位同事讨论了一下,我们发现它确实起了作用,但这是经过一些改造后产生的。我认为,不知何故,我的构建环境被破坏了。有一次,尽管内核是从同一棵树构建的,但我无法充分加载从这个源代码树构建的模块。对构建区域的清理和对所有内容的重建/重新安装似乎已经纠正了问题。