不使用printk写入linux控制台

时间:2012-05-21 20:33:13

标签: linux linux-kernel

这可能是一个愚蠢的问题,但有没有办法在不使用printk(即syslog)的情况下从驱动程序中写入Linux控制台?

例如,在Linux驱动程序中工作,我需要在事件发生时输出单个字符。我想输出' w'当一个写事件开始,并且' W'什么时候结束这种情况经常发生,所以通过syslog发送它并不理想。

理想情况下,如果我可以做相当于printf(" W")或putc(' W')并且只是简单地使用默认控制台就会很棒。

TIA 麦克

2 个答案:

答案 0 :(得分:4)

写入控制台不是您经常要做的事情。如果printk对您而言过于昂贵,则不应该以任何方式尝试控制台。

但如果你坚持:

printk内,打印到控制台由call_console_drivers处理。此函数找到控制台(通过register_console注册)并调用它来打印数据。实际的驱动程序取决于您正在使用的控制台。 VGA屏幕是一个选项,串口是另一个选项(取决于启动参数)。

您可以尝试使用console.h中的功能直接与控制台进行交互。我不知道让它发挥作用有多难。

答案 1 :(得分:0)

不幸的是没有,因为内核中没有“控制台”的概念(即用户空间进程)。您可以尝试其他kernel debugging options