Linux 内核 - 屏幕显示驱动程序



我需要编写Linux内核模块,该模块将在屏幕上的所有其他窗口上显示消息框。并且我需要在内核中绘制图像,不需要从用户空间应用程序访问此图片。我不明白该怎么做。我应该使用什么框架 - 帧缓冲或 v4l?我想直接编程显示控制器不是一个好主意,因为内核中还有其他驱动程序已经这样做了。所以,问题是:如何在内核驱动程序之间进行交互,以及如何指定我的图片应该在顶部?

我将不胜感激任何帮助。

你想要

的不能用这种方式完成,因为内核不处理GUI,特别是不处理窗口系统。它以一种或另一种形式提供对视频输出设备的访问,但屏幕的所有实际绘制和合成都是在用户空间中完成的。

现在,内核模块将有能力覆盖帧缓冲区,但是,正如您所注意到的,有多个接口用于不同的目的。此外,即使对于 2D 桌面,使用 3D 渲染也很常见。为了您的目的劫持 3D 命令流将非常困难。

即使您管理了所有这些,也不能保证用户空间窗口系统不会立即覆盖您的消息框。甚至可能在它到达显示器之前。

所以不,它不能直接从内核以任何实际的方式完成。最好的选择是用户空间守护进程,像任何其他 GUI 程序一样,通过标准通道代表内核代码显示消息。

最新更新