这可能是一个愚蠢的问题,但有没有办法在不使用printk(即syslog)的情况下从驱动程序中写入Linux控制台?
例如,在Linux驱动程序中工作,我需要在事件发生时输出单个字符。我想输出' w'当一个写事件开始,并且' W'什么时候结束这种情况经常发生,所以通过syslog发送它并不理想。
理想情况下,如果我可以做相当于printf(" W")或putc(' W')并且只是简单地使用默认控制台就会很棒。
TIA 麦克
答案 0 :(得分:4)
写入控制台不是您经常要做的事情。如果printk
对您而言过于昂贵,则不应该以任何方式尝试控制台。
但如果你坚持:
在printk
内,打印到控制台由call_console_drivers
处理。此函数找到控制台(通过register_console
注册)并调用它来打印数据。实际的驱动程序取决于您正在使用的控制台。 VGA屏幕是一个选项,串口是另一个选项(取决于启动参数)。
您可以尝试使用console.h
中的功能直接与控制台进行交互。我不知道让它发挥作用有多难。
答案 1 :(得分:0)
不幸的是没有,因为内核中没有“控制台”的概念(即用户空间进程)。您可以尝试其他kernel debugging options