C'è un modo per "riavviare" il driver del touchpad?


64

Uso Ubuntu 14.04 su un laptop, di solito con un mouse USB esterno e tastiera e schermo collegati. A volte, tuttavia, li scollego tutti e muovo il laptop e continuo a usarlo con la tastiera, lo schermo e il touchpad integrati.

In momenti casuali accade che il touchpad smetta di funzionare (ma se collego il mouse USB, il mouse USB funziona). Anche se questo accade molto raramente, quando lo fa è un grande fastidio, poiché sono costretto a riavviare se ho bisogno che il touchpad funzioni di nuovo.

C'è qualche soluzione alternativa che posso provare, come uccidere un processo che si riavvierebbe automaticamente o qualche comando che causerebbe il riavvio o l'aggiornamento del driver del touchpad o qualcosa del genere? Qualcosa che può "riattivare" il touchpad senza dover riavviare?


A volte chiudere lo schermo del laptop e riaprirlo risolve il problema.
illusionista

Risposte:


32

Stavo avendo questo problema con un laptop ripetutamente finché non ho notato che il touchpad di quel computer aveva il suo interruttore On / Off che dovevo aver colpito per sbaglio. In particolare, l'interruttore non ha aiutato a riaccenderlo. Ho appena fatto attenzione a non premerlo, e in poco tempo ho iniziato a utilizzare una tastiera wireless esterna con touchpad wireless integrato, e da allora non ho più avuto questo problema.

AGGIORNAMENTO: (Nota: link in basso non funzionante, soluzione sopra) Da quando ho pubblicato questa "soluzione" ho pubblicato un commento che apparentemente soddisfaceva le esigenze dell'utente. Avendo appena appreso che i commenti rimangono solo temporaneamente e vengono automaticamente eliminati, ripubblico di seguito il contenuto del commento utile che può essere conservato per altri:

Stavo condividendo la "soluzione" che ha funzionato per me. Oggi mi è venuto in mente di cercare soluzioni più adatte alla tua domanda originale su Google e ho trovato il seguente link. Non è quello che considererei personalmente "conveniente", ma potrebbe almeno essere più elegante trasformandolo in una sceneggiatura. Ho trovato questo (vedi sotto) - Gyropyge 25 settembre alle 20:06

Premere Alt+ F2e digitare gksudo modprobe -r psmouseDigitare la password, premere Enter, quindi premere nuovamente Alt+ F2per immettere quanto segue, gksudo modprobe psmousequindi premereEnter


non è il mio caso, però
matteo,

2
Stavo condividendo la "soluzione" che ha funzionato per me. Oggi mi è venuto in mente di cercare soluzioni più adatte alla tua domanda originale su Google e ho trovato il seguente link. Non è quello che considererei personalmente "conveniente", ma potrebbe almeno essere reso più elegante rendendolo una sceneggiatura. tuxtrix.com/2010/06/…
gyropyge

