3

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

  • Подтверждено, что проблема сохраняется у трех мышей. Один - 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

2 ответа2

1

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

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

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

0

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

Как видите, события с колесом прокрутки отображаются нормально. Но драйвер 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 (см. Комментарии здесь, чтобы узнать, как это сделать), чтобы убедиться, что это правильно, но это становится очень техническим.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .