Я создал драйвер виртуальной мыши в соответствии с книгой Essential Linux Device Drivers . После того, как я записал координаты echo xy> / sys / ... / координат в узел sysfs, моя программа генерирует пакеты событий через интерфейс событий / dev / input / event5 (я проверил это) , Этот интерфейс событий подключен к GPM gpm -m / dev / input / event5 -t evdev . Но мышь не двигается. Я задал этот вопрос на stackoverflow и выяснил, что может быть проблема с конфигурацией X11. Является ли это возможным? Что может помешать работе моего водителя в этих условиях? Я использую Ubuntu 11.04 на виртуальной коробке. Спасибо.
[21.022] (II) Не указан драйвер ввода / идентификатор (игнорируется)
[ 272.987] (II) config / udev: Добавление устройства ввода (/ dev / input / event5)
[272.987] (II) Драйвер ввода / идентификатор не указан (игнорируется)
[666.521] (II) config / udev: Добавление устройства ввода (/ dev / input / event5)
[666.521] (II) Драйвер ввода / идентификатор не указан (игнорируется)
Инициализировав поле имени устройства и включив события клавиш (BTN_MOUSE), я мог заставить мышь двигаться. Я все еще пытаюсь найти причину, по которой относительные события не работают, без включения событий с кнопками.
В драйвере устройства ввода (т.е. функция модуля инициализации драйвера виртуальной мыши) я добавил следующие строки кода непосредственно перед регистрацией устройства ввода. Остальной код такой же, как в книге
// Имя устройства
vms_input_dev-> name = "Virtual Mouse";
// Включить относительные события и события Button [ 114]
set_bit (EV_REL, vms_input_dev-> evbit);
set_bit (EV_KEY, vms_input_dev-> evbit);
set_bit (BTN_LEFT, vms_input_dev-> keybit);
set_bit (REL_X, vms_input_dev-> relbit);
set_bit (REL_Y, vms_input_dev-> relbit);
Код работал для меня в Ubuntu 12.04