Grazie! Ho contrassegnato la tua risposta come risposta accettata sebbene la risposta sia effettivamente nel tuo commento (beh non ho avuto l'opportunità di provarla ma sembra che sia la soluzione).
matteo,

Grazie per la considerazione del mio commento ripensato. Anch'io potrei finire per trarre beneficio da quella soluzione in futuro, poiché la mia soluzione di cercare di non premere un pulsante particolarmente facile da colpire al bordo del touch-pad non è stata particolarmente soddisfacente.
Gyropyge,

1
Il collegamento funzionava per me, ma nel caso in cui: Se sei bloccato senza movimento del mouse sul tuo laptop (touchpad), premi le combinazioni di tasti Alt + F2 e digita gksudo modprobe -r psmouse Digita la password, premi Invio, e quindi premi di nuovo Alt + F2 per inserire il seguente
psmouse

58

Ho trovato un modo per farlo:

Innanzitutto, aprire un terminale e stampare tutti i dispositivi di input per trovare l'id necessario per il dispositivo di input che si desidera disabilitare. Nel terminale, digitare:

xinput --list

Successivo: nota dove dice id = X in una colonna lunga per ogni dispositivo di input. Vuoi trovare l'ID del dispositivo che corrisponde al dispositivo di input che vuoi disabilitare (forse qualcosa che suona come "touchpad"). Quindi sostituire X nel seguente comando con il numero ID che rappresenta il dispositivo di input che si desidera disabilitare:

xinput disable X

Nota: se non sei sicuro di quale ID dispositivo dovresti usare per disabilitare il touchpad, puoi scoprire testando ID casuali e vedere se il tuo mouse pad funziona ancora. Assicurati di NON FARE NULLA DI IMPORTANTE. Salva tutto il tuo lavoro e preparati a riavviare il computer se fai qualcosa come disabilitare la tastiera. (Potresti avere problemi a provare ad abilitarlo di nuovo se non riesci a digitare nel terminale.

Quindi dovrai eseguire quest'ultima riga (Grazie per aver catturato questo Arch Stanton!)

xinput enable X

Motivo: avevo disperatamente bisogno di una risposta a questo problema perché i problemi che avevo riscontrato con il mio touchpad rendevano impossibile fare qualsiasi tipo di lavoro. Improvvisamente, in qualche momento casuale quando uso il mio laptop, apparentemente senza motivo, il mio touchpad entra in una sorta di "modalità speciale". Muovere semplicemente un dito sul mio touchpad farebbe scorrere lo schermo, invece di spostare effettivamente il cursore del mouse sullo schermo, quindi era impossibile far passare il mouse su qualsiasi cosa a broswer senza notevoli sforzi di coordinamento per tenere conto dello schermo a scorrimento e mouse non in movimento. Volevo trovare un modo, SENZA RIAVVIARE IL COMPUTER PORTATILE, per ripristinare il touchpad. Tra i lati positivi, la reimpostazione del touchpad con il metodo sopra risolve effettivamente il mio problema.

Aggiornamento: per rendere ancora più semplice il ripristino del touchpad, ho creato un tasto di scelta rapida per i comandi sopra elencati. Quando il mio touchpad va in crisi, faccio semplicemente la combinazione di tasti ctrl + super + r e fa il reset per me. Facile e veloce.

Ecco come:

-Crea un file nella tua home directory e chiamalo come "touchpad-reset.sh".

-In questo file, inserisci due dei tre (gli ultimi due) comandi precedenti elencati sopra tranne, invece di utilizzare un numero ID X per il dispositivo, poiché è soggetto a modifiche con periferiche aggiunte (forse ??) che puoi usare questo invece:

Ecco un output dal mio computer all'interno del terminale usando questo comando:

xinput --list

Risultato:

Virtual core pointer                        id=2    [master pointer  (3)]⎜   
   ↳ Virtual core XTEST pointer                 id=4    [slave  pointer  (2)]⎜   
   ↳ Genius 2.4G Wireless Mouse                 id=10   [slave  pointer  (2)]⎜   
   ↳ MSFT0001:00 06CB:75BD UNKNOWN              id=13   [slave  pointer  (2)]⎜   
   ↳ ELAN Touchscreen                           id=12   [slave  pointer  (2)]⎜ 

-Ora, cosa fai, sostituisci la X (che prima era un id) per xinput disable X e xinput abilita X con il nome corrispondente a quell'id tra virgolette singole. Ad esempio, da quanto sopra, se volessi farlo per id = 13, il mio dispositivo touchpad, useresti:

xinput disable 'MSFT0001:00 06CB:75BD UNKNOWN'
xinput enable 'MSFT0001:00 06CB:75BD UNKNOWN'

-Ora, stai disabilitando per nome invece che per numero ID, dove un ID potrebbe cambiare nel tempo e quindi disabiliteresti e abiliti qualche altro dispositivo.

Infine, è necessario fornire le autorizzazioni per rendere eseguibile questo file; eseguire questo comando con la directory di lavoro nel terminale come home directory (dove è stato creato il file):

chmod +x your_script_name.sh

Quindi, una volta creato questo file con i comandi appropriati scritti all'interno, assicurandoti che sia nella tua home directory, procedi come segue:

  1. Premi il tasto super (tasto Windows su PC) sulla tastiera per visualizzare la barra laterale dell'unità. Digita "impostazioni di sistema" e premi il tasto Invio.
  2. Trova l'opzione "Tastiera" sotto la dicitura "Hardware" e fai clic su di essa.
  3. Seleziona la scheda "Scorciatoie".
  4. Nella finestra di sinistra, seleziona "Collegamenti personalizzati"
  5. Fai clic sul pulsante + vicino al centro in basso.
  6. Dovrebbe apparire una finestra che richiede un nome descrittivo e un comando da inserire.
  7. Rendi il nome simile a "ripristina touchpad"
  8. Usa questo comando: gnome-terminal -x ./name_of_your_script.sh
  9. Fai clic su "Applica"
  10. Ora dovresti vedere il tuo collegamento elencato e all'estrema destra dovrebbe dire "Disabilitato" o qualche altra spazzatura. Fai clic su quel testo e preparati a creare una sorta di combinazione di tasti, forse come ctrl + super + r.
  11. Dopo aver creato questa combinazione di tasti, il gioco è fatto.

Congratulazioni! Divertiti.


Quindi dovrai correre xinput enable X.
Arch Stanton,

Ah-ah! Ho dimenticato di metterlo lì? Sparare. Grazie per averlo aggiunto. Proprio come me per soffiarlo alla fine.
user3499524

Ahah non importa, mi hai salvato :-)
Arch Stanton il

xinput list + disable + enable funziona alla grande
axel22

2
enable/ disablefunziona anche solo con ID invece del nome del dispositivo
Zlatev

50

Per riavviare il driver del touchpad del laptop:

Aprire il terminale premendo Ctrl+ Alt+ T ed eseguire il comando seguente

sudo  modprobe -r psmouse

poi

sudo modprobe psmouse

Ho trovato la soluzione qui e c'è anche la soluzione per un mouse USB


Giudizio perfetto Il mio puntatore si blocca in una posizione che mi ha aiutato a risolverlo.
Manikandan Arunachalam,

1
questo ha funzionato per me - il mio touchpad avrebbe smesso di funzionare dopo qualche tempo. Ho un touchpad ALPS su Dell con Xubuntu 16.04
Ur Ya'ar,

sudo modprobe psmouse proto=impsha funzionato per me su un Asus UX303UB + Ubuntu 16.04.2 ma senza funzionalità multitouch. In qualche modo da un giorno all'altro devo eseguire quel comando per avere il touchpad, mai più con i gesti.
Pablo A

Questo non ha funzionato per me su un Dell Precision.
Cerin,

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,

10

Se non sai quale modulo utilizza il tuo touchpad, puoi scoprirlo con un po 'di ricerche

grep -iA2 touchpad /proc/bus/input/devices

per me questo ritorna

N: Name="Elan Touchpad"
P: Phys=
S: Sysfs=/devices/platform/80860F41:03/i2c-11/i2c-ELAN0100:00/input/input10

quindi vedere quali moduli del kernel sono disponibili in questa categoria:

ls $(find /lib/modules/$(uname -r) -type d -name mouse)

che per me ritorna

appletouch.ko  bcm5974.ko  cyapatp.ko  elan_i2c.ko  gpio_mouse.ko  
psmouse.ko  sermouse.ko  synaptics_i2c.ko  synaptics_usb.ko  vsxxxaa.ko

Riferimenti incrociati tra i due: nel mio caso sembra che il modulo per il mio touchpad sia elan_i2c.ko

Modifica: di recente ho scoperto come ottenere in modo affidabile il nome del driver in uso con un comando contorto, che terdon ha semplificato piacevolmente per me

grep -hriPo 'DRIVER=\K.+' /sys 2>/dev/null | while read driver; do [ -e /lib/modules/$(uname -r)/kernel/drivers/input/mouse/"$driver"* ] && echo $driver; done

Per verificare di avere il modulo giusto, prova il comando per scaricarlo dal kernel:

sudo modprobe -r elan_i2c

Il touchpad morirà all'istante se hai il modulo giusto, quindi puoi trovarlo facilmente per tentativi ed errori. Ricaricalo con

sudo modprobe elan_i2c

Ciò riavvia efficacemente il modulo. È possibile eseguire i due comandi insieme in questo modo:

sudo modprobe -r elan_i2c && sudo modprobe elan_i2c

Occasionalmente devo farlo dopo aver ripreso dalla sospensione.


7

Se si dispone di un touchpad Synaptics:

synclient TouchpadOff=0

2
Yeyaaaaa! Ubuntu 18.04 LTS con xfce e ha funzionato come un fascino con Synaptics!
azatar

6

Ecco cosa funzionava per me è [Zenbook ASUS UX501VW]:

sudo  modprobe -r elan_i2c
sudo  modprobe elan_i2c

E il mio touch pad mancante è tornato.


grazie! funziona per zenbook ux305ca su Ubuntu 16.04 lts.
Chao,

4

Ciò che potrebbe essere più semplice e che ha funzionato per me è stato ricaricare il driver nel kernel. Il codice seguente trova prima il nome del driver del kernel che gestisce il touchpad, quindi lo scarica rmmode lo ricarica modprobe. Nota che devi essere root per eseguire questi comandi, quindi esegui sudo suprima.

> lsmod | grep touch
hid_multitouch         20480  0 
> rmmod hid_multitouch 
> modprobe hid_multitouch

2

Per me, sul kernel 4.13.0-46 su Asus per ELAN1200, non si trattava di ricaricare elan_i2cma il hid-multitouchdriver:

sudo modprobe -r hid-multitouch && sudo modprobe -r hid-multitouch

il mio laptop Asus sta usando un driver nascosto per ENTRAMBE la tastiera e il touchpad, quindi deve fare così in un singolo cmdline, altrimenti non è possibile digitare dopo modprobe -r.
Tomofumi,

1

Prova anche gksudo /etc/init.d/hotplug restart


1

Una riga di comando bash per ripristinare un touchpad (basato sulla risposta @ user3499524):

id=`xinput --list |grep -i touchpad | cut -f2 | cut -f2 -d=` && xinput disable $id && xinput enable $id && echo "The touchpad has been reset."

1

La soluzione più semplice potrebbe essere:

  • collegare un mouse
  • vai su Impostazioni di sistema >> Mouse e touchpad
  • porta il touchpad su ON

Benvenuti in Ask Ubuntu! ;-) Le soluzioni non devono essere geniali per essere bravi!
Tienilo

