Всем привет!
Неделю назад столкнулся с проблемой:
ОС - Ubuntu 16.04. После очередного обновления с перезагрузкой тачпад стал работать некорректно - пропала прокрутка двумя пальцами, курсор стал подергиваться.
Чтобы вылечить это, перепробовал все, что смог найти:
- изменял конфиг GRUB
- по-всякому игрался с конфигами xorg
- переустанавливал synaptics драйвер
- удалил libinput (думал, что это он мешает нормально работать)
Но потом заметил, что почему-то мой тачпад начал конфигурироваться как мышь (evdev: PS/2 Synaptics TouchPad: Configuring as mouse). Вот лог Xorg.0.log:
[ 60.116] (II) config/udev: Adding input device PS/2 Synaptics TouchPad (/dev/input/event5)
[ 60.116] (**) PS/2 Synaptics TouchPad: Applying InputClass "evdev pointer catchall"
[ 60.116] (II) Using input driver 'evdev' for 'PS/2 Synaptics TouchPad'
[ 60.116] (**) PS/2 Synaptics TouchPad: always reports core events
[ 60.116] (**) evdev: PS/2 Synaptics TouchPad: Device: "/dev/input/event5"
[ 60.116] (--) evdev: PS/2 Synaptics TouchPad: Vendor 0x2 Product 0x1
[ 60.116] (--) evdev: PS/2 Synaptics TouchPad: Found 3 mouse buttons
[ 60.116] (--) evdev: PS/2 Synaptics TouchPad: Found relative axes
[ 60.116] (--) evdev: PS/2 Synaptics TouchPad: Found x and y relative axes
[ 60.116] (II) evdev: PS/2 Synaptics TouchPad: Configuring as mouse
[ 60.116] (**) evdev: PS/2 Synaptics TouchPad: YAxisMapping: buttons 4 and 5
[ 60.116] (**) evdev: PS/2 Synaptics TouchPad: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[ 60.116] (**) Option "config_info" "udev:/sys/devices/platform/i8042/serio1/input/input5/event5"
[ 60.116] (II) XINPUT: Adding extended input device "PS/2 Synaptics TouchPad" (type: MOUSE, id 11)
[ 60.116] (II) evdev: PS/2 Synaptics TouchPad: initialized for relative axes.
[ 60.116] (**) PS/2 Synaptics TouchPad: (accel) keeping acceleration scheme 1
[ 60.116] (**) PS/2 Synaptics TouchPad: (accel) acceleration profile 0
[ 60.116] (**) PS/2 Synaptics TouchPad: (accel) acceleration factor: 2.000
[ 60.116] (**) PS/2 Synaptics TouchPad: (accel) acceleration threshold: 4
[ 60.117] (II) config/udev: Adding input device PS/2 Synaptics TouchPad (/dev/input/mouse0)
[ 60.117] (II) No input driver specified, ignoring this device.
[ 60.117] (II) This device may have been added with another device file.
В результате, с тачпадом работает драйвер evdev вместо Synaptics драйвера. Как видно, тачпад идет под названием PS/2 Synaptics TouchPad, хотя, насколько я видел, обычно он у всех опереляется под названием SynPS/2 Synaptics TouchPad. При этом, сам udev изначально определяет его именно под этим названием. Вот лог udev:
UDEV [12.507387] add /devices/platform/i8042/serio1/input/input5 (input)
ABS=660800011000003
ACTION=add
DEVPATH=/devices/platform/i8042/serio1/input/input5
EV=b
ID_FOR_SEAT=input-platform-i8042-serio-1
ID_INPUT=1
ID_INPUT_TOUCHPAD=1
ID_PATH=platform-i8042-serio-1
ID_PATH_TAG=platform-i8042-serio-1
ID_SERIAL=noserial
KEY=e520 30000 0 0 0 0
MODALIAS=input:b0011v0002p0007e01B1-e0,1,3,k110,111,145,148,14A,14D,14E,14F,ra0,1,18,1C,2F,35,36,39,3A,mlsfw
NAME="SynPS/2 Synaptics TouchPad"
PHYS="isa0060/serio1/input0"
PRODUCT=11/2/7/1b1
PROP=1
SEQNUM=2012
SUBSYSTEM=input
TAGS=:seat:
USEC_INITIALIZED=984
Сейчас я грешу именно на это. Мне кажется, что udev в результате работы выдает неверное название устройства - поэтому в итоге xorg решает работать с ним как с мышью и применяет дефолтный драйвер мыши evdev.
Дополнительно выложу вывод xinput для тачпада:
user@HP-linux:~$ xinput list-props 11
Device 'PS/2 Synaptics TouchPad':
Device Enabled (143): 1
Coordinate Transformation Matrix (145): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
Device Accel Profile (268): 0
Device Accel Constant Deceleration (269): 1.000000
Device Accel Adaptive Deceleration (270): 1.000000
Device Accel Velocity Scaling (271): 10.000000
Device Product ID (264): 2, 1
Device Node (265): "/dev/input/event5"
Evdev Axis Inversion (272): 0, 0
Evdev Axes Swap (274): 0
Axis Labels (275): "Rel X" (153), "Rel Y" (154)
Button Labels (276): "Button Left" (146), "Button Middle" (147), "Button Right" (148), "Button Wheel Up" (149), "Button Wheel Down" (150)
Evdev Scrolling Distance (277): 0, 0, 0
Evdev Middle Button Emulation (278): 0
Evdev Middle Button Timeout (279): 50
Evdev Third Button Emulation (280): 0
Evdev Third Button Emulation Timeout (281): 1000
Evdev Third Button Emulation Button (282): 3
Evdev Third Button Emulation Threshold (283): 20
Evdev Wheel Emulation (284): 0
Evdev Wheel Emulation Axes (285): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (286): 10
Evdev Wheel Emulation Timeout (287): 200
Evdev Wheel Emulation Button (288): 4
Evdev Drag Lock Buttons (289): 0
Еще раз повторюсь, неделю назад все работало нормально. Может кто-нибудь подсказать куда дальше копать? Может как-то можно насильно заставить udev определять это устройство как тачпад? Буду очень признателен за любую помощь