O touchpad não funciona após a suspensão do laptop


14

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 da Elantech
  • driver: xserver-xorg-input-synaptics-lts-trusty (OR) xserver-xorg-input-synaptics-lts-vivid (não tenho certeza qual deles está em uso)

O que eu tentei: posso correr sudo modprobe -r psmousepara "desligar" o touchpad e depois sudo modprobe psmouseligá-lo novamente. Isso funciona bem. No entanto, quando suspiro, não consigo "reviver" o touch pad, mesmo que eu insira esses comandos.

Alguma ideia?

ATUALIZAR:

Não observo esse problema se hibernar em vez de suspender. Não sei bem o que fazer com essa pista ...

SOLUÇÃO ATUAL:

Como o hibernate parece não causar problemas e eu tenho uma quantidade adequada de memória de troca, apenas hiberno como a ação padrão para coisas como fechar a tampa. Aqui estão as etapas que segui para ativar a hibernação . Também modifiquei outras configurações de energia padrão para hibernar usando o dconf Editor em org> gnome> settings-daemon> plugins> power



hmmm ... obrigado pela resposta rápida, mas segui todas as etapas desse segmento sem sorte. Por qualquer motivo, não consigo reviver o touchpad sudo modprobe psmouseapós a suspensão. Simplesmente, nada parece acontecer. Eu não consigo encontrar nada fora do lugar em arquivos de log
Ross Allen

Eu consideraria sua solução alternativa uma resposta. Você deve escrevê-lo como tal, pois é provável que ajude outras pessoas, e incorporar a resposta na sua pergunta pode dificultar sua localização.
Elder Geek

Respostas:


8

Esse bug é relatado na barra de ativação: o touchpad da Elantech para de funcionar após a suspensão . Depois de suspender as tentativas OP # modprobe -r psmousee # modprobe psmousee ele não funciona. Mas e se o psmouse foi removido antes da suspensão e inserido após a suspensão?

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

#!/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

É sabido que após uma suspensão, o módulo psmouse não pode ser removido. Também sabemos que ele pode ser removido e inserido antes de uma suspensão. Portanto, essa técnica o remove antes de suspender. Após reiniciar, insira-o e espero que o kernel não o rejeite.

O sleep 2comando é dos meus próprios problemas, onde systemd e kernel (via gnome ou APM) estavam dormindo e acordando. Eu precisava redirecionar o som do pulseaudio de volta 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 o systemd terminassem de acordar. Ainda não descobri a suspensão dupla e o currículo duplo ainda ...


Eu acho que seria melhor usar o padrão SUSPEND_MODULEScaracterística pm-utilspara este linux.die.net/man/8/pm-suspend
cgogolin

Esta solução não funcionou para mim. Ubuntu 18.04 com "SYNA8004: 00 06CB: CD8B Touchpad", Lenovo X1 Carbon Gen 7. Recebo um comportamento rápido do touchpad após sair da hibernação.
SaTa 27/09/19

7

Foi recomendado que eu publicasse minha solução alternativa como resposta:

Descobri que o hibernate ( sudo pm-hibernate) não teve os mesmos problemas com a reinicialização do touchpad; portanto, apenas 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 é desativada por padrão. Aqui está o que precisa acontecer


1
Cuidado, a hibernação está desativada por padrão porque há uma boa chance de corrupção do disco rígido. Eu tive que reinstalar meu sistema operacional duas vezes após uma hibernação com falha. Desativou novamente agora.
Crobar

1
Altere a configuração do Touchpad em seu BIOS de AVANÇADO para BASIC, não faz diferença no que diz respeito à funcionalidade, e o touchpad ainda funciona quando retomado da suspensão.
Pst007x 08/10/19

3

Eu trato de 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.

sudo rmmod psmouse; sudo modprobe psmouse

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

Uma abordagem alternativa é matar o módulo antes da suspensão, evitando o bloqueio do módulo após o resumo (que aparentemente é o que gera o problema, como o WinEunuuchs2Unix sublinhou).

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

