O touchpad Elantech não funciona (i2c-hid)

1

TL; DR; WTF!?

A substância desta questão está no título e em negrito. Alguns touchpads, projetados para o Win8 / 10, se comportam de forma irregular com o módulo do kernel Linuxi2c-hid.

Existem muitas questões relacionadas com os touchpads da Elantech que não funcionam. Esta questão não é uma duplicata. Bem, é, mas não é. Basicamente, esses touchpads são super exigentes e causaram muitos problemas para as pessoas sob uma variedade de condições.

Às vezes funciona ou não funciona quando eu reinicio e o cursor do mouse aparece ou não. Às vezes, ele pára de funcionar quando eu estou digitando na página 37 de um documento em particular no Abiword, mas na página 23 ao usar o LibreOffice. Às vezes, torna-se mais complicado ao usar atualizações de kernel de número par, mas super estável com atualizações de numeração ímpar. O mesmo vale para qualquer versão do Ubuntu que termine em .04 ou .10 ... ou que ocorra em um ano de numeros primos, ou quando a soma dos dígitos do número da versão for primo (1 + 8 + 0 + 4 = 13). Muitas vezes ele pára de funcionar quando "sabe" que estou fazendo algo importante, exatamente 666 ms antes que eu esteja prestes a salvar meu trabalho.

Em suma, todos esses detalhes são apenas ruídos aleatórios. 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 posso separar meu laptop para substituí-lo!

Esta é uma metaquestão destinada a abordar o problema subjacente com esses touchpads, que são todos eles em laptops que executavam o Windows 8/10.

Não há nenhum ritual, nenhuma mágica, que possa fazer este touchpad cooperar com sistemas operacionais batizados fora do Templo MS? Que elogios posso pronunciar? Que bênçãos posso buscar? Para fazer este touchpad funcionar?

    
por xiota 07.05.2018 / 09:53

2 respostas

5

TL; DR; WTF!?

  1. O MS criou um novo protocolo, HID sobre I2C. Nem a MS nem os fabricantes de touchpad seguem realmente as especificações.

  2. Como resultado, muitos touchpads que exigem o novo protocolo não funcionam bem com o módulo do kernel do Linux i2c-hid .

  3. Se possível, desative o HID por I2C. Em alguns computadores, a configuração pode estar no BIOS. Mas em outros computadores, a configuração pode ser alterada somente no Windows.

  4. Às vezes, reinicializar ou ativar e desativar o touchpad pode ajudar. Às vezes, desanexar o touchpad, como em um MS Surface ou no Acer Switch Alpha, pode fazê-lo funcionar novamente.

O problema subjacente é 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 intencionalmente não sigam, , A Microsoft colocou um monte de pequenas peculiaridades no driver para fazê-lo funcionar. Ou talvez seja o contrário? A Microsoft tem muitas peculiaridades no driver para que os fabricantes não possam seguir as especificações se quiserem que seus dispositivos funcionem (no Windows, até que haja uma dessas atualizações "Criador" - assim chamadas porque criam novas, nunca antes erros vistos).

No Linux, o módulo do kernel que lida com esse protocolo é i2c-hid . As pessoas têm vários graus de sucesso ao trabalhar com o touchpad, alterando ou corrigindo kernels, porque a correção do 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 novos kernels, a menos que você tenha dois ou mais kernels consecutivos para os quais o touchpad funcione consistentemente, pois o touchpad possui circuitos quânticos que ativam o comportamento quarky quando detecta que o número de kernels estáveis é menor ou maior que 1.4142. -minus um spin contra-anti-anti-horário, que um único giro em três direções independentes, simultaneamente. (Tais enigmas não são para nós questionarmos.)

Uma solução potencial é desativar o HID sobre I2C no BIOS. Não há nome consistente para essa configuração. Pode estar ligado a alguma outra configuração, como a EFI. Pode ser possível apenas a partir do Windows. Pode ser impossível. Considere a realização de um ritual em que muito álcool é absorvido antes de tentar isso. Se essa configuração puder ser desativada, o módulo do kernel psmouse cuidará do touchpad.

Mas às vezes você precisa ativar o HID em vez de I2C. A natureza desses dispositivos é que eles podem não funcionar corretamente com o módulo psmouse . Às vezes é útil realizar rituais antigos nos quais as palavras sagradas, chamadas de quatro letras, são gritadas e 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 às suas orações ao extrair o touchpad do resto do computador.

Devemos estar vigilantes nestes tempos difíceis. À medida que continuamos nosso Êxodo, que nossas orações sejam ouvidas para que possamos algum dia ver a liberdade do reino de MS.

    
por xiota 07.05.2018 / 09:53
0

Não há necessidade de alterações na configuração HID ou i2c ou em qualquer instalação hardcore. Para mim, o problema foi o recurso do Touchpad do Ubuntu que desabilitou o clique direito para tocar o gesto (tente tocar com dois dedos) usando o Gnome-tweak-tools para consertá-lo.

    
por user3707075 26.08.2018 / 04:19