HID Положение мыши Исходный код ядра Linux - PullRequest
1 голос
/ 15 июня 2009

Я хочу работать с событиями HID Mouse.

Над каким модулем ядра Linux я буду работать для обработки событий? А затем передать эти события (x, y) подсистеме ввода.

Модули могут быть

  • hid-core.c / usbhid

  • hid-quirks.c или

  • hiddev.c

У меня есть весь исходный код ядра, и я могу добавить его в свое ядро.

Вывод: lsmod | grep hid

myusbhid ------------------ 35712 ---------- 0

спрятал ------------------ 50560 ----------- 1 myusbhid

usbcore ------------------- 149488 ----------- 4 myusbhid, uhci_hcd, ehci_hcd

Причина в том, что я пытаюсь изменить координаты HID-мыши. Это означает, что я хочу, чтобы местоположение моего курсора перемещалось в упомянутой позиции, а не в позиции мыши по умолчанию.

Спасибо

1 Ответ

1 голос
/ 17 июня 2009

hid.c был доступен в ядре 2.4.9 и более ранних версиях, но теперь разбит на несколько файлов

События HID клавиатуры / мыши / джойстика можно отслеживать / изменять на уровне ядра Получите исходный файл ядра вашей версии ядра.

http://lxr.linux.no/linux+v2.6.27.14/drivers/

для модуля ядра HID (hid.o) linux, переименуйте исходные файлы в

  my-hiddraw.c
*

  my-hid-core.c
*

  my-hid-input.c
*

  my-hid-input-quirk.c

Makefile:

obj-m: = myhid.o

myhid-objs: = my-hiddraw.o my-hid-core.o my-hid-input.o my-hid-input-quirk.o

KDIR: = / lib / modules / $ (shell uname -r) / build

PWD: = $ (shell pwd)

по умолчанию:

$ (MAKE) -C $ (KDIR) M = $ (PWD) модулей

Добавить модуль в ядре как

$ sudo rmmod usbhid; sudo rmmod hid; sudo insmod myhid.ko; sudo insmod / [МОДУЛЬНЫЙ ПУТЬ] /usbhid.ko

*********************************************** ****************************

hid-input.c отвечает за отправку событий в подсистему ввода / hiddev.c

Для справки смотрите документацию Linux hiddev.txt и input.txt

В hid-input.c событие hidinput _ hid _ () отвечает за отправку событий

  • void hidinput _ hid _ event (struct hid _ устройство * hid, структура hid _ поле * поле, структура hid_usage * использование, значение __s32)

Использовать в конце функции перед событием ввода _ (ввод, использование-> тип, использование-> код, значение);

printk ("\ n hidinput _ hid _ событие% i,% i,% i", использование-> тип, использование-> код, значение);

Получить / изменить эти значения и передать их в input _ events ()

*********************************************** ****************************

Привет

mmadni [AT] Gmail [DOT] ком

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...