这可能是一个愚蠢的问题,但有没有办法写一个驱动程序内的Linux控制台,而不使用printk(即系统日志)?
例如,在linux驱动程序中工作时,我需要输出一个字符作为事件发生。 我想在写入事件开始时输出'w',结束时输出'W'。 这经常发生,所以通过系统日志发送是不理想的。
理想情况下,如果我可以做相当于printf(“W”)或putc('W')的操作,并且只需要将其从默认控制台中取出,那就太棒了。
TIA迈克
写入控制台是不是你想要经常做的事情。 如果printk
对您来说太贵,您不应该以任何方式尝试控制台。
但是如果你坚持:
在printk
,打印到控制台由call_console_drivers
处理。 这个函数找到控制台(通过register_console
)并调用它来打印数据。 实际的驱动程序取决于您正在使用的控制台。 VGA屏幕是一个选项,串口是另一个(取决于启动参数)。
您可以尝试使用console.h
的函数直接与console.h
进行交互。 我不知道要做到这一点有多难。
不幸的是没有,因为在内核中没有“控制台”的概念(这是一个用户空间进程)。 您可以尝试其他内核调试选项