¿Hay alguna manera de "reiniciar" el controlador del panel táctil?

64

Utilizo Ubuntu 14.04 en una computadora portátil, generalmente con un mouse USB externo y teclado y pantalla conectados. A veces, sin embargo, los desconecto y muevo la computadora portátil y la sigo usando con el teclado incorporado, la pantalla y el panel táctil.

En ocasiones aleatorias sucede que el panel táctil deja de funcionar (pero si conecto el mouse usb, el mouse usb funciona). Aunque esto ocurre muy raramente, cuando lo hace es una gran molestia, ya que me veo obligado a reiniciar si necesito que el panel táctil vuelva a funcionar.

¿Hay alguna solución alternativa que pueda intentar, como eliminar algún proceso que se reinicie automáticamente o algún comando que haga que el controlador del panel táctil se reinicie o actualice? ¿Algo que pueda "despertar" el panel táctil sin tener que reiniciar?

matteo
fuente
A veces, cerrar la pantalla de la computadora portátil y volver a abrirla resuelve el problema.
ilusionista

Respuestas:

32

Estaba teniendo ese problema con una computadora portátil en varias ocasiones hasta que noté que el panel táctil de esa computadora tenía su propio interruptor de encendido / apagado que debí haber golpeado por accidente. En particular, el interruptor no ayudó a volver a encenderlo. Acabo de tener cuidado de no presionarlo, y en poco tiempo empecé a usar un teclado inalámbrico externo con panel táctil inalámbrico integrado, y no he tenido ese problema desde entonces.

ACTUALIZACIÓN: (Nota: el enlace a continuación está roto, la solución está arriba) Desde que publiqué esta "solución" publiqué un comentario que aparentemente satisfizo las necesidades del usuario. Habiendo aprendido que los comentarios permanecen solo temporalmente y se eliminan automáticamente, vuelvo a publicar el contenido del comentario útil que se puede conservar para otros:

Estaba compartiendo la "solución" que funcionó para mí. Hoy se me ocurrió buscar soluciones en Google que se ajustaran más a su pregunta original y encontré el siguiente enlace. No es lo que personalmente consideraría "conveniente", pero al menos podría ser más elegante al convertirlo en un guión. Encontré esto (ver más abajo) - gyropyge 25 de septiembre a las 20:06

Presione Alt+ F2y escriba gksudo modprobe -r psmouseEscriba la contraseña, presione Enter, y luego presione Alt+ F2nuevamente para ingresar lo siguiente gksudo modprobe psmousey luego presioneEnter

gyropyge
fuente
no es mi caso, sin embargo
matteo
2
Estaba compartiendo la "solución" que funcionó para mí. Hoy se me ocurrió buscar soluciones en Google que se ajustaran más a su pregunta original y encontré el siguiente enlace. No es lo que personalmente consideraría "conveniente", pero al menos podría ser más elegante convirtiéndolo en un guión. tuxtrix.com/2010/06/…
gyropyge
¡Gracias! Marqué su respuesta como la respuesta aceptada, aunque la respuesta está realmente en su comentario (bueno, no he tenido la oportunidad de probarla, pero parece que es la solución).
matteo
Gracias por la consideración de mi comentario posterior. Yo también podría terminar beneficiándome de esa solución en el futuro, ya que mi solución de tratar de no presionar un botón particularmente fácil que golpea el borde del panel táctil no ha sido particularmente satisfactoria.
gyropyge
1
Link funcionaba para mí, pero por si acaso: si está atascado sin movimiento del mouse en su computadora portátil (panel táctil), presione las combinaciones de teclas Alt + F2 y escriba gksudo modprobe -r psmouse Escriba la contraseña, presione Intro y luego presione Alt + F2 nuevamente para ingresar el siguiente gksudo modprobe psmouse
G Trawo
58

Encontré una manera de hacer esto:

Primero, abra un terminal e imprima todos los dispositivos de entrada para encontrar la identificación que necesita para el dispositivo de entrada que desea desactivar. En la terminal, escriba:

