El panel táctil no funciona después de suspender la computadora portátil

14

Esto parece un problema común, pero después de probar todas las soluciones que he encontrado en los foros, todavía estoy perdido.

Especificaciones:

  • computadora: Asus k501LX-EB71
  • SO: Ubuntu 14.04.3
  • kernel: 3.19.0-26-generic
  • panel táctil: panel táctil Elantech
  • controlador: xserver-xorg-input-synaptics-lts-trusty (OR) xserver-xorg-input-synaptics-lts-vivid (no estoy seguro de cuál está en uso)

Lo que he intentado: puedo ejecutar sudo modprobe -r psmousepara "apagar" el panel táctil y luego sudo modprobe psmousevolver a encenderlo. Esto funciona bien Sin embargo, cuando suspendo, no puedo "revivir" el panel táctil, incluso si ingreso estos comandos.

¿Alguna idea?

ACTUALIZAR:

No observo este problema si hiberno en lugar de suspender. No estoy seguro de qué hacer con esa pista ...

SOLUCIÓN ACTUAL:

Dado que la hibernación parece no causar un problema y tengo una cantidad adecuada de memoria de intercambio, simplemente hiberno como la acción predeterminada para cosas como cerrar la tapa. Estos son los pasos que seguí para habilitar la hibernación . También modifiqué otras configuraciones de energía predeterminadas para ir a hibernar usando el Editor dconf en org> gnome> settings-daemon> plugins> power

Ross Allen
fuente
Puede encontrar esto útil: ubuntuforums.org/showthread.php?t=2189117
Elder Geek
hmmm ... gracias por la rápida respuesta pero he seguido todos los pasos en ese hilo sin suerte. Por alguna razón, no puedo revivir el panel táctil sudo modprobe psmousedespués de suspenderlo. Simplemente, nada parece suceder. No puedo encontrar nada fuera de lugar en los archivos de registro
Ross Allen
Consideraría su solución alternativa como respuesta. Debería escribirlo como tal, ya que es probable que ayude a otros, e incluir la respuesta en su pregunta puede hacer que sea más difícil de encontrar.
Élder Geek

Respuestas:

8

Este error se informa en el launchpad: el panel táctil de Elantech deja de funcionar después de la suspensión . Después de suspender el OP intenta # modprobe -r psmousey # modprobe psmouseno funciona. Pero, ¿qué pasa si psmouse se eliminó antes de suspender y se insertó después de suspender?

Si esto funciona manualmente, puede automatizarlo creando un nuevo archivo en el /lib/systemd/system-sleep/directorio que contiene:

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

Se sabe que después de suspender el módulo psmouse no se puede eliminar. También sabemos que se puede quitar e insertar antes de una suspensión. Entonces esta técnica lo elimina antes de suspenderlo. Después de reanudar, insértelo y esperemos que el núcleo no lo rechace.

El sleep 2comando es de mis propios problemas donde systemd y kernel (a través de gnome o APM) estaban durmiendo y despertando. Necesitaba redirigir el sonido de pulseaudio al televisor debido a un error introducido en Ubuntu 16.04 / pulseaudio 8.0. El retraso de 2 segundos fue necesario para que kernel y systemd terminaran de despertarse. Todavía no he descubierto la suspensión doble y la reanudación dual todavía ...

WinEunuuchs2Unix
fuente
Creo que sería mejor utilizar el estándar SUSPEND_MODULEScaracterística de pm-utilseste linux.die.net/man/8/pm-suspend
cgogolin
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áTa
7

Se recomendó que publique mi solución alternativa como respuesta:

Descubrí que hibernate ( sudo pm-hibernate) no experimentó los mismos problemas con el reinicio del panel táctil, por lo tanto, solo configuré todas las opciones de energía relevantes para hibernar en lugar de suspender. Esto requiere un poco de esfuerzo ya que la hibernación está deshabilitada de manera predeterminada. Esto es lo que debe suceder.

Ross Allen
fuente
1
Cuidado, la hibernación está deshabilitada de manera predeterminada porque hay una buena posibilidad de corrupción del disco duro. Tuve que reinstalar mi sistema operativo dos veces después de una hibernación fallida. Deshabilitado de nuevo ahora.
crobar
1
Cambie la configuración del panel táctil en su BIOS de AVANZADO a BÁSICO, no hace ninguna diferencia con respecto a la funcionalidad, y el panel táctil aún funciona cuando se reanuda la suspensión.
pst007x
3

Trato dos enfoques simples con este problema. El primero, que no siempre funciona (como mencionó) simplemente reinicia el módulo del mouse después de la acción de suspensión.

sudo rmmod psmouse; sudo modprobe psmouse

Aquí hay una buena discusión sobre cómo hacer esto "automáticamente": ¿cómo ejecutar un comando después de reanudar desde la suspensión?

Un enfoque alternativo es matar el módulo antes de suspenderlo, evitando el bloqueo del módulo después del currículum (que aparentemente es lo que genera el problema, como subrayó WinEunuuchs2Unix).

