我正在尝试调试为什么我所做的更改无法正常工作。这很奇怪,因为这个驱动程序有两个不同的版本同时运行(mpt2sas 和 mpt3sas),而且变化是相同的。更改在 mpt2sas 中有效,但在 mpt3sas 中无效。我必须弄清楚为什么。我的第一个想法是:打印出驾驶员实际检查的内容。
为此,我从这里阅读了一些东西,并参考了 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
...仍然没有骰子。我运行我的程序,没有看到 printks。我在上面提供的链接之一是这样说的,“......将 printk 更改为 pr_info 成功了......”。嗯,我也试过了。
printk(KERN_DEBUG "MPT3SAS: 0x%08x\n", someIntegerData);
// became
pr_dbg("MPT3SAS: 0x%08x\n", someIntegerData);
不,那也没用。我通过将它们从 DEBUG 级别更改为 INFO 级别来提高优先级。不,那没有用。
问题很简单:我错过了什么?
编辑 我忘了提,甚至不确定它是否相关,但这是 CentOS 6.5。
谢谢,
安迪