Проблема с gdm в debian

Кажется, это было замечено пятнадцать лет назад! Серия сообщений в течение нескольких дней (2002/07 / 17-18) в списке рассылки ядра Linux с заголовком «Поддержка ядра ввода PS2» предполагает, что об этом было известно, но поскольку было более одного способа обработки те же данные, которые, вероятно, должны были быть обработаны для этого конкретного продукта с ручным параметром модуля. Однако этого, похоже, так и не произошло. Подробности лучше всего можно увидеть в этом сообщении:

...

Проблема в том, что драйверу A4Tech все равно. Он просто интерпретирует входящие данные так, как я описал: + -1 - вертикальное перемещение, + -2 - горизонтальное, 0 - отсутствие движения, а все остальное игнорируется ... Это интерпретация A4Tech протоколов ImPS / 2 и ExPS / 2. .

Таким образом, мы можем либо предположить (как это делает GPM), что движение колеса может быть только + -1, и поэтому мы можем с уверенностью предположить, что + -2 - это горизонтальное движение, и тогда все в порядке, либо нам нужен какой-то вариант, который будет влияют на поведение драйвера мыши.

Все мои (A4Tech ...) мыши с колесиком PS / 2 сообщают только о движении колесика + -1 даже с частотой дискретизации 10 Гц, но я не думаю, что мои мыши являются репрезентативным образцом доступных реализаций ExPS / 2.

Нет, обычные мыши ImPS / 2 и ExPS / 2 действительно могут сообщать значения больше 1 для движения колеса.

Мы можем либо применить эвристику (когда-нибудь видели движение 3? Если да, то это не мышь A4Tech ...), либо использовать параметр командной строки.

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

