Entrada nula constante

1

Eu tenho um Lenovo Ideapad 700 com um Antergos. Parece que há uma entrada constante a cada segundo, o que me impede de rolar no terminal ou usar tty. Esta é a saída usando

$ xev
KeyPress event, serial 38, synthetic NO, window 0x5400001,  
root 0x153, subw 0x0, time 7416716, (262,3), root:(1124,458),  
state 0x0, keycode 221 (keysym 0x0, NoSymbol), same_screen YES,  
XLookupString gives 0 bytes:   
XmbLookupString gives 0 bytes:   
XFilterEvent returns: False 

Eu já tentei desativar o bloqueio de Fn no BIOS, mas isso não ajudou. Alguém sabe como consertar isso ou obter mais informações de onde vem essa entrada?

    
por twinrix 19.11.2017 / 22:30

1 resposta

2

O kernel Linux 4.13 introduziu o peaq_wmi driver, que lida com hotkeys em tablets PEAQ (especificamente o botão "Dolby" no PEAQ PMM C1010).

O driver é carregado para um GUID de objeto WMI específico encontrado no firmware do sistema (nas tabelas ACPI). Infelizmente, os desenvolvedores de firmware do PEAQ não geraram um GUID exclusivo - eles simplesmente copiaram um da amostra da da Microsoft Driver WMI.

Também, infelizmente, eles não foram o único fabricante a fazer isso - o mesmo GUI da WMI pode ser encontrado no firmware da Lenovo, onde, é claro, tem um significado completamente diferente. Quando o driver é carregado em um sistema incompatível, ele recebe um resultado de lixo e acha que o botão está sempre pressionado.

Também infelizmente, o firmware real do PEAQ não notifica o SO sempre que o botão é pressionado; em vez disso, o sistema operacional precisa pesquisar repetidamente seu status. Então o motorista continua recebendo o mesmo resultado de lixo a cada segundo.

O driver recentemente corrigido para verificar também o nome do fabricante do sistema, e a correção deve atingir os kernels estáveis (4.14.x, 4.13.x) em breve. Nesse meio tempo, você pode remover o módulo usando:

modprobe -r peaq_wmi

e / ou lista-o via /etc/modprobe.d ou usando o parâmetro do kernel:

modprobe.blacklist=peaq_wmi

No futuro, para depurar tais problemas, use ferramentas que relatem dispositivos de entrada individuais; por exemplo, evemu-record ou libinput debug-events . (A ferramenta xinput também pode fazer isso dentro do X11.) Isso pode restringi-lo a um driver específico.

(Ou você pode passar por todos os commits do Git de 4.12 a 4.13 até encontrar um que faça você pensar "este novo módulo parece engraçado, eu me pergunto o que acontece quando você o descarrega" )

    
por 19.11.2017 / 23:25