1

我的设备驱动程序的输出也属于 dmesg 被打印在我的标准输出上。有没有办法防止这种情况?

4

2 回答 2

1

您可以通过动态调整控制台日志级别来解决您的问题。

http://tuxthink.blogspot.com/2012/07/printk-and-console-log-level.html

建议您可以通过写入 proc 节点来执行此操作:

echo "6" > /proc/sys/kernel/printk

在他们的示例中将其设置为 6。我怀疑将其设置为 0 或 1 会抑制几乎所有对系统非致命的东西

无论此设置如何,dmesg 仍应可检索日志条目。

但是,这将影响来自所有来源的消息。如果您想更改自定义驱动程序的行为,请考虑向其传递一个标志,该标志会导致程序逻辑抑制消息生成,或者在不太重要的日志级别生成输出,您可能会如上所述将控制台设置为忽略。

于 2013-06-19T12:20:56.980 回答
0

printk() 中有不同级别的打印消息。

有关 printk() 中的不同级别,请参阅http://www.makelinux.net/ldd3/chp-4-sect-2。使用最低日志级别,它不会在标准输出中显示,但可以使用dmesg.

于 2013-06-19T12:24:04.933 回答