2

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

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

理想情况下,如果我可以做相当于 printf("W") 或 putc('W') 的操作,然后简单地退出默认控制台,那就太好了。

TIA 迈克

4

2 回答 2

4

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

但如果你坚持:

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

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

于 2012-05-22T06:38:29.053 回答
0

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

于 2012-05-21T23:43:17.033 回答