Touchpad não funciona depois de suspender o laptop

10

Isso parece um problema comum, mas depois de tentar todas as correções que encontrei nos fóruns, ainda estou perdida.

Especificações:

  • computador: Asus k501LX-EB71
  • SO: Ubuntu 14.04.3
  • kernel: 3.19.0-26-genérico
  • touchpad: touchpad Elantech
  • driver: xserver-xorg-input-synaptics-lts-trusty (OR)     xserver-xorg-input-synaptics-lts-vivid (não sabe qual está em uso)

O que eu tentei: Posso executar sudo modprobe -r psmouse para "desligar" o touchpad e, em seguida, sudo modprobe psmouse para ativá-lo novamente. Isso funciona bem. No entanto, quando suspendo, não consigo "reativar" o touch pad, mesmo que eu digite esses comandos.

Alguma opinião?

ATUALIZAÇÃO:

Eu não observo este problema se eu hibernar em vez de suspender. Não sei o que fazer com essa pista ...

WORKAROUND ATUAL:

Como o hibernate parece não causar problemas e eu tenho uma quantidade adequada de memória swap, eu apenas hiberne como a ação padrão para coisas como fechar a tampa. Aqui estão os passos que segui para ativar o modo de hibernação . Eu também modifiquei outras configurações de energia padrão para ir para a hibernação usando o editor dconf em org > gnome > settings-daemon > plugins > power

    
por Ross Allen 09.09.2015 / 01:01

7 respostas

8

Recomendamos que publique a minha solução alternativa como resposta:

Descobri que o hibernate ( sudo pm-hibernate ) não apresentou os mesmos problemas com a reinicialização do touchpad, portanto, configurei todas as opções de energia relevantes para hibernar em vez de suspender. Isso requer um pouco de esforço, pois a hibernação está desabilitada por padrão. Aqui está o que precisa acontecer

por Ross Allen 09.09.2015 / 20:49
4

Este bug é reportado no launchpad: O touchpad da Elantech para de funcionar após a suspensão . Depois de suspender, o OP tenta # modprobe -r psmouse e # modprobe psmouse e não funciona. Mas e se psmouse foi removido antes de suspender e inserido após a suspensão?

Se isso funcionar manualmente, você poderá automatizar criando um novo arquivo no diretório /lib/systemd/system-sleep/ contendo:

#!/bin/sh

case $1/$2 in
  pre/*)
    echo "Going to $2..."
    # Place your pre suspend commands here, or 'exit 0' if no pre suspend action required
    modprobe -r psmouse
    ;;
  post/*)
    echo "Waking up from $2..."
    # Place your post suspend (resume) commands here, or 'exit 0' if no post suspend action required
    sleep 2
    modprobe psmouse
    ;;
esac

Sabe-se após uma suspensão que o módulo psmouse não pode ser removido. Também sabemos que pode ser removido e inserido antes de uma suspensão. Então, esta técnica remove antes de suspender. Após retomar, insira-o e esperamos que o kernel não o rejeite.

O comando sleep 2 é de meus próprios problemas onde systemd e kernel (via gnome ou APM) estavam dormindo e acordando. Eu precisava redirecionar o som pulseaudio para a TV devido a um bug introduzido no Ubuntu 16.04 / pulseaudio 8.0. O atraso de 2 segundos foi necessário para que o kernel e systemd terminassem de acordar. Ainda não descobri o dual suspender e dual currículo ainda ....

    
por WinEunuuchs2Unix 24.09.2016 / 03:23
1

Corrigir o kernel resolverá esse problema. Você pode encontrar

  1. o patch na lista de discussão do kernel Linux e

  2. instruções de correção em “ Como corrigir o kernel com um commit específico ”.

Meu K501LB agora funciona como deveria.

    
por Savel Mtrx 20.09.2016 / 22:57
1

Eu lido com duas abordagens simples com esse problema. O primeiro, que nem sempre funciona (como você mencionou), apenas reinicia o módulo do mouse após a ação de suspensão.

% bl0ck_qu0te%

Aqui está uma boa discussão sobre como fazer isso "automaticamente": como executar um comando após o reinício da suspensão?

Uma abordagem alternativa é matar o módulo antes de suspender, evitando o bloqueio do módulo após o currículo (que aparentemente é o que gera o problema, como WinEunuuchs2Unix sublinhado).

Para fazer isso eu uso uma linha de comando simples para suspender o laptop em vez de apenas fechar a tampa "manualmente". Claro que isso não é nada chique, mas funciona e é uma solução direta. Não há tempo para invadir envolvidos.

% bl0ck_qu0te%

E, depois de retomar o laptop, você deve reativar o módulo digitando:

% bl0ck_qu0te%

Você sempre pode hackear o script padrão pm-suspend , mas não o recomendarei. É simples e seguro gerar essas pequenas sequências de comandos ad-hoc.

Por fim, uma maneira fácil e rápida de executar rapidamente o "kill / suspender" e o "reativar" do módulo do mouse é associar essas etapas a atalhos de teclado: Como posso alterar as teclas do meu teclado? (Como posso criar comandos / atalhos de teclado personalizados?) .

Espero que funcione, para mim, embora seja realmente desconfortável lidar com isso de tal maneira. Eu tenho esse problema em ambos os laptops HP e Asus.

    
por Rho 16.05.2017 / 13:50
0

Eu tenho vários laptops da Asus, tive que desativar o touchpad em todos eles. Eles causam problemas de bloqueio e outros problemas.

    
por ChangosMuertos 09.09.2015 / 01:59
0

Os drivers que não respondem bem à suspensão são muito comuns, independentemente do sistema operacional. Fico feliz que você tenha encontrado uma solução via hibernação.

Como a suspensão não é totalmente desligada e a hibernação, isso parece indicar que o motorista não responde bem à "meia-vida" da suspensão, mas é perfeitamente capaz de aparecer durante um período de energia. no ciclo que é o que a hibernação proporciona ao acordar.

fonte: link

    
por Elder Geek 09.09.2015 / 17:35
0

Isso funcionou para mim:

  1. Inicialize no BIOS, na inicialização por sistema F2 ou ESC

  2. Altere a configuração do Touchpad no seu BIOS de AVANÇADO para BÁSICO (não faz diferença no que diz respeito à funcionalidade)

Agora, o touchpad ainda deve funcionar quando retomado da suspensão.

    
por pst007x 08.10.2017 / 04:32