Para hacerlo, utilizo una línea de comando simple para suspender la computadora portátil en lugar de simplemente cerrar la tapa "manualmente". Por supuesto, esto no es nada lujoso, pero funciona y es una solución sencilla. No hay tiempo para piratear involucrados.

sudo rmmod psmouse; sudo pm-suspend

Y luego, después de reanudar la computadora portátil, debe volver a habilitar el módulo escribiendo:

sudo modprobe psmouse

Siempre puedes hackear el pm-suspendscript predeterminado , pero no lo recomendaré. Es simple y seguro generar estas pequeñas secuencias de comandos ad-hoc.

Por último, una manera fácil y rápida de hacer "matar / suspender" rápidamente y "volver a habilitar" el módulo del mouse es asociar esos pasos con los atajos de teclado: ¿Cómo puedo cambiar las teclas que hago en mi teclado? (¿Cómo puedo crear comandos / atajos de teclado personalizados?) .

Espero que funcione, lo hace para mí, aunque es realmente incómodo lidiar con esto de esa manera. Tengo este problema en las computadoras portátiles HP y Asus.

Rho
fuente
Esto funciona para mí donde nadie más lo hizo, ¡gracias!
daboross
¡Salud! Me alegro de que fue útil! ; D
Rho
3

La siguiente solución funcionó para mí en mi Acer Predator Helios 300 con Ubuntu 18.04 (5.0.0-36-generic) cuando todo lo demás no-

Comprueba si la solución funciona.
Intenta ejecutar el siguiente comando después de despegarte de la suspensión cuando el panel táctil no funciona /sbin/rmmod i2c_hid && /sbin/modprobe i2c_hid.
Si esto hace que su trackpad funcione, siga los pasos a continuación para crear una solución automática que se ejecute cada vez que se despierte de la suspensión.

Solución permanente
1. Crear /lib/systemd/system-sleep/touchpad
2. Abra el archivo anterior y edítelo, sudo vi /lib/systemd/system-sleep/touchpad
3. Guarde el siguiente contenido en el archivo:

#!/bin/sh

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

Básicamente, esto reinicia el dispositivo i2c_hid al despertar de la suspensión.

Cortesía: /unix//a/526488/283735

nihal111
fuente
Gran respuesta, esto funcionó para mí, gracias. El módulo "psmouse" no era el adecuado para mí, "i2c_hid" sí. Dell Inspiron Tenía esto en dmesg: [24063.094911] psmouse serio1: elantech: elantech_send_cmd consulta 0x02 falló. [24063.094918] psmouse serio1: elantech: no se pudieron consultar las capacidades. [24064.645952] psmouse serio1: Error al habilitar el mouse en isa0060 / serio1 [24065.383423] entrada: ImPS / 2 Logitech Wheel Mouse como / devices / platform / i8042 / serio1 / input / input38 [24240.449885] psmouse serio1: elantech: asumiendo la versión de hardware 4 (con la versión de firmware 0x4f5001)
David Robson
1

Esto funcionó para mí:

  1. Arranque en el BIOS, en el arranque del sistema mantenga presionado F2 o ESC

  2. Cambie la configuración del panel táctil en su BIOS de AVANZADO a BÁSICO (no hace ninguna diferencia con respecto a la funcionalidad)

Ahora el panel táctil aún debería funcionar cuando se reanuda la suspensión.

pst007x
fuente
0

Tengo varias computadoras portátiles Asus, he tenido que desactivar el panel táctil en todas ellas. Causan problemas de bloqueo y otros problemas.

ChangosMuertos
fuente
No es lo que esperaba escuchar, pero agradezco la respuesta
Ross Allen
es el panel táctil de Elan. Literalmente me hace usar ctrl-alt-f1 / 2/3 para cambiar y volver a cambiar para descongelarlo. Una vez que lo desactivé, no hay problemas. Como sabes, puedes usarlo en ráfagas cortas y usar mi método mencionado anteriormente para salir del bloqueo. Espero que ayude.
ChangosMuertos
0

Los controladores que no responden bien a la suspensión son bastante comunes independientemente del sistema operativo. Me alegra que hayas encontrado una solución a través de la hibernación.

Dado que la suspensión no se apaga completamente y la hibernación sí, eso parece indicar que el conductor no responde bien a la "vida media" de la suspensión, pero es perfectamente capaz de aparecer durante un ciclo de encendido que es lo que proporciona la hibernación al despertar.

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

Elder Geek
fuente
Puede conectarse a las rutinas de activación para reiniciar el controlador tal vez ... Al igual que la forma en que se recarga el administrador de red. Solo que todavía no he descubierto cómo hacerlo. Lo tuve funcionando para reiniciar pulseaudio pero logré romperlo hace 2 días :(
WinEunuuchs2Unix
1
@ WinEunuuchs2Unix Me encantaría ver eso. envíame un ping si te das cuenta.
Élder Geek
cosa segura. Probablemente haré una de esas cosas de "responder su propia pregunta" en unos seis meses a este ritmo de 6 semanas.
WinEunuuchs2Unix
1
He publicado una respuesta, pero parece que puedo hacer ping a todos menos a usted (Elder Geek) por alguna extraña razón.
WinEunuuchs2Unix