Колесо прокрутки мыши перестало работать

2812
thornjad

Примерно неделю назад перестало работать колесо прокрутки на мышах (не только одна, все мыши). Вот что я пытался исследовать и устранить проблему, но пока безрезультатно:

  • Подтверждено, что проблема сохраняется у трех мышей. Один - Corsair, два - Logitech.
  • Подтвердили, что все три мыши прекрасно работают на других операционных системах
  • Загрузил Windows на той же машине и подтвердил, что прокрутка работает, так что это не аппаратная проблема
  • xinput показывает мышь, включая колесо прокрутки, и карта кнопки 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
  • xevне отображает никаких событий, когда колесо прокрутки перемещается. Тем не менее, средний щелчок мыши работает просто отлично.
  • Перезапуск оконного менеджера не дал эффекта
  • Переключение на другой оконный менеджер не имело никакого эффекта
  • Перезапуск X не имел никакого эффекта
  • Перезагрузка не дала эффекта
  • У меня есть три USB-порта, изменение на любой из них не имеет никакого эффекта. Пробовал переключаться на другую мышь, та же проблема. Пробовал третью мышь, такая же проблема.
  • Обновил все программное обеспечение и обновил ядро
  • Искал ответы на Reddit, Super User, Quora и т. Д., Но все решения уже были исключены выше
  • Задал вопрос о Reddit r / linuxmint, но они не помогли

Вот некоторая информация о том, что я использую:

  • ОС: Linux Mint 18.1
  • Ядро: x86-64 Linux 4.10.0-14-generic
  • WM: i3, тоже попробовал офигенно и с корицей

Самая большая проблема, которую я вижу, состоит в том, что xev не показывает событие, и что проблема одинакова для разных мышей. Опять же, эта проблема появилась только неделю назад, она работала без заботы около года назад. Я не могу думать о каких-либо изменениях, которые могли бы вызвать это в последние дни, и я все больше расстраиваюсь.

Любые идеи о причине, исправить, что исследовать дальше?

Обновление: согласно комментарию, вот вывод xinput list-props:

Device 'ckb1: Corsair Gaming Sabre PRO RGB Mouse': Device Enabled (152): 1 Coordinate Transformation Matrix (154): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 Device Accel Profile (276): 0 Device Accel Constant Deceleration (277): 1.000000 Device Accel Adaptive Deceleration (278): 1.000000 Device Accel Velocity Scaling (279): 10.000000 Device Product ID (269): 6940, 6959 Device Node (270): "/dev/input/event8" Evdev Axis Inversion (280): 0, 0 Evdev Axes Swap (282): 0 Axis Labels (283): "Rel X" (162), "Rel Y" (163), "Rel Z" (581), "Rel Rotary X" (582), "Rel Rotary Y" (583), "Rel Rotary Z" (584), "Rel Horiz Wheel" (489), "Rel Dial" (585), "Rel Vert Wheel" (275), "Rel Misc" (586), "None" (0), "None" (0), "None" (0), "None" (0), "None" (0) Button Labels (284): "Button Left" (155), "Button Middle" (156), "Button Right" (157), "Button Wheel Up" (158), "Button Wheel Down" (159), "Button Horiz Wheel Left" (160), "Button Horiz Wheel Right" (161), "Button Side" (273), "Button Extra" (274), "Button Forward" (298), "Button Back" (299), "Button Task" (300), "Button 8" (579), "Button 9" (580), "Button Unknown" (272), "Button Unknown" (272), "Button Unknown" (272), "Button Unknown" (272), "Button Unknown" (272), "Button Unknown" (272), "Button Unknown" (272), "Button Unknown" (272), "Button Unknown" (272), "Button Unknown" (272) Evdev Scrolling Distance (285): -77, -77, 1 Evdev Middle Button Emulation (286): 0 Evdev Middle Button Timeout (287): 50 Evdev Third Button Emulation (288): 0 Evdev Third Button Emulation Timeout (289): 1000 Evdev Third Button Emulation Button (290): 3 Evdev Third Button Emulation Threshold (291): 20 Evdev Wheel Emulation (292): 0 Evdev Wheel Emulation Axes (293): 0, 0, 4, 5 Evdev Wheel Emulation Inertia (294): 10 Evdev Wheel Emulation Timeout (295): 200 Evdev Wheel Emulation Button (296): 4 Evdev Drag Lock Buttons (297): 0 

