Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Некоторые функции тачпада перестали работать после обновления  (Прочитано 3575 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн BigEasy

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Всем привет!
Неделю назад столкнулся с проблемой:
ОС - 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 определять это устройство как тачпад? Буду очень признателен за любую помощь

Оффлайн BigEasy

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Сегодня попробовал поиграться с правилами udev. Присвоил насильно ATTRS{ID_INPUT_TOUCHPAD}="1"
После этого в Xorg.0.log таки появились записи о попытке запустить synaptics драйвер, а не evdev. Но, к сожалению, он так и не смог загрузиться ругнувшись на протокол, попробовал насильно присвоить протокол "SynPS/2" - опять стали сразу применяться настройки evdev, synaptics вообще не дергался.
Похоже, надо нащупать udev правила.

Morisson

  • Гость
BigEasy, верните все назад. libinput назад, синаптик проч.
Тачпад настраивается в одноименном конфиге в /usr/share/X11/xorg.conf.d в секции touchpad.
Конкретнее по настройке (тап, скорость, ускорение)- здесь

Пользователь добавил сообщение 11 Апреля 2017, 17:11:45:
Просто при обновлении вероятно слетел конфиг. Посмотрите, может он переименован с тильдой ( ~ ). Если после удаления синаптикс остался его конфиг (там же) удалите.

Оффлайн BigEasy

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Это все я знаю. Проблема в том, что никакие изменения в конфигах в /usr/share/X11/xorg.conf.d и /etc/x11/xorg.conf.d не изменяют ничего. Когда стоял либинпут, тогда тачпад работал как мышь, но через либинпут, а не через evdev.
Сейчас у меня в /etc/x11/xorg.conf.d лежит 10-synaptics.conf, а в /usr/share/X11/xorg.conf.d лежат 10-evdev.conf и 50-synaptics.conf. Пробовал переименовывать 10-synaptics.conf и в 50 и в 90. Никак он не подхватывается, т.к. тачпад определяется как мышь, а настроек для мыши в synaptics.conf нет само собой.
Более того, в evdev конфиге есть тоже дефолтные настройки для тачпадов, но и они не применяются, т.к. к тачпаду применяются настройки мыши.
Когда сегодня баловался с правилами udev, мне удалось таки намекнуть системе, что это не мышь, а тачпад. Но чего-то еще не хватило для того, чтобы synaptics драйвер таки завелся.

Оффлайн Heider

  • Старожил
  • *
  • Сообщений: 1269
    • Просмотр профиля
Была как-то подобная проблема. Тачпад упорно определялся как мышь и запускался под драйвером мыши, а не synaptics. В результате - только минимальный набор функций без двухпальцевого скроллинга и тапа ЛКМ. Проблему решить так и не удалось, она решилась сама, когда ядро обновилось до новой версии. Попробуй откатиться на старое ядро, возможно, в новом опять что-то эксперементируют с устройствами.

Morisson

  • Гость
BigEasy, номер- старшинство выполнения конфига
(Нажмите, чтобы показать/скрыть)
Конкретно эта часть:
Identifier "libinput touchpad catchall"Если после будет стоять synaptics, например 50-synaptics.conf, то будет выполняться именно он.
Попробуйте.
Скорость:
Option "AccelSpeed" "-0.5"Горизонтальная прокрутка:
Option "HorizontalScrolling" "true"После правки файла- перезагрузитсь.
Попробуйте опять поставить libinput, только конфиг переименуйте, например в 90-libinput.conf
и перезагрузитесь

Пользователь добавил сообщение 11 Апреля 2017, 18:15:19:
Попробуй откатиться на старое ядро,
Это не ядро, а новый libinput, который теперь заменяет разрозненные драйверы указывающих устройств. synaptics- не работает.
Его надо просто настроить.
« Последнее редактирование: 11 Апреля 2017, 18:15:19 от Morisson »

Оффлайн BigEasy

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Поубирал созданные конфиги, правила из udev, установил libinput, и теперь применяется libinput для определившегося как мышь тачпада. Xorg.0.log:
[    60.441] (II) config/udev: Adding input device PS/2 Synaptics TouchPad (/dev/input/event6)
[    60.441] (**) PS/2 Synaptics TouchPad: Applying InputClass "evdev pointer catchall"
[    60.441] (**) PS/2 Synaptics TouchPad: Applying InputClass "libinput pointer catchall"
[    60.441] (**) PS/2 Synaptics TouchPad: Applying InputClass "libinput pointer catchall"
[    60.441] (II) Using input driver 'libinput' for 'PS/2 Synaptics TouchPad'
[    60.441] (**) PS/2 Synaptics TouchPad: always reports core events
[    60.441] (**) Option "Device" "/dev/input/event6"
[    60.441] (**) Option "_source" "server/udev"
[    60.441] (II) input device 'PS/2 Synaptics TouchPad', /dev/input/event6 is tagged by udev as: Mouse
[    60.441] (II) input device 'PS/2 Synaptics TouchPad', /dev/input/event6 is a pointer caps
[    60.464] (**) Option "config_info" "udev:/sys/devices/platform/i8042/serio1/input/input5/event6"
[    60.464] (II) XINPUT: Adding extended input device "PS/2 Synaptics TouchPad" (type: MOUSE, id 12)
[    60.464] (**) Option "AccelerationScheme" "none"
[    60.464] (**) PS/2 Synaptics TouchPad: (accel) selected scheme none/0
[    60.464] (**) PS/2 Synaptics TouchPad: (accel) acceleration factor: 2.000
[    60.464] (**) PS/2 Synaptics TouchPad: (accel) acceleration threshold: 4
[    60.464] (II) input device 'PS/2 Synaptics TouchPad', /dev/input/event6 is tagged by udev as: Mouse
[    60.464] (II) input device 'PS/2 Synaptics TouchPad', /dev/input/event6 is a pointer caps
[    60.465] (II) config/udev: Adding input device PS/2 Synaptics TouchPad (/dev/input/mouse1)
[    60.465] (II) No input driver specified, ignoring this device.
[    60.465] (II) This device may have been added with another device file.

Как видно из лога, применился конфиг "libinput pointer catchall", секция для тачпада называется "libinput touchpad catchall". Вот 90-libinput.conf целиком:
# Match on all types of devices but tablet devices and joysticks
Section "InputClass"
        Identifier "libinput pointer catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

Section "InputClass"
        Identifier "libinput keyboard catchall"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

Section "InputClass"
        Identifier "libinput touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
Option "NaturalScrolling" "on"
Option "ScrollMethod" "twofinger"
Option "Tapping" "on"
Option "TappingDrag" "on"
EndSection

Section "InputClass"
        Identifier "libinput touchscreen catchall"
        MatchIsTouchscreen "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

Судя по всему, надо дальше рыть в сторону udev, разбираться почему он определяет тачпад как мышь

Morisson

  • Гость
BigEasy, синаптикс удалил?

Пользователь добавил сообщение 11 Апреля 2017, 22:56:53:
А после
sudo apt-get autoremove

Оффлайн BigEasy

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Вот сейчас synaptics удалил, autoremove сделал. Так же как и раньше, применилась секция конфига "libinput pointer catchall"

Пользователь добавил сообщение 12 Апреля 2017, 11:12:51:
В общем, ковыряю дальше. Исходя из того, что к тачпаду все время применяется конфиг мыши, делаю вывод, что от udev приходит именно такая информация. Да и в логе Xorg.0.log черным по белому написано "input device 'PS/2 Synaptics TouchPad', /dev/input/event6 is tagged by udev as: Mouse"
Иду в udev. $ udevadm info  --path=/sys/class/input/event6
P: /devices/platform/i8042/serio1/input/input5/event6
N: input/event6
S: input/by-path/platform-i8042-serio-1-event-mouse
E: DEVLINKS=/dev/input/by-path/platform-i8042-serio-1-event-mouse
E: DEVNAME=/dev/input/event6
E: DEVPATH=/devices/platform/i8042/serio1/input/input5/event6
E: ID_INPUT=1
E: ID_INPUT_MOUSE=1
E: ID_PATH=platform-i8042-serio-1
E: ID_PATH_TAG=platform-i8042-serio-1
E: ID_SERIAL=noserial
E: MAJOR=13
E: MINOR=70
E: SUBSYSTEM=input
E: USEC_INITIALIZED=2156100
Обращаю внимание на "ID_INPUT_MOUSE=1".
Для того, чтобы подменить это значение, создал правило 69-touchpad-synaptics.rules (так же пробовал цифры 10 и 90 для применения или до всей конфигурации или для перезаписи этого значения после всей конфигурации):
SUBSYSTEM=="input", KERNEL=="event*", ENV{ID_PATH}=="platform-i8042-serio-1", ENV{ID_INPUT_TOUCHPAD}="1", ENV{ID_INPUT_MOUSE}=""После перезагрузки Xorg.0.log меня и порадовал и огорчил:
[    61.009] (II) config/udev: Adding input device PS/2 Synaptics TouchPad (/dev/input/event6)
[    61.009] (**) PS/2 Synaptics TouchPad: Applying InputClass "libinput touchpad catchall"
[    61.009] (**) PS/2 Synaptics TouchPad: Applying InputClass "libinput touchpad catchall"
[    61.009] (II) Using input driver 'libinput' for 'PS/2 Synaptics TouchPad'
[    61.009] (**) PS/2 Synaptics TouchPad: always reports core events
[    61.009] (**) Option "Device" "/dev/input/event6"
[    61.009] (**) Option "_source" "server/udev"
[    61.009] (II) input device 'PS/2 Synaptics TouchPad', /dev/input/event6 is tagged by udev as: Mouse Touchpad
[    61.009] (EE) kernel bug: device PS/2 Synaptics TouchPad failed touchpad sanity checks
[    61.009] (II) input device 'PS/2 Synaptics TouchPad', /dev/input/event6 is a touchpad
[    61.040] (II) failed to create input device '/dev/input/event6'.
[    61.040] (EE) libinput: PS/2 Synaptics TouchPad: Failed to create a device for /dev/input/event6
[    61.040] (EE) PreInit returned 2 for "PS/2 Synaptics TouchPad"
[    61.040] (II) UnloadModule: "libinput"
Как видно, конфиг для тачпада ("libinput touchpad catchall") таки применился, но чего-то еще не хватило для полноценной работы. А вот чего не хватило - уже вопрос. Видимо udev в каком-то месте получает неправильные входные данные для определения тачпада - в итоге решает что это мышь.
Знать бы хотя бы чего конкретно не хватает libinput для корректной работы, можно было бы и насильно это подсунуть
« Последнее редактирование: 12 Апреля 2017, 11:12:51 от BigEasy »

Оффлайн BigEasy

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Можно сказать, я сдался.
Пока копался в этой теме, вспомнил, что когда-то решая какую-то проблему, я бездумно выполнял какую-то очередную найденную инструкцию. И как раз в ходе выполнения ее у меня наблюдались такие же симптомы с тачпадом, но они практически сразу пропали. Возможно, настройки выставленные тогда, каким-то образом игнорировались системой, а после обновления они стали важны.
Чтобы проверить работает ли мой тачпад с нуля, загрузился с live-USB - тачпад работает без каких-либо танцев, что называется, из коробки. В итоге, переустановил Ubuntu  ;)
Кстати говоря, драйвера libinput по дефолту в ней нет - тачпад работает через synaptics драйвер. Посмотрел конфигурацию udev - действительно тачпад даже не пытается определиться как мышь. Вот как он его определяет(вставлю это сюда, может кому-то будет полезно в качестве эталона):
$ udevadm info /sys/class/input/event6
P: /devices/platform/i8042/serio1/input/input5/event6
N: input/event6
S: input/by-path/platform-i8042-serio-1-event-mouse
E: DEVLINKS=/dev/input/by-path/platform-i8042-serio-1-event-mouse
E: DEVNAME=/dev/input/event6
E: DEVPATH=/devices/platform/i8042/serio1/input/input5/event6
E: ID_INPUT=1
E: ID_INPUT_HEIGHT_MM=42
E: ID_INPUT_TOUCHPAD=1
E: ID_INPUT_TOUCHSCREEN=1
E: ID_INPUT_WIDTH_MM=108
E: ID_PATH=platform-i8042-serio-1
E: ID_PATH_TAG=platform-i8042-serio-1
E: ID_SERIAL=noserial
E: MAJOR=13
E: MINOR=70
E: SUBSYSTEM=input
E: USEC_INITIALIZED=2384109
Может, если насильно присвоить тачпаду все эти параметры, он и сможет нормально обработаться драйвером.
Проблема, можно сказать, "решена", но хотелось, конечно, разобраться в причинах. А терпения не хватило.
Спасибо всем, кто пытался помочь

Оффлайн mahinist

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 3875
  • Ubuntu-20.04, Archlinux, Blackarchlinux, Gentoo
    • Просмотр профиля
Решена , тему закрываю  :coolsmiley:
« Последнее редактирование: 13 Мая 2017, 13:21:28 от mahinist »
31-регион

 

Страница сгенерирована за 0.064 секунд. Запросов: 25.