Ошибка запроса 0x01 сенсорной панели Lenovo Y700 Elantech

Ошибка запроса 0x01 сенсорной панели Lenovo Y700 Elantech

У меня раздражающая проблема с моим тачпадом Elantech уже как минимум полгода. Большую часть времени он случайно теряет синхронизацию и распознается какСенсорная панель PS/2 ElantechилиСенсорная панель BYD. Это меняется от обновления к обновлению, но по сути эти ошибки сохраняются в dmesg:

psmouse serio1: Failed to enable mouse on isa0060/serio1
psmouse serio1: elantech: synaptics_send_cmd query 0x01 failed.
psmouse serio1: Failed to enable mouse on isa0060/serio1
input: PS/2 Generic Mouse as /devices/platform/i8042/serio1/input/input19

В случаях, когда тачпад определяется правильно, он все равно работает очень плохо, не справляется с мультитачем, нажатием, прокруткой двумя пальцами и имеет некоторые проблемы с калибровкой (отвечает только центр тачпада, в то время как другие зоны игнорируют любой ввод). dmesgДля этого сценария это выглядит так:

psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x595f03)
psmouse serio1: elantech: Synaptics capabilities query result 0x10, 0x15, 0x0e.
psmouse serio1: elantech: Elan sample query result 04, 02, 86
input: ETPS/2 Elantech Touchpad as /devices/platform/i8042/serio1/input/input2

Во время работы системы она начинает случайным образом реагировать на мои действия, нажимая и двигаясь в случайном направлении.

Сейчас я использую Arch Linux, но проблема также присутствовала в Ubuntu 16.04 и 14.04.

ОтВики-страница Arch Linuxдля Lenovo Y700 есть примечание, что для того, чтобы сенсорная панель работала, pata_legacyмодуль должен быть полностью занесен в черный список, поэтому я добавил это в конфигурацию загрузчика ядра:

options: ... modprobe.blacklist=pata_legacy ...

lsmodне показывает pata_legacyзагруженный, поэтому черный список работает. Но это не помогает, так как проблема с тачпадом сохраняется.

Я использую libinputи не менял конфигурацию уже некоторое время (и она работает безупречно в то время, когда тачпад работает нормально):

Section "InputClass"
        Identifier "libinput touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
        Option "Tapping" "True"
        Option "DisableWhileTyping" "True"
        Option "NaturalScrolling" "True"
        Option "MiddleEmulation" "True"
EndSection

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

Любая помощь, ссылки на документацию, советы по отладке и т. д. приветствуются, поскольку я не против исправить это самостоятельно, но понятия не имею, с чего начать (и где искать).

$ uname -r
4.10.13-1-ARCH

решение1

У меня точно такая же раздражающая проблема. Поскольку я не нашел никакого решения, я использую этот простой скрипт bash в качестве обходного пути

#!/usr/bin/bash

while [[ $(dmesg | tail -n 3 | grep ETPS) == "" ]]
do
    sudo modprobe --remove psmouse
    sudo modprobe psmouse
    sleep 3
done

notify-send "Touchback" "Your touchpad is back ready to use"

exit

И, конечно, хорошей идеей будет настроить ваш компьютер sudoersтак, чтобы он не запрашивал пароль для обеих команд.

Связанный контент