И вывод, evtestкак я прокручивать колесо вверх и вниз:

Event: time 1491756163.211018, type 2 (EV_REL), code 8 (REL_WHEEL), value -1 Event: time 1491756163.211018, -------------- SYN_REPORT ------------ Event: time 1491756163.459021, type 2 (EV_REL), code 8 (REL_WHEEL), value -1 Event: time 1491756163.459021, -------------- SYN_REPORT ------------ Event: time 1491756163.684019, type 2 (EV_REL), code 8 (REL_WHEEL), value -1 Event: time 1491756163.684019, -------------- SYN_REPORT ------------ Event: time 1491756164.165007, type 2 (EV_REL), code 8 (REL_WHEEL), value -1 Event: time 1491756164.165007, -------------- SYN_REPORT ------------ Event: time 1491756164.582066, type 2 (EV_REL), code 8 (REL_WHEEL), value 1 Event: time 1491756164.582066, -------------- SYN_REPORT ------------ Event: time 1491756164.712050, type 2 (EV_REL), code 8 (REL_WHEEL), value 1 Event: time 1491756164.712050, -------------- SYN_REPORT ------------ Event: time 1491756164.872037, type 2 (EV_REL), code 8 (REL_WHEEL), value 1 Event: time 1491756164.872037, -------------- SYN_REPORT ------------ Event: time 1491756165.095999, type 2 (EV_REL), code 8 (REL_WHEEL), value 1 Event: time 1491756165.095999, -------------- SYN_REPORT ------------ Event: time 1491756166.027074, type 2 (EV_REL), code 8 (REL_WHEEL), value -1 Event: time 1491756166.027074, -------------- SYN_REPORT ------------ Event: time 1491756166.419054, type 2 (EV_REL), code 8 (REL_WHEEL), value -1 Event: time 1491756166.419054, -------------- SYN_REPORT ------------ 

