Il touchpad non funziona dopo aver sospeso il laptop


14

Questo sembra un problema comune, ma dopo aver provato tutte le correzioni che ho trovato sui forum, sono ancora in perdita.

Specifiche:

  • computer: Asus k501LX-EB71
  • Sistema operativo: Ubuntu 14.04.3
  • kernel: 3.19.0-26-generico
  • touchpad: touchpad Elantech
  • driver: xserver-xorg-input-synaptics-lts-trusty (OR) xserver-xorg-input-synaptics-lts-vivid (non sono sicuro di quale sia in uso)

Quello che ho provato: posso correre sudo modprobe -r psmouseper "spegnere" il touchpad e quindi sudo modprobe psmouseriaccenderlo. Funziona benissimo. Tuttavia, quando sospendo, non riesco a "ripristinare" il touchpad, anche se inserisco questi comandi.

qualche idea?

AGGIORNARE:

Non osservo questo problema se sono in letargo invece di sospendere. Non sono sicuro di cosa pensare di quell'indizio ...

Workaround corrente:

Dal momento che l'ibernazione sembra non causare un problema e ho una quantità adeguata di memoria di scambio, ho solo l'ibernazione come azione predefinita per cose come chiudere il coperchio. Ecco i passaggi che ho seguito per abilitare l'ibernazione . Ho anche modificato altre impostazioni di alimentazione predefinite per andare in letargo utilizzando l'editor dconf in org> gnome> settings-daemon> plugin> power


Potresti trovare questo utile: ubuntuforums.org/showthread.php?t=2189117
Elder Geek

hmmm ... grazie per la rapida risposta ma ho seguito tutti i passaggi di quel thread senza fortuna. Per qualsiasi motivo, non riesco a ripristinare il touchpad sudo modprobe psmousedopo aver sospeso. Semplicemente, non sembra succedere nulla. Non riesco a trovare nulla fuori posto nei file di registro
Ross Allen,

Considererei la tua soluzione alternativa una risposta. Dovresti scriverlo come tale perché è probabile che aiuti gli altri e l'incorporamento della risposta nella tua domanda potrebbe rendere più difficile da trovare.
Elder Geek,

Risposte:


8

Questo bug viene segnalato nel launchpad: il touchpad Elantech smette di funzionare dopo la sospensione . Dopo la sospensione, l'OP prova # modprobe -r psmousee # modprobe psmousenon funziona. Ma cosa succede se psmouse è stato rimosso prima della sospensione e inserito dopo la sospensione?

Se funziona manualmente, puoi automatizzare creando un nuovo file nella /lib/systemd/system-sleep/directory contenente:

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

È noto dopo una sospensione che il modulo psmouse non può essere rimosso. Sappiamo anche che può essere rimosso e inserito prima di una sospensione. Quindi questa tecnica lo rimuove prima della sospensione. Dopo aver ripreso inseriscilo e speriamo che il kernel non lo rifiuti.

Il sleep 2comando proviene dai miei problemi in cui systemd e kernel (tramite gnome o APM) stavano dormendo e svegliandosi. Avevo bisogno di reindirizzare il suono di pulseaudio sulla TV a causa di un bug introdotto in Ubuntu 16.04 / pulseaudio 8.0. Il ritardo di 2 secondi era necessario affinché kernel e systemd finissero di svegliarsi. Non ho ancora capito la doppia sospensione e il doppio curriculum ancora ....


Penso che sarebbe meglio usare la SUSPEND_MODULESfunzionalità standard di pm-utilsper questo linux.die.net/man/8/pm-suspend
cgogolin

Questa soluzione non ha funzionato per me. Ubuntu 18.04 con "SYNA8004: 00 06CB: CD8B Touchpad", Lenovo X1 Carbon Gen 7. Ho un comportamento scattante del touchpad dopo aver ripreso dal letargo.
SaTa,

7

Mi è stato consigliato di inviare la soluzione alternativa come risposta:

Ho scoperto che hibernate ( sudo pm-hibernate) non ha riscontrato gli stessi problemi con il riavvio del touchpad, quindi ho semplicemente impostato tutte le opzioni di alimentazione rilevanti su ibernazione anziché sospensione. Ciò richiede un piccolo sforzo poiché l'ibernazione è disabilitata per impostazione predefinita. Ecco cosa deve succedere


1
Attenzione, l'ibernazione è disabilitata per impostazione predefinita perché esiste una buona possibilità di corruzione del disco rigido. Ho dovuto reinstallare il mio sistema operativo due volte dopo un ibernazione non riuscita. L'ho disabilitato di nuovo ora.
crobar,

1
Cambia l'impostazione del Touchpad nel BIOS da ADVANCED a BASIC, non fa alcuna differenza per quanto riguarda la funzionalità e il touchpad funziona ancora quando viene ripreso dalla sospensione.
pst007x,

3

Mi occupo di due semplici approcci con questo problema. Il primo, che non sempre funziona (come hai già detto) riavvia il modulo del mouse dopo l'azione di sospensione.

sudo rmmod psmouse; sudo modprobe psmouse

Ecco una bella discussione su come farlo "automaticamente": come eseguire un comando dopo aver ripreso dalla sospensione?

