写入Linux控制台而不使用printk

这可能是一个愚蠢的问题,但有没有办法写一个驱动程序内的Linux控制台,而不使用printk(即系统日志)?

例如,在linux驱动程序中工作时,我需要输出一个字符作为事件发生。 我想在写入事件开始时输出'w',结束时输出'W'。 这经常发生,所以通过系统日志发送是不理想的。

理想情况下,如果我可以做相当于printf(“W”)或putc('W')的操作,并且只需要将其从默认控制台中取出,那就太棒了。

TIA迈克

写入控制台是不是你想要经常做的事情。 如果printk对您来说太贵,您不应该以任何方式尝试控制台。

但是如果你坚持:

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

您可以尝试使用console.h的函数直接与console.h进行交互。 我不知道要做到这一点有多难。

不幸的是没有,因为在内核中没有“控制台”的概念(这是一个用户空间进程)。 您可以尝试其他内核调试选项