Обновление 2: соответствующий раздел /var/log/Xorg.0.log. Для ясности, здесь используется мышь Corsair, но у меня также была такая же проблема с мышами Logitech и Microsoft.

 (II) config/udev: Adding input device ckb1: Corsair Gaming Sabre PRO RGB Mouse (/dev/input/event6) (**) ckb1: Corsair Gaming Sabre PRO RGB Mouse: Applying InputClass "evdev keyboard catchall" (II) Using input driver 'evdev' for 'ckb1: Corsair Gaming Sabre PRO RGB Mouse' (**) ckb1: Corsair Gaming Sabre PRO RGB Mouse: always reports core events (**) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Device: "/dev/input/event6" (--) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Vendor 0x1b1c Product 0x1b2f (--) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Found 20 mouse buttons (--) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Found keys (II) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Forcing relative x/y axes to exist. (II) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Configuring as mouse (II) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Configuring as keyboard (**) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: YAxisMapping: buttons 4 and 5 (**) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200 (**) Option "config_info" "udev:/sys/devices/virtual/input/input15/event6" (II) XINPUT: Adding extended input device "ckb1: Corsair Gaming Sabre PRO RGB Mouse" (type: KEYBOARD, id 14) (**) Option "xkb_rules" "evdev" (**) Option "xkb_model" "pc105" (**) Option "xkb_layout" "us" (II) config/udev: Adding input device ckb1: Corsair Gaming Sabre PRO RGB Mouse (/dev/input/event8) (**) ckb1: Corsair Gaming Sabre PRO RGB Mouse: Applying InputClass "evdev pointer catchall" (**) ckb1: Corsair Gaming Sabre PRO RGB Mouse: Applying InputClass "evdev keyboard catchall" (**) ckb1: Corsair Gaming Sabre PRO RGB Mouse: Applying InputClass "Natural Scrolling" (II) Using input driver 'evdev' for 'ckb1: Corsair Gaming Sabre PRO RGB Mouse' (**) ckb1: Corsair Gaming Sabre PRO RGB Mouse: always reports core events (**) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Device: "/dev/input/event8" (--) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Vendor 0x1b1c Product 0x1b2f (--) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Found 20 mouse buttons (--) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Found scroll wheel(s) (--) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Found relative axes (--) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Found x and y relative axes (--) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Found keys (II) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Configuring as mouse (II) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Configuring as keyboard (II) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: Adding scrollwheel support (**) Option "VertScrollDelta" "-77" (**) Option "HorizScrollDelta" "-77" (**) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: YAxisMapping: buttons 4 and 5 (**) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200 (**) Option "config_info" "udev:/sys/devices/virtual/input/input16/event8" (II) XINPUT: Adding extended input device "ckb1: Corsair Gaming Sabre PRO RGB Mouse" (type: KEYBOARD, id 15) (**) Option "xkb_rules" "evdev" (**) Option "xkb_model" "pc105" (**) Option "xkb_layout" "us" (EE) BUG: triggered 'if (axnum >= dev->valuator->numAxes)' (EE) BUG: ../../Xi/exevents.c:2103 in InitValuatorAxisStruct() (EE)  (EE) Backtrace: (EE) 0: /usr/lib/xorg/Xorg (xorg_backtrace+0x4e) [0x560d79deaade] (EE) 1: /usr/lib/xorg/Xorg (InitValuatorAxisStruct+0x67) [0x560d79d7b677] (EE) 2: /usr/lib/xorg/modules/input/evdev_drv.so (0x7f48d221e000+0x4b15) [0x7f48d2222b15] (EE) 3: /usr/lib/xorg/modules/input/evdev_drv.so (0x7f48d221e000+0x58de) [0x7f48d22238de] (EE) 4: /usr/lib/xorg/modules/input/evdev_drv.so (0x7f48d221e000+0x6d23) [0x7f48d2224d23] (EE) 5: /usr/lib/xorg/Xorg (ActivateDevice+0x4a) [0x560d79c80c4a] (EE) 6: /usr/lib/xorg/Xorg (0x560d79c38000+0xa2b19) [0x560d79cdab19] (EE) 7: /usr/lib/xorg/Xorg (0x560d79c38000+0xb4f0b) [0x560d79cecf0b] (EE) 8: /usr/lib/xorg/Xorg (0x560d79c38000+0xb54f3) [0x560d79ced4f3] (EE) 9: /usr/lib/xorg/Xorg (config_init+0x9) [0x560d79cebea9] (EE) 10: /usr/lib/xorg/Xorg (InitInput+0xbb) [0x560d79ccefdb] (EE) 11: /usr/lib/xorg/Xorg (0x560d79c38000+0x57d91) [0x560d79c8fd91] (EE) 12: /lib/x86_64-linux-gnu/libc.so.6 (__libc_start_main+0xf0) [0x7f48d8c8d830] (EE) 13: /usr/lib/xorg/Xorg (_start+0x29) [0x560d79c7a049] (EE)  (II) evdev: ckb1: Corsair Gaming Sabre PRO RGB Mouse: initialized for relative axes. (**) ckb1: Corsair Gaming Sabre PRO RGB Mouse: (accel) keeping acceleration scheme 1 (**) ckb1: Corsair Gaming Sabre PRO RGB Mouse: (accel) acceleration profile 0 (**) ckb1: Corsair Gaming Sabre PRO RGB Mouse: (accel) acceleration factor: 2.000 (**) ckb1: Corsair Gaming Sabre PRO RGB Mouse: (accel) acceleration threshold: 4 (II) config/udev: Adding input device ckb1: Corsair Gaming Sabre PRO RGB Mouse (/dev/input/mouse0) (II) No input driver specified, ignoring this device. (II) This device may have been added with another device file. 

Вывод, xinput --testкогда я прокручиваю:

motion a[8]=-1 motion a[8]=-2 motion a[8]=-3 motion a[8]=-2 motion a[8]=-1 motion a[8]=0 motion a[8]=1 motion a[8]=2 motion a[8]=3 motion a[8]=4 motion a[8]=3 motion a[8]=2 motion a[8]=1 motion a[8]=0

