2011-01-26 67 views
0

对于我正在写入的软件,我需要知道何时Linux Framebuffer得到更新。 我需要类似Windows镜像驱动程序(更多信息请参见wikipedia上的Mirror_driver)。用于Linux Framebuffer的Windows镜像驱动程序

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

从我所看到的,我需要编写一个模块,它在framebuffer特定模块之后被加载,并且钩住fb ops结构来注入自己的东西并捕获更新。

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

谢谢!

回答

1

对于一般的内核模块写入提示,您可以阅读书籍:Linux Kernel DevelopmentLinux Kernel in a NutshellLinux Device Drivers

当你了解如何构建自己的内核模块的基础知识之后,你可以阅读内核的源代码来找出framebuffer的东西(从Documentation/fb/framebuffer.txt开始)。我不确定你是否可以像这样挂载framebuffer驱动程序,如果没有,你可能需要自己添加钩子支持或者'劫持'主要驱动程序的事件来模拟挂钩。例如,假设有一个函数在有更新时被调用。您可以找到指向此函数的指针,保存该值,然后使用指向您的函数的指针进行修改。你的函数内部调用原始函数,然后你自己的代码来操纵你想要的并且正确地返回。

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

+0

谢谢你的回答,我会给这些书上一笔。 – 2011-01-27 09:14:31