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

例如,在Linux驱动程序中工作,我需要在事件发生时输出一个字符。我想在写事件开始时输出“w”,并在结束时输出“W”。这种情况经常发生,因此通过syslog发送消息并不理想。

理想情况下,如果我可以做等同于printf(“W”)或putc('W')的事情,并让它简单地退出默认控制台,那将是很好的。

TIA
麦克风

最佳答案

不需要经常写控制台信息。如果printk对您来说太昂贵了,则不应以任何方式尝试使用控制台。

但是,如果您坚持:

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

您可以尝试使用console.h中的功能直接与控制台进行交互。我不知道要使其工作会多么困难。

关于linux - 不使用printk写入Linux控制台,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10692211/

10-15 03:09