Falha na consulta do touchpad Lenovo Y700 Elantech 0x01

Falha na consulta do touchpad Lenovo Y700 Elantech 0x01

Tenho um problema irritante com meu touchpad Elantech há pelo menos meio ano. Na maioria das vezes, ele perde a sincronização aleatoriamente e é reconhecido comoTouchpad PS/2 ElantechouTouchpad BYD. Isso varia de atualização para atualização, mas em essência esses erros persistem em 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

Em ocasiões em que o touchpad foi detectado corretamente, ele ainda funciona muito mal, tem sorte com multitoque, toque, rolagem com dois dedos e apresenta algum tipo de problema de calibração (apenas o centro do touchpad responde enquanto outras zonas ignoram qualquer entrada). dmesgpara este cenário é assim:

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

Durante o tempo de atividade do sistema, ele começa a reagir aleatoriamente à minha entrada, clicando e movendo-se em uma direção aleatória.

Estou usando o Arch Linux agora, mas o problema também estava presente no Ubuntu 16.04 e 14.04.

DePágina Wiki do Arch Linuxhá uma observação para o Lenovo Y700 que, para fazer com que pata_legacyo módulo do touchpad funcione, deve estar completamente na lista negra, então adicionei isso à configuração do meu bootloader do kernel:

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

lsmodnão aparece pata_legacycarregado, então a lista negra funciona. Mas isso não ajuda em nada, pois o problema com o touchpad persiste.

Estou usando libinpute não altero minha configuração há algum tempo (e funciona perfeitamente nos períodos em que o touchpad parece bom):

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

Acredito que o problema esteja relacionado de alguma forma com um kernel, mas não gosto de coisas de baixo nível, então não consigo fazê-lo funcionar sozinho.

Qualquer ajuda, referências de documentação, dicas de depuração, etc. são muito bem-vindas, pois não me importo de consertar sozinho, mas não tenho ideia por onde começar (e onde procurar).

$ uname -r
4.10.13-1-ARCH

Responder1

Eu tenho exatamente o mesmo problema irritante. Como não encontrei nenhuma solução, estou usando este script bash simples como solução alternativa

#!/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

E é uma boa ideia configurar o seu sudoerspara não pedir senha para os dois comandos, claro.

informação relacionada