3
Пожалуйста, отредактируйте вопрос с выводом `xinput list-props 123`, где` 123` - это идентификатор вашей мыши, как видно из `xinput`. Кроме того, запустите `evtest / dev / input / eventX` от имени пользователя root по пути, который отображается в` list-props`, и посмотрите, что произойдет, когда вы используете колесо прокрутки. dirkt 7 лет назад 0
Хорошо, результаты `evtest` верны, поэтому проблема в драйвере` evdev`. У мыши очень много осей (у нее столько колес или других штуковин?) Возможно, это сбивает с толку `evdev`. Пожалуйста, посмотрите в `/ var / log / Xorg.0.log` строки, где` evdev` ссылается на эту мышь + окружающие строки, и обновите вопрос соответствующей частью. Кроме того, какая ось является колесом прокрутки при запуске `xinput --test 123` (опять же, ваш идентификатор вместо` 123`). Может быть, одна из других осей отображается на кнопки 4 и 5? Вы обновили `X` или драйвер` evdev` неделю назад? dirkt 7 лет назад 0
Я обновил свой пост (извините за задержку). Я не обновлял X или evdev в то время, если это не было через apt. Есть ли способ проверить это? Кроме того, я заметил, что в выводе Xorg.0.log сказано, что у моей мыши есть 20 кнопок, и, как вы заметили, имеется много осей. Что физически имеет моя мышь: левый и правый щелчок, колесо мыши, которое может нажимать, кнопки вперед и назад и селектор DPI. thornjad 7 лет назад 0

2 ответа на вопрос

1
thornjad

Большое спасибо всем здесь и на Reddit, особенно @dirkt, за помощь. В конце концов, я выбрал ядерную опцию: я стер свой корневой раздел и переустановил Linux. Теперь мое колесо прокрутки работает безупречно, и это исправило еще несколько проблем, с которыми я столкнулся.

Я не рекомендую это для большинства пользователей, которые сталкиваются с такой проблемой, хотя это работает. Пройдите некоторую работу, пытаясь исправить это, прежде чем уничтожить все (и, конечно, сначала сделайте резервную копию всех ваших данных).

Я сейчас на Linux Mint 18.2 с использованием ядра по умолчанию 4.8. Я могу обновить мой вопрос, добавив больше информации, если кому-то интересно узнать, какие сейчас выводятся те же команды.

0
dirkt

Частичный ответ:

Как видите, события с колесом прокрутки отображаются нормально. Но драйвер X evdev сбивается с толку, потому что получает информацию о том, что соответствующее ему устройство ввода имеет множество осей, множество кнопок и даже клавиш (именно поэтому в журналах вы видите настройку в качестве клавиатуры ). По этой причине он не транслирует события колеса на нажатия кнопок 4 и 5, как это обычно делается, и поэтому приложения также не распознают события колеса.

Поэтому вопрос в том, почему устройство утверждает, что имеет столько входов. Я подозреваю, что когда вы запустите evtest, он перечислит много поддерживаемых событий типа 1 и 2. Для сравнения вот что я получаю для своей мыши:

$ sudo evtest ... Supported events: Event type 0 (EV_SYN) Event type 1 (EV_KEY) Event code 272 (BTN_LEFT) Event code 273 (BTN_RIGHT) Event code 274 (BTN_MIDDLE) Event type 2 (EV_REL) Event code 0 (REL_X) Event code 1 (REL_Y) Event code 8 (REL_WHEEL) Event type 4 (EV_MSC) Event code 4 (MSC_SCAN) 

Вы, вероятно, получите все оси от 0 до 8, и, возможно, все ключи, а также.

Если это так, это указывает на проблему с драйверами ядра. Пожалуйста, обновите ядро ​​до последней версии и попробуйте снова.

Все ваши мыши, вероятно, являются устройствами HID (стандартизированный протокол ввода USB). Если обновление ядра не работает, следующим шагом будет проверка дескриптора HID (см. Комментарии здесь, чтобы узнать, как это сделать), чтобы убедиться, что это правильно, но это становится очень техническим.

Спасибо за помощь. Вы правы, что evtest дает много поддерживаемых событий. Тем не менее, я думал, что ядро ​​может быть проблемой, так как, когда эта проблема всплыла, я использовал 4.4.0-66. Я поднялся до 4.10.0-14 и ничего не изменилось. Может быть, стоит перейти к 4.10.14? thornjad 7 лет назад 0
Я не пострадаю от попыток, потому что пока мы не знаем, что именно вызывает это, и если обновление ядра решит это, это самый простой способ. Отладка это будет волосатым, я понятия не имею, что может вызвать такое поведение. Также стоит попробовать обновить `udev`,` systemd` и все, что с этим связано. dirkt 7 лет назад 0
Я обновился до 4.10.14, а также udev и systemd. Это не имело никакого эффекта. Я решил решить эту проблему, переустановив всю ОС: / thornjad 7 лет назад 0

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