Un approccio alternativo è quello di uccidere il modulo prima di sospenderlo, evitando di bloccare il modulo dopo il resume (che apparentemente è ciò che genera il problema, come sottolineato da WinEunuuchs2Unix).

Per fare ciò uso una semplice riga di comando per sospendere il laptop invece di chiudere il coperchio "manualmente". Naturalmente questo non è affatto elegante, ma funziona ed è una soluzione diretta. Non c'è tempo per hackerare coinvolti.

sudo rmmod psmouse; sudo pm-suspend

E poi, dopo aver ripreso il laptop, dovresti riattivare il modulo digitando:

sudo modprobe psmouse

Puoi sempre hackerare lo pm-suspendscript predefinito , ma non lo consiglio. È semplice e più sicuro generare queste piccole sequenze di comandi ad-hoc.

Infine, un modo semplice e veloce per eseguire rapidamente "uccisione / sospensione" e la "riattivazione" del modulo mouse consiste nell'associare questi passaggi alle scorciatoie da tastiera: come posso cambiare i tasti della tastiera? (Come posso creare comandi / scorciatoie da tastiera personalizzate?) .

Spero che funzioni, lo fa per me, anche se è davvero scomodo affrontarlo in questo modo. Ho questo problema in entrambi i portatili HP e Asus.


Questo funziona per me dove nient'altro ha fatto- grazie!
daboross,

Saluti! Sono contento che sia stato utile! ; D
Rho,

3

La seguente soluzione ha funzionato per me sul mio Acer Predator Helios 300 con Ubuntu 18.04 (5.0.0-36-generico) quando tutto il resto no-

Verifica se la soluzione funziona
Provare a eseguire il comando seguente dopo essersi svegliato dalla sospensione quando il trackpad non funziona- /sbin/rmmod i2c_hid && /sbin/modprobe i2c_hid.
Se questo fa funzionare il tuo trackpad, segui i passaggi seguenti per creare una soluzione automatica che viene eseguita ogni volta che ti svegli dalla sospensione.

Soluzione permanente
1. Creare /lib/systemd/system-sleep/touchpad
2. Aprire il file sopra e modificarlo, sudo vi /lib/systemd/system-sleep/touchpad
3. Salvare il seguente contenuto nel file-

#!/bin/sh

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

Questo sostanzialmente riavvia il dispositivo i2c_hid al risveglio dalla sospensione.

Per gentile concessione: /unix//a/526488/283735


Ottima risposta, questo ha funzionato per me, grazie. Il modulo "psmouse" non era quello per me, "i2c_hid" lo era. Dell Inspiron L'ho avuto in dmesg: [24063.094911] psmouse serio1: elantech: elantech_send_cmd query 0x02 non riuscita. [24063.094918] psmouse serio1: elantech: impossibile eseguire query sulle funzionalità. [24064.645952] psmouse serio1: impossibile abilitare il mouse su isa0060 / serio1 [24065.383423] input: ImPS / 2 Logitech Wheel Mouse as / devices / platform / i8042 / serio1 / input / input38 [24240.449885] psmouse serio1: elantech: ipotesi di versione 4 (con versione firmware 0x4f5001)
David Robson


1

Questo ha funzionato per me:

  1. Avviare nel BIOS, all'avvio del sistema tenere premuto F2 o ESC

  2. Cambia l'impostazione del Touchpad nel BIOS da ADVANCED a BASIC (non fa differenza per quanto riguarda la funzionalità)

Ora il touchpad dovrebbe ancora funzionare quando ripreso dalla sospensione.


0

Ho diversi laptop Asus, ho dovuto disabilitare il touchpad su tutti. Causano problemi di blocco e altri problemi.


Non quello che speravo di sentire, ma apprezzo la risposta
Ross Allen,

è il touchpad Elan. Mi fa letteralmente usare ctrl-alt-f1 / 2/3 per cambiare e tornare indietro per sbloccarlo. Una volta disabilitato, nessun problema. Come sai, puoi usarlo in brevi raffiche e usare il mio metodo sopra menzionato per uscire dal blocco. Spero possa aiutare.
ChangosMuertos,

0

I driver che non rispondono bene alle sospensioni sono abbastanza comuni indipendentemente dal sistema operativo. Sono contento che tu abbia trovato una soluzione alternativa tramite il letargo.

Poiché la sospensione non si spegne completamente e il letargo lo fa, ciò sembrerebbe indicare che il conducente non risponde bene alla "1/2 vita" delle sospensioni, ma è perfettamente in grado di risalire durante un ciclo di accensione che è ciò che l'ibernazione fornisce al risveglio.

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


Puoi riavviare le routine di riattivazione per riavviare il driver forse ... Proprio come il gestore di rete viene ricaricato. Non ho ancora capito come farlo ancora da solo. Ho funzionato per riavviare pulseaudio ma sono riuscito a romperlo 2 giorni fa :(
WinEunuuchs2Unix

1
@ WinEunuuchs2Unix Mi piacerebbe vederlo. ping me se lo capisci.
Elder Geek,

cosa certa. Probabilmente farò una di quelle cose "rispondi alla tua domanda" tra circa sei mesi a questo ritmo di 6 settimane.
WinEunuuchs2Unix

1
Ho pubblicato una risposta, ma mi sembra di poter fare il ping a tutti tranne te (Elder Geek) per qualche strano motivo.
WinEunuuchs2Unix
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.