c - 适用于 Linux 帧缓冲区的 Windows 镜像驱动程序

标签 c linux-kernel kernel-module framebuffer

对于我正在编写的软件,我需要知道 Linux 帧缓冲区何时更新。 我需要诸如 Windows 镜像驱动程序之类的东西(有关更多信息,请参阅维基百科上的 Mirror_driver)。

环顾四周,我没有找到任何东西,所以我正在寻找一种方法来实现这一目标。

据我所知,我需要编写一个模块,该模块在帧缓冲区特定模块之后加载,并 Hook fb ops 结构以注入(inject)自己的内容并捕获更新。

有人可以给我提示吗?我对内核模块编写没有太多经验。

谢谢!

最佳答案

一般的内核模块编写技巧,你可以阅读书籍:Linux Kernel Development , Linux Kernel in a NutshellLinux Device Drivers .

了解如何构建和安装自己的内核模块的基础知识后,您可以阅读内核的源代码以找出帧缓冲区内容的位置(从 Documentation/fb/framebuffer.txt 开始)。我不确定你是否可以像这样连接帧缓冲区驱动程序,如果不能,你可能需要自己添加钩子(Hook)支持或“劫持”主驱动程序的事件来模拟钩子(Hook)。例如,假设有一个函数,只要有更新就会被调用。您找到声明该函数的指针的位置,保存该值,然后使用指向您的函数的指针对其进行修改。在函数内部,您调用原始函数,然后调用您自己的代码来操作您想要的内容并正确返回。

我对帧缓冲区的东西了解不多,所以我只是猜测你的选择是什么。可能有一个特定于 linux-fb 主题的讨论列表。 This might me a good start .

关于c - 适用于 Linux 帧缓冲区的 Windows 镜像驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4810510/

相关文章:

c - 理解 linux 内核中的类型检查

c - 让 ReadFile() 在读取内容后立即返回

c - OpenCV:如何将两张静态图像合并为一张并在其上浮雕文本?

C (Windows) 程序无错误退出

linux - 是否有任何用户级命令来检查内核镜像是否支持 Linux 中的 NETLINK?

Linux 内核 : CMA & Device Tree

c - Windows 有可以从 C 调用的 JSON API 吗?

linux-kernel - 这段代码如何在 Linux 内核中运行?

linux - 在 Linux 内核模块中监听新进程

编译一个简单的设备驱动程序代码