Botões do mouse e touchpad mudam de função após suspender / hibernar

2

Eu tenho um laptop Lenovo Ideapad Y560 executando o Ubuntu 16.04. Na inicialização, o touchpad e o mouse USB funcionam bem.

Após a suspensão, os botões do mouse funcionam de maneira diferente e errática. Isso vale tanto para os botões do touchpad quanto para os botões do mouse USB. O mais notável é que o botão esquerdo não seleciona abrir janelas, fecha as guias no Google Chrome, mas ainda pode abrir aplicativos no encaixe do Unity Desktop no lado esquerdo da tela. O movimento do ponteiro do mouse ainda está bem com o mouse & amp; o touchpad.

Minha pergunta: Alguma ideia do que está acontecendo ou como consertá-lo?

Outras informações:

Este laptop tem um controlador i8042, que eu li com problemas, às vezes com o Linux.

Aqui está a saída de dmesg | grep i8042

[    1.028910] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2P] at 0x60,0x64 irq 1,12
[    1.062759] i8042: Detected active multiplexing controller, rev 1.1
[    1.076908] serio: i8042 KBD port at 0x60,0x64 irq 1
[    1.076919] serio: i8042 AUX0 port at 0x60,0x64 irq 12
[    1.076989] serio: i8042 AUX1 port at 0x60,0x64 irq 12
[    1.077044] serio: i8042 AUX2 port at 0x60,0x64 irq 12
[    1.077097] serio: i8042 AUX3 port at 0x60,0x64 irq 12
[    1.147924] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input4
[    2.824853] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio4/input/input10
[    4.455565] input: PS/2 Generic Mouse as /devices/platform/i8042/serio3/input/input16

Eu tentei algumas coisas que não funcionaram:

  • Desta postagem , colocando um script de shell executável em / etc / pm / sleep.d / diretório que desassocia o controlador ao suspendê-lo e religá-lo ao despertar. Isso não parece fazer nada.

  • De este post e este post , adicionando opções diferentes às opções de inicialização do kernel para configurar o i8042. Eu tentei adicionar i8042.reset i8042.nopnp i8042.direct i8042.dumbkbd i8042.nomux i8042.noloop ao atributo "GRUB_CMDLINE_LINUX_DEFAULT" no arquivo / etc / default / grub, bem como tentar cada um deles separadamente. Alguns deles funcionaram, mas causaram outro problema: eles consertaram os botões do mouse após a suspensão, mas desabilitaram o touchpad completamente. Isso não é ideal, pois nem sempre tenho um mouse USB.

Saída de xinput list

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech USB Optical Mouse                id=11   [slave  pointer  (2)]
⎜   ↳ PS/2 Generic Mouse                        id=15   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=16   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ Sleep Button                              id=10   [slave  keyboard (3)]
    ↳ Lenovo EasyCamera                         id=12   [slave  keyboard (3)]
    ↳ Ideapad extra buttons                     id=13   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=14   [slave  keyboard (3)]

Saída de synclient | grep Touchpad

TouchpadOff             = 2

No caso, se for útil:

Usar sudo synclient TouchpadOff=0 altera com sucesso o valor de TouchpadOff de 2 para 0. No entanto, após um clique do botão do mouse ou do touchpad, ele volta a ser 2 imediatamente.

    
por redoak 07.07.2016 / 23:17

1 resposta

3

Ao tentar tudo de novo, parece que encontrei uma combinação de instruções do kernel que funciona. Eu tentei todos os 6 ou 7 juntos, e cada um individualmente, mas não essa combinação particular de três argumentos.

Eu adicionei apenas estes três:

i8042.noloop i8042.nopnp i8042.reset

para a linha

GRUB_CMDLINE_LINUX_DEFAULT=""

no arquivo: /etc/default/grub

Em seguida, executei sudo update-grub para atualizar o arquivo de configuração do grub2.

Eu suspendi e reativei o computador várias vezes, e ele funcionou todas as vezes até agora. Se falhar novamente no futuro, eu vou editar esta questão e responder.

    
por redoak 08.07.2016 / 02:33