0

illusionista.

Capisco che stai eseguendo Ubuntu 14.04; Il mio è un po 'diverso (come segue):

Questo laptop: Acer Swift 1 (EUFI); x86-64 bit.

Tipo di sistema operativo: Ubuntu 16.04 LTS.

Tipo di touchpad: SYNA7DAB: 00 06CB: 7DAC Touchpad (synaptics_i2c.ko).

Soluzione fornita : https://help.ubuntu.com/community/SynapticsTouchpad/ShortcutKey

Creare uno script di file bash (come suggerito: creare un collegamento simbolico allo script bash e mappare un tasto di scelta rapida su di esso); I contenuti dovrebbero essere i seguenti:

#!/bin/bash

declare -a STATES=(1 0)
DEVICE=$(xinput list --name-only | grep Touchpad)
STATE=$(xinput list-props "$DEVICE" | grep 'Device Enabled' | sed 's/^.*:[ \t]*//')
xinput set-prop "$DEVICE" 'Device Enabled' ${STATES[$STATE]}

Assicurati che disponga delle autorizzazioni eXecutable!

sudo chmod +x path/filename.sh

Questa soluzione funziona alla grande per me stesso. Spero che valga anche per te.

Dettagli personali del proprio problema (eventualmente applicabili alla propria situazione)