Еще одна вещь - мыши USB A4Tech, которые используют кнопку, чтобы различать колеса, в то время как в спецификации USB есть положения для двух колесиков мыши :(. Но они есть наименее возможный для обнаружения.

-
Войтех Павлик
SuSE Labs

Итак, я намерен немного взломать ядро, чтобы добавить параметр модуля в ./ drivers / input / mouse / psmouse_base.c , чтобы очистить данные, считанные с мыши, чтобы исправить их, если этот параметр включен для случая psmouse_type , являющегося PSMOUSE_IMEX .

Что ж, у меня есть кое-что, что теперь работает для меня, и я разместил это в области группы ввода ядра Linux как input: psmouse - исправление для второго колеса прокрутки на мышах с двойным колесом прокрутки A4Tech , но как он будет полезен только очень небольшой группе пользователей, я не уверен, что он попадет в него. Патч довольно мал, но потому, что он изменяет поведение, несовместимое с другими мышами, использующими PS / 2 протокол мыши в более обычном режиме он не будет активирован по умолчанию. В качестве модуля он может быть включен опцией psmouse a4tech_hack = 1 в modules.conf или что-то еще, что используется в системе в настоящее время - с помощью evtest для демонстрации дает , сначала с отключенным взломом:

stephen @ Ripley: ~ $ sudo modprobe psmouse options a4tech_hack = 0 stephen @ Ripley: ~ $ sudo evtest --grab / dev / input / event1 Версия драйвера ввода - 1.0.1 ID устройства ввода: bus 0x11 vendor 0x2 product 0x6 version 0x0 Имя устройства ввода: «ImExPS / 2 Generic Explorer Mouse» Поддерживаемые события: Тип события 0 (EV_SYN) Тип события 1 (EV_KEY) Код события 272 (BTN_LEFT) Код события 273 (BTN_RIGHT) Код события 274 (BTN_MIDDLE) {{ 1}} Код события 275 (BTN_SIDE) Код события 276 (BTN_EXTRA) Тип события 2 (EV_REL) Код события 0 (REL_X) Код события 1 (REL_Y) Код события 6 (REL_HWHEEL) Код события 8 (REL_WHEEL) Свойства: Тип свойства 0 (INPUT_PROP_POINTER) Тестирование. .. (прерывание для выхода) Событие: время 1511190325.037494, тип 2 (EV_REL), код 8 (REL_WHEEL), значение -1 Событие: время 1511190325.037494, -------- ------ SYN_REPORT ------------ Событие: время 1511190325.069545, тип 2 (EV_REL), код 8 (REL_WHEEL), значение -1 Событие : время 1511190325.069545, -------------- SYN_REPORT ------------ Событие: время 1511190325.103279, тип 2 (EV_REL), код 8 ( REL_WHEEL), значение -1 E вентиляция: время 1511190325.103279, -------------- SYN_REPORT ------------ Событие: время 1511190325.360609, тип 2 (EV_REL), код 8 (REL_WHEEL), значение -1 Событие: время 1511190325.360609, -------------- SYN_REPORT ------------ Событие : время 1511190325.754597, тип 2 (EV_REL), код 8 (REL_WHEEL), значение -2 Событие: время 1511190325.754597, -------------- SYN_REPORT ------ ------ Событие: время 1511190326.226203, тип 2 (EV_REL), код 8 (REL_WHEEL), значение 2 Событие: время 1511190326.226203, ---------- ---- SYN_REPORT ------------ Событие: время 1511190326.335886, тип 2 (EV_REL), код 8 (REL_WHEEL), значение -2 Событие: время 1511190326.335886, -------------- SYN_REPORT ------------ Событие: время 1511190326.420238, тип 2 (EV_REL), код 8 (REL_WHEEL), значение -2 Событие: время 1511190326.420238, -------------- SYN_REPORT -------- ---- Событие: время 1511190326.849670, тип 2 (EV_REL), код 8 (REL_WHEEL), значение -2 Событие: время 1511190326.849670, ----------- --- SYN_REPORT ------------

, затем при его включении обратите внимание, как события REL_WHEEL со значением +/-2 теперь правильно отображаются на события REL_HWHEEL:

stephen @ Ripley: ~ $ sudo modprobe -r psmouse stephen @ Ripley: ~ $ sudo modprobe psmouse options a4tech_hack = 1 stephen @ Ripley : ~ $ sudo evtest --grab / dev / input / event1 Версия драйвера ввода 1.0.1 ID устройства ввода: bus 0x11 vendor 0x2 product 0x6 version 0x0 Устройство ввода name: "ImExPS / 2 Generic Explorer Mouse" Поддерживаемые события: Тип события 0 (EV_SYN) Тип события 1 (EV_KEY) Код события 272 (BTN_LEFT ) Код события 273 (BTN_RIGHT) Код события 274 (BTN_MIDDLE) Код события 275 (BTN_SIDE) Код события 276 (BTN_EXTRA) Тип события 2 (EV_REL) Код события 0 (REL_X) Код события 1 (REL_Y) Код события 6 (REL_HWHEEL) Код события 8 (REL_WHEEL) Свойства: Тип свойства 0 (INPUT_PROP_POINTER) Тестирование ... (прерывание для выхода) Событие: время 1511190624.369531, тип 2 (EV_REL), код 8 (REL_WHEEL), значение 1 Событие: время 1511190624.369531, -------------- SYN_REPORT ------------ Событие: время 1511190625.580824, тип 2 (EV_REL), код 8 (REL_WHEEL), значение -1 Событие: время 1511190625.580824, --- ----------- SYN_REPORT ------------ Событие: время 1511190626.139235, тип 2 (EV_REL), код 8 (REL_WHEEL), значение 1 {{ 1}} Событие: время 1511190626.139235, -------------- SYN_REPORT ------------ Событие: время 1511190626.419281, тип 2 (EV_REL) , код 8 (REL_WHEEL), значение -1 Событие: время 1511190626.419281, -------------- SYN_REPORT ------------ {{1 }} Событие: время 1511190626.693413, тип 2 (EV_REL), код 8 (REL_WHEEL), значение 1 Событие: время 1511190626.693413, -------------- SYN_REPORT ---- -------- Событие: время 1511190628.506133, тип 2 (EV_REL), код 6 (REL_HWHEEL), значение 1 Событие: время 1511190628.506133, -------------- SYN_REPORT ------------ Событие: время 1511190628.669774, тип 2 (EV_REL), код 6 (REL_HWHEEL) , значение -1 Событие: время 1511190628.669774, -------------- SYN_REPORT ------------ Событие: время 1511190628.921986 , тип 2 (EV_REL), код 6 (REL_HWHEEL), значение 1 Событие: время 1511190628.921986, -------------- SYN_REPORT ---------- - Событие: время 1511190628.970915, тип 2 (EV_REL), код 6 (REL_HWHEEL), значение 1 Событие: время 1511190628.970915, -------------- SYN_REPORT ------------ Событие: время 1511190629.235774, тип 2 (EV_REL), код 6 (REL_HWHEEL), значение -1 Событие: время 1511190629.235774, - ------------ SYN_REPORT ------------ Событие: время 1511190629.425575, тип 2 (EV_REL), код 6 (REL_HWHEEL), значение 1 { {1}} Событие: время 1511190629.425575, -------------- SYN_REPORT ------------ Событие: время 1511190629.475333, тип 2 (EV_REL ), код 6 (REL_HWHEEL), значение 1 Событие: время 1511190629.475333, -------------- SYN_REPORT ------------ {{1 }} Даже t: время 1511190629.668506, тип 2 (EV_REL), код 6 (REL_HWHEEL), значение -1 Событие: время 1511190629.668506, -------------- SYN_REPORT ----- ------- Событие: время 1511190629.730081, тип 2 (EV_REL), код 6 (REL_HWHEEL), значение -1 Событие: время 1511190629.730081, -------- ------ SYN_REPORT ------------ Событие: время 1511190629.862513, тип 2 (EV_REL), код 6 (REL_HWHEEL), значение 1 Событие: время 1511190629.862513, -------------- SYN_REPORT ------------ Событие: время 1511190629.909745, тип 2 (EV_REL), код 6 (REL_HWHEEL ), значение 1 Событие: время 1511190629.909745, -------------- SYN_REPORT ------------ Событие: время 1511190630 .139196, тип 2 (EV_REL), код 6 (REL_HWHEEL), значение -1 Событие: время 1511190630.139196, -------------- SYN_REPORT -------- ----

3
13.04.2017, 15:36
0 ответов

Теги

Похожие вопросы