TL; DR; WTF!?
-
O MS criou um novo protocolo, HID sobre I2C. Nem a MS nem os fabricantes de touchpad seguem realmente as especificações.
-
Como resultado, muitos touchpads que exigem o novo protocolo não funcionam bem com o módulo do kernel do Linux
i2c-hid
. -
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.
-
À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.