Per qualche ragione sconosciuta: il touchpad di questo laptop diventerà automaticamente magicamente non funzionale (ma è ancora in esecuzione AFAIK). Ho tentato di rimuovere il mouse ottico basato su USB; ma riscontro lo stesso problema.

xinput --list dump:

larvae@MST-Laptop:~/Desktop$ xinput --list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                     id=10   [slave  pointer  (2)]
⎜   ↳ SYNA7DAB:00 06CB:7DAC Touchpad            id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Video Bus                                 id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ Logitech USB Receiver                     id=9    [slave  keyboard (3)]
    ↳ HD WebCam                                 id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=13   [slave  keyboard (3)]
    ↳ Acer WMI hotkeys                          id=14   [slave  keyboard (3)]

grep -iA2 touchpad / proc / bus / input / dispositivi dump:

larvae@MST-Laptop:~/Desktop$ grep -iA2 touchpad /proc/bus/input/devices
N: Name="SYNA7DAB:00 06CB:7DAC Touchpad"
P: Phys=i2c-SYNA7DAB:00
S: Sysfs=/devices/pci0000:00/0000:00:17.0/i2c_designware.4/i2c-9/i2c-SYNA7DAB:00/0018:06CB:7DAC.0003/input/input11

Riepilogo della soluzione ( fornito da UBUNTU ): https://help.ubuntu.com/community/SynapticsTouchpad/ShortcutKey


0

Chiamo questo script mouse-reset. Rimuove e quindi modprobes tutti i moduli elencati nelle risposte a questa domanda finora:

#!/bin/bash

modules=(psmouse hid_multitouch elan_i2c)

for mod in "${modules[@]}"; do
    sudo rmmod "$mod" 2> /dev/null
    sudo modprobe -v "$mod" 2> /dev/null
done

0

Sto usando un Apple Macbook Retina Pro; il touchpad a volte smette di funzionare. La maggior parte dei metodi sopra non trova il driver in quanto il nome non contiene "mouse" o "touch".

Per trovare il driver del touchpad, nel mio caso bcm5974:

MacBookPro:~$ xinput list-props 11
Device 'bcm5974':
    Device Enabled (147):   1`
...

Quindi scaricare e ricaricare:

MacBookPro:~$ sudo modprobe -r bcm5974
MacBookPro:~$ sudo modprobe bcm5974

Risolto.


11 è il numero di dispositivo specifico nel tuo caso, dovrai trovare questo numero xinput --listprima di poterlo utilizzare qui.
Yaron il
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.