Windows Mirror Драйвер для Linux Framebuffer - PullRequest
0 голосов
/ 27 января 2011

для программного обеспечения, которое я пишу, мне нужно знать, когда обновится кадровый буфер Linux. Мне нужно что-то вроде Windows Mirror Drivers (более подробную информацию смотрите в Mirror_driver в Википедии).

Оглядываясь вокруг, я ничего не нашел, поэтому я ищу способ сделать это.

Из того, что я видел, мне нужно написать модуль, который загружается после специфического для фреймбуфера модуля и перехватывает структуру fb ops для внедрения собственных вещей и получения обновлений.

Может кто-нибудь дать мне подсказку? У меня нет большого опыта написания модулей ядра.

Спасибо!

1 Ответ

1 голос
/ 27 января 2011

Общие советы по написанию модулей ядра вы можете прочитать в следующих книгах: Разработка ядра Linux , Ядро Linux в двух словах и Драйверы устройств Linux .

После того, как вы поймете основы того, как собирать и устанавливать свои собственные модули ядра, вы можете прочитать исходный код ядра, чтобы выяснить, где находится фреймбуфер (начните с Documentation / fb / framebuffer.txt).Я не уверен, можете ли вы просто так подключить драйвер кадрового буфера, в противном случае вам может понадобиться добавить поддержку перехвата самостоятельно или «перехватить» события основного драйвера для имитации перехвата.Например, предположим, что есть функция, которая вызывается при каждом обновлении.Вы найдете место, где объявлен указатель на эту функцию, сохраните значение, а затем измените его указателем на вашу функцию.Внутри вашей функции вы вызываете исходную функцию, а затем свой собственный код, чтобы манипулировать тем, что вам нужно, и возвращать его должным образом.

Я не знаю много о вещах кадрового буфера, поэтому я просто угадываю, какие у вас варианты.Вполне возможно, что где-то есть список обсуждений, относящийся к теме linux-fb. Это может послужить хорошим началом .

...