sudo rmmod psmouse; sudo pm-suspend

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

sudo modprobe psmouse

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

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

Espero que funcione, funciona para mim, embora seja realmente desconfortável lidar com isso dessa maneira. Eu tenho esse problema nos laptops HP e Asus.


Isso funciona para mim onde mais nada aconteceu- obrigado!
daboross

Felicidades! Fico feliz que foi útil! ; D
Rho

3

A solução a seguir funcionou para mim no meu Acer Predator Helios 300 executando o Ubuntu 18.04 (5.0.0-36-generic) quando tudo o resto não funcionou.

Verifique se a solução funciona
Tente executar o seguinte comando depois de acordar da suspensão quando o trackpad não estiver funcionando- /sbin/rmmod i2c_hid && /sbin/modprobe i2c_hid.
Se isso fizer seu trackpad funcionar, siga as etapas abaixo para criar uma solução automática que seja executada sempre que você acordar da suspensão.

Solução permanente
1. Crie /lib/systemd/system-sleep/touchpad
2. Abra o arquivo acima e edite-o, sudo vi /lib/systemd/system-sleep/touchpad
3. Salve o seguinte conteúdo no arquivo

#!/bin/sh

case $1 in
  post)
    /sbin/rmmod i2c_hid && /sbin/modprobe i2c_hid 
  ;;
esac
  1. Torne executável chmod +x /lib/systemd/system-sleep/touchpad

Isso basicamente reinicia o dispositivo i2c_hid ao acordar da suspensão.

Cortesia: /unix//a/526488/283735


Ótima resposta, isso funcionou para mim, obrigado. O módulo "psmouse" não era o único para mim, "i2c_hid" era. Dell Inspiron Eu tinha isso no dmesg: [24063.094911] psmouse serio1: elantech: elantech_send_cmd a consulta 0x02 falhou. [24063.094918] psmouse serio1: elantech: falha ao consultar recursos. [24064.645952] psmouse serio1: falha ao ativar o mouse na entrada isa0060 / serio1 [24065.383423]: ImPS / 2 Logitech Wheel Mouse como / devices / platform / i8042 / serio1 / input / input38 [24240.449885] psmouse serio1: elantech: assumindo a versão 4 do hardware (com versão de firmware 0x4f5001)
David Robson


1

Isso funcionou para mim:

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

  2. Altere a configuração do Touchpad no BIOS de ADVANCED para BASIC (não faz diferença no que diz respeito à funcionalidade)

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


0

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


Não o que eu estava esperando para ouvir, mas eu aprecio a resposta
Ross Allen

é o Elan Touchpad. Isso literalmente me faz usar ctrl-alt-f1 / 2/3 para mudar e voltar a descongelar. Depois que eu o desativei, sem problemas. Como você sabe, você pode usá-lo em rajadas curtas e usar meu método mencionado acima para sair do bloqueio. Espero que ajude.
ChangosMuertos

0

Drivers que não respondem bem à suspensão são bastante comuns, independentemente do sistema operacional. Estou feliz que você encontrou uma solução alternativa 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 ciclo de inicialização que é o que a hibernação fornece ao acordar.

fonte: http://manpages.ubuntu.com/manpages/trusty/man8/pm-action.8.html


Você pode conectar-se às rotinas de ativação para reiniciar o driver, talvez ... Bem como o gerenciador de rede é recarregado. Apenas ainda não descobri como fazê-lo. Eu estava trabalhando para reiniciar o pulseaudio, mas conseguiu quebrá-lo há 2 dias :(
WinEunuuchs2Unix

1
@ WinEunuuchs2Unix Eu adoraria ver isso. pingue-me se você descobrir.
Elder Geek

coisa certa. Provavelmente vou fazer uma dessas coisas "responda sua própria pergunta" em cerca de seis meses a esse ritmo de 6 semanas.
WinEunuuchs2Unix 21/09

1
Eu postei uma resposta, mas pareço capaz de executar ping em todos, exceto você (Elder Geek), por algum motivo estranho.
WinEunuuchs2Unix
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.