TL;DR; WTF!?
O conteúdo desta questão está no título e em negrito. Alguns touchpads, projetados para Win8/10, se comportam de forma irregular com o i2c-hid
módulo do kernel do Linux.
Há muitas perguntas relacionadas aos touchpads Elantech que não estão funcionando. Esta pergunta não é uma duplicata. Bem, é, mas não é. Basicamente, esses touchpads são super meticulosos e deram problemas a muitas pessoas em uma variedade de condições.
Às vezes, funciona ou não quando reinicio e o cursor do mouse aparece ou não. Às vezes, para de funcionar quando estou digitando na página 37 de um determinado documento no Abiword, mas na página 23 ao usar o LibreOffice. Às vezes, torna-se mais meticuloso ao usar atualizações de kernel de número par, mas super estável com atualizações de número ímpar. O mesmo para qualquer versão do Ubuntu que termine em 0,04 ou 0,10 ... ou que ocorra em um ano primo, ou quando a soma dos dígitos do número da versão for primo (1+8+0+4 = 13). Freqüentemente, ele para de funcionar quando "sabe" que estou fazendo algo importante, exatamente 666 ms antes de salvar meu trabalho.
Resumindo, todos esses detalhes são apenas ruído aleatório. Eles não têm nada a ver com o funcionamento do touchpad. É apenas um dispositivo horrível projetado para tornar minha vida miserável. Mas não consigo desmontar meu laptop para substituí-lo!
Esta é uma meta-pergunta destinada a abordar o problema subjacente com esses touchpads, que são todos em laptops que executam o Windows 8/10.
Será que não há ritual, nem mágica, que consiga fazer esse touchpad cooperar com sistemas operacionais batizados fora do MS Temple? Que louvores posso proferir? Que bênçãos posso buscar? Para fazer este touchpad funcionar?
TL;DR; WTF!?
MS criou um novo protocolo, HID sobre I2C. Nem a MS nem os fabricantes de touchpad seguem as especificações.
Como resultado, muitos touchpads que requerem o novo protocolo não funcionam bem com o módulo do kernel do Linux
i2c-hid
. Às vezes, as atualizações do kernel podem resolver o problema (ou fazer com que ele retorne).Se possível, desabilite o HID sobre I2C. Em alguns computadores, a configuração pode estar no BIOS. Mas em outros computadores, a configuração pode ser alterada apenas no Windows.
Às vezes, reiniciar ou ligar e desligar o touchpad pode ajudar. Às vezes, desconectar o touchpad, como em um MS Surface ou Acer Switch Alpha, pode fazê-lo funcionar novamente.
O problema subjacente é o HID sobre I2C, um protocolo de dispositivo de entrada criado pela Microsoft e usado pela primeira vez no Windows 8. Como os fabricantes de dispositivos geralmente não leem, ou talvez não seguem intencionalmente, as especificações, a Microsoft colocou muitas pequenas peculiaridades em o driver para fazê-lo funcionar. Ou talvez seja o contrário? A Microsoft tem muitas peculiaridades no driver, de modo que os fabricantes não podem seguir as especificações se esperam que seus dispositivos funcionem (no Windows, até que haja uma daquelas atualizações "Criador" - assim chamadas porque criam novos, nunca antes erros vistos).
No Linux, o módulo do kernel que lida com esse protocolo é o
i2c-hid
. As pessoas têm vários graus de sucesso fazendo o touchpad funcionar alterando ou corrigindo os kernelsporque consertar o driver de um dispositivo pode quebrar outro dispositivo. Se você encontrar um kernel para o qual este dispositivo funciona e não tiver outros problemas, congele essa versão imediatamente. Nunca desinstale kernels antigos, a menos que você tenha dois ou mais kernels consecutivos para os quais o touchpad funciona consistentemente porque o touchpad possui circuitos quânticos que ativam o comportamento quark quando detecta que o número de kernels estáveis que você instalou é menor ou maior que 1,4142, mais ou -menos um giro anti-horário, que é um único giro em três direções independentes, simultaneamente. (Esses quebra-cabeças não são para nós questionarmos.)Uma possível solução é desativar o HID sobre I2C no BIOS. Não há um nome consistente para esta configuração. Pode estar vinculado a alguma outra configuração, como EFI. Pode ser possível apenas no Windows. Pode ser impossível. Considere a realização de um ritual em que bastante álcool é bebido antes de tentar isso. Se esta configuração puder ser desativada, o
psmouse
módulo do kernel cuidará do touchpad.Mas às vezes você precisa ativar o HID sobre I2C. A natureza desses dispositivos é que eles podem não funcionar corretamente com o
psmouse
módulo. Às vezes, é útil realizar rituais antigos nos quais palavras sagradas, chamadas de quatro letras, são gritadas enquanto o computador é reinicializado ou o botão liga/desliga do touchpad é pressionado várias vezes em um padrão que agrada aos deuses da computação. Se isso não funcionar, os desesperados às vezes recebem respostas para suas orações ao arrancar o touchpad do resto do computador.Devemos estar vigilantes nestes tempos difíceis. Enquanto continuamos nosso Êxodo, que nossas orações sejam ouvidas para que algum dia possamos ver a liberdade do reinado de MS.
Não há necessidade de alterações na configuração HID ou i2c, ou qualquer instalação hardcore. Para mim, o problema foi o recurso Ubuntu Touchpad que desativou o gesto de clicar com o botão direito para tocar (tente tocar com dois dedos), use o Gnome-tweak-tools para consertá-lo.