2011-01-26 3 views
0

pour un logiciel que j'écris j'ai besoin de savoir quand le framebuffer linux est mis à jour. J'ai besoin de quelque chose comme Windows Mirror Drivers (pour plus d'infos regardez Mirror_driver sur wikipedia).Windows Mirror Driver pour Linux Framebuffer

En regardant autour je n'ai rien trouvé, donc je cherche un moyen d'accomplir ceci. D'après ce que j'ai vu, j'ai besoin d'écrire un module qui est chargé après le module spécifique de framebuffer et qui accroche la structure de fb ops pour injecter des choses et attraper les mises à jour.

Quelqu'un peut-il me donner un indice? Je n'ai pas beaucoup d'expérience avec l'écriture de modules noyau.

Merci!

Répondre

1

Pour les conseils généraux d'écriture de modules du noyau, vous pouvez lire les manuels suivants: Linux Kernel Development, Linux Kernel in a Nutshell et Linux Device Drivers. Après avoir compris les bases sur la façon de construire & installez vos propres modules du noyau, vous pouvez lire le code source du noyau pour savoir où se trouve le stuff du framebuffer (commencez par Documentation/fb/framebuffer.txt). Je ne suis pas sûr si vous pouvez simplement brancher sur le pilote framebuffer comme cela, sinon, vous devrez peut-être ajouter le support de crochet vous-même ou «détourner» les événements du pilote principal pour simuler l'accrochage. Par exemple, supposons qu'une fonction est appelée chaque fois qu'il y a une mise à jour. Vous trouvez où le pointeur de cette fonction est déclaré, enregistrez la valeur, puis modifiez-le avec un pointeur sur votre fonction. Dans votre fonction, vous appelez la fonction d'origine, puis votre propre code pour manipuler ce que vous voulez et retourner correctement. Je ne sais pas grand-chose sur les choses framebuffer, donc je devine juste quelles sont vos options. Il est possible qu'il y ait une liste de discussion quelque part spécifique au sujet de linux-fb. This might me a good start.

+0

Merci pour votre réponse, je vais donner un coup de feu à ces livres. –