xinput --list

A continuación: observe dónde dice id = X en una columna larga para cada dispositivo de entrada. Desea encontrar la identificación del dispositivo que corresponde al dispositivo de entrada que desea deshabilitar (tal vez algo que suene como "panel táctil"). Luego reemplace X en el siguiente comando con el número de identificación que representa el dispositivo de entrada que desea deshabilitar:

xinput disable X

Nota: Si no está seguro de qué ID de dispositivo debe usar para deshabilitar el panel táctil, puede averiguarlo probando ID aleatorios y ver si su mouse pad todavía funciona. Asegúrese de NO HACER NADA IMPORTANTE. Guarde todo su trabajo y prepárese para reiniciar su computadora si hace algo como deshabilitar su teclado. (Puede tener problemas para intentar habilitarlo nuevamente si no puede escribir en el terminal.

Entonces tendrás que ejecutar esta última línea (¡Gracias por atrapar a este Arch Stanton!)

xinput enable X

Motivo: necesitaba desesperadamente una respuesta a este problema porque los problemas que estaba experimentando con mi panel táctil hacían imposible realizar cualquier tipo de trabajo. De repente, en algún momento aleatorio cuando uso mi computadora portátil, aparentemente sin razón, mi touchpad entra en algún tipo de "modo especial". Simplemente mover un dedo en mi panel táctil haría que la pantalla se desplazara, en lugar de mover el cursor del mouse en la pantalla, por lo que era imposible hacer que el mouse se desplazara sobre algo en Broswer sin esfuerzos considerables de coordinación para dar cuenta de la pantalla de desplazamiento. y ratón sin movimiento. Quería encontrar una manera, SIN REINICIAR LA COMPUTADORA PORTÁTIL, para restablecer el panel táctil. En el lado positivo, restablecer el panel táctil con el método anterior realmente soluciona mi problema.

Actualización: para facilitar el restablecimiento del panel táctil, hice una tecla de acceso rápido para los comandos enumerados anteriormente. Cuando mi touchpad se enciende, simplemente hago la combinación de teclas ctrl + super + r y se reinicia por mí. Rapido y Facil.

Así es cómo:

-Cree un archivo dentro de su directorio de inicio y llámelo como "touchpad-reset.sh".

- Dentro de este archivo, ingrese dos de los tres (los dos últimos) comandos anteriores enumerados anteriormente, excepto que, en lugar de usar un número de identificación X para el dispositivo, ya que está sujeto a cambios con periféricos agregados (¿tal vez?) Puede usar esto en cambio:

Aquí hay una salida de mi computadora dentro de la terminal usando este comando:

xinput --list

Resultado:

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)]⎜ 

-Ahora lo que haces, reemplazas la X (que era una identificación antes) para xinput desactiva X y xinput activa X con el nombre correspondiente a esa identificación dentro de comillas simples. Por ejemplo, de lo anterior, si quisiera hacerlo para id = 13, mi dispositivo de panel táctil, usaría:

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

-Así que ahora, está deshabilitando por nombre en lugar de número de identificación, donde una identificación puede cambiar a tiempo y luego deshabilitaría y habilitaría otro dispositivo.

Finalmente, debe otorgar los permisos para hacer que este archivo sea ejecutable; ejecute este comando con su directorio de trabajo en la terminal como su directorio de inicio (donde creó el archivo):

chmod +x your_script_name.sh

Entonces, una vez que cree este archivo con los comandos apropiados escritos en su interior, asegurándose de que esté en su directorio de inicio, siga los siguientes pasos a continuación:

  1. Presione la tecla súper (tecla de Windows en la PC) en el teclado para que aparezca la barra lateral de la unidad. Escriba 'configuración del sistema' y presione la tecla Intro.
  2. Busque la opción 'Teclado' debajo de donde dice 'Hardware' y haga clic en él.
  3. Seleccione la pestaña 'Accesos directos'.
  4. En la ventana izquierda, seleccione 'Accesos directos personalizados'
  5. Haga clic en el botón + cerca del centro inferior.
  6. Debería aparecer una ventana pidiendo un nombre descriptivo y un comando para poner.
  7. Haga que el nombre sea algo así como "restablecer panel táctil"
  8. Use este comando: gnome-terminal -x ./name_of_your_script.sh
  9. Haga clic en 'Aplicar'
  10. Ahora debería ver su acceso directo en la lista y en el extremo derecho debería decir "Deshabilitado" o alguna otra basura. Haga clic en ese texto y prepárese para hacer algún tipo de combinación de teclas, tal vez como ctrl + super + r.
  11. Una vez que haga esta combinación de teclas, ya está.

Felicidades! Que te diviertas.

usuario3499524
fuente
Entonces tendrás que correr xinput enable X.
Arch Stanton
Ah-ha! ¿Olvidé poner eso ahí? Disparar. Gracias por agregar eso allí. Al igual que yo para que lo explote al final.
user3499524
Ahah no importa, me salvaste :-)
Arch Stanton
xinput list + disable + enable funciona muy bien
axel22
2
enable/ disabletambién funciona solo con ID en lugar del nombre del dispositivo
Zlatev
50

Para reiniciar el controlador del panel táctil de la computadora portátil:

Abra la terminal presionando Ctrl+ Alt+ T y ejecute el siguiente comando

sudo  modprobe -r psmouse

entonces

sudo modprobe psmouse

He encontrado la solución aquí y también hay una solución para un mouse usb

maruf
fuente
Hallazgo perfecto. Mi puntero queda atrapado en una posición que me ayudó a resolverlo.
Manikandan Arunachalam
1
esto funcionó para mí: mi panel táctil dejaría de funcionar después de un tiempo. Tengo un panel táctil ALPS en Dell con Xubuntu 16.04
Ur Ya'ar
sudo modprobe psmouse proto=impsfuncionó para mí en un Asus UX303UB + Ubuntu 16.04.2 pero sin funciones multitáctiles. De alguna manera de un día para otro necesito ejecutar ese comando para tener touchpad, nunca más con gestos.
Pablo A
Esto no funcionó para mí en una Dell Precision.
Cerin
Esta solución no me funcionó. Ubuntu 18.04 con "SYNA8004: 00 06CB: CD8B Touchpad", Lenovo X1 Carbon Gen 7. Obtengo un comportamiento rápido del touchpad después de salir de la hibernación.
Sábado
10

Si no sabe qué módulo usa su panel táctil, puede averiguarlo con un poco de investigación

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

para mí esto vuelve

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

luego vea qué módulos del núcleo están disponibles en esta categoría:

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

que para mi vuelve

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

Referencia cruzada de los dos: en mi caso, parece que el módulo para mi touchpad es elan_i2c.ko

Editar: recientemente descubrí cómo obtener de manera confiable el nombre del controlador en uso con un comando complicado, que terdon simplificó muy bien para mí

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

Para verificar que tiene el módulo correcto, pruebe el comando para descargarlo del núcleo:

sudo modprobe -r elan_i2c

El panel táctil morirá instantáneamente si obtiene el módulo correcto, por lo que puede encontrarlo fácilmente por prueba y error. Vuelva a cargarlo con

sudo modprobe elan_i2c

Esto reinicia efectivamente el módulo. Puede ejecutar los dos comandos juntos de esta manera:

sudo modprobe -r elan_i2c && sudo modprobe elan_i2c

De vez en cuando tengo que hacer esto en el curriculum vitae de suspender.

Zanna
fuente
7

Si tiene un panel táctil sináptico:

synclient TouchpadOff=0
AnteBios
fuente
2
Yeyaaaaa! Ubuntu 18.04 LTS con xfce y funcionó de maravilla con Synaptics!
azatar
6

Esto es lo que funcionaba para mí es [Zenbook ASUS UX501VW]:

sudo  modprobe -r elan_i2c
sudo  modprobe elan_i2c

Y mi panel táctil perdido está de vuelta.

Denis Walrave
fuente
¡gracias! funciona para zenbook ux305ca en ubuntu 16.04 lts.
chao
4

Lo que puede ser más fácil y que funcionó para mí fue volver a cargar el controlador en el kernel. El siguiente código primero encuentra el nombre del controlador del núcleo que maneja el panel táctil, luego lo descarga rmmody lo vuelve a cargar modprobe. Tenga en cuenta que debe ser root para ejecutar estos comandos, por lo tanto, ejecute sudo suprimero.

> lsmod | grep touch
hid_multitouch         20480  0 
> rmmod hid_multitouch 
> modprobe hid_multitouch
ChrisR
fuente
2

Para mí, en el kernel 4.13.0-46 en Asus para ELAN1200, no se trataba de recargar elan_i2csino el hid-multitouchcontrolador:

sudo modprobe -r hid-multitouch && sudo modprobe -r hid-multitouch
pholat
fuente
mi computadora portátil Asus está utilizando un controlador oculto para AMBOS teclado y panel táctil, por lo que debe hacer esto en una sola línea de cm; de lo contrario, no puede escribir después de modprobe -r.
Tomofumi
1

Intenta también gksudo /etc/init.d/hotplug restart

qwr
fuente
1

Una línea de comando bash para restablecer un panel táctil (basado en la respuesta @ user3499524):

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

La solución más simple podría ser:

  • conecte un mouse
  • vaya a Configuración del sistema >> Mouse y panel táctil
  • cambie el panel táctil a ON
Anthony Britton
fuente
Bienvenido a Ask Ubuntu! ;-) ¡Las soluciones no necesitan ser geek para ser buenas! Solo que sea breve y simple ... :-)
Fabby
0

ilusionista.

Entiendo que estás ejecutando Ubuntu 14.04; El mío es un poco diferente (como sigue):

Este portátil: Acer Swift 1 (EUFI); x86-64 bit.

Tipo de sistema operativo: Ubuntu 16.04 LTS.

Tipo de panel táctil: SYNA7DAB: 00 06CB: 7DAC Touchpad (synaptics_i2c.ko).

Solución proporcionada : https://help.ubuntu.com/community/SynapticsTouchpad/ShortcutKey

Cree un script de archivo bash (como se sugiere: cree un enlace simbólico al script bash y asigne una tecla de acceso rápido a él); El contenido debe ser el siguiente:

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

¡Asegúrese de que tenga permisos ejecutables!

sudo chmod +x path/filename.sh

Esta solución funciona muy bien para mí. Esperemos que también se aplique a usted.

Datos personales de su propio problema (posiblemente aplicable a su situación)

Por alguna razón desconocida: el panel táctil de este portátil dejará de funcionar automáticamente por arte de magia (pero aún funciona con AFAIK). He intentado eliminar el mouse óptico basado en USB; Sin embargo, se encuentra con el mismo 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 / devices 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

Resumen de la solución ( proporcionada por UBUNTU ): https://help.ubuntu.com/community/SynapticsTouchpad/ShortcutKey

Daniel B
fuente
0

Yo llamo a este guión mouse-reset. Elimina y luego modprobemuestra todos los módulos enumerados en las respuestas a esta pregunta hasta ahora:

#!/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
Tom Hale
fuente
0

Estoy usando una Apple Macbook Retina Pro; el touchpad a veces deja de funcionar. La mayoría de los métodos anteriores no encontrarán el controlador ya que el nombre no contiene 'mouse' o 'touch'.

Para encontrar el controlador del panel táctil, en mi caso bcm5974:

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

Luego para descargar y recargar:

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

Resuelto

usuario118684
fuente
11 es el número de dispositivo específico en su caso, deberá encontrar este número xinput --listantes de poder usarlo aquí.
Yaron