El teclado y el trackpad no funcionan después de dormir

El teclado y el trackpad no funcionan después de dormir

Tengo una Dell Inspiron 5379 con el firmware más reciente y Ubuntu 20.04. Después de que la computadora portátil duerme, de manera intermitente, el teclado y el trackpad no funcionan. La pantalla táctil funciona, así que puedo reiniciar usando el teclado en pantalla. Después de reiniciar, el teclado y el panel táctil funcionan.

Después de buscar en Google, encontré esta sugerencia para editar /etc/default/grubcon esto GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.direct i8042.dumbkbd"deEl teclado de Ubuntu 17.04 no responde después de la suspensiónpero no tiene ningún efecto.

También he encontradoDell Inspiron 15-7568 Touchpad Move Freeze en Xenial 16.04pero no parece ser aplicable ya que no lo tengo synapseinstalado.

Actualizar: después de la instalación synaptics(y de confirmar que el trackpad lo está utilizando xinput list-props), el problema ahora afecta solo al teclado. El teclado todavía se gestiona a través de libinput.

Estoy algo convencido de que esto está relacionado con que el "modo tableta" esté habilitado en ciertas condiciones (https://www.dell.com/support/article/en-uk/sln305434/how-to-enable-or-disable-tablet-mode-on-your-notebook-in-windows-10?lang=en). Supongo que lo que necesito saber es cómo desactivarlo.

Posiblemente relacionado:https://bbs.archlinux.org/viewtopic.php?id=237782

Actualización 2: Intenté ejecutar xinput list-propsmientras el teclado no funcionaba, no hay información adicional:

vitor@vitor-Inspiron-5379:~$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen                          id=12   [slave  pointer  (2)]
⎜   ↳ DELL0804:00 06CB:7E7E Mouse               id=13   [slave  pointer  (2)]
⎜   ↳ DELL0804:00 06CB:7E7E Touchpad            id=14   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Sleep Button                              id=9    [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD: Integrate           id=10   [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD: Integrate           id=11   [slave  keyboard (3)]
    ↳ Intel Virtual Button driver               id=15   [slave  keyboard (3)]
    ↳ Intel HID events                          id=16   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=17   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=18   [slave  keyboard (3)]
# Device not working
vitor@vitor-Inspiron-5379:~$ xinput list-props 18
Device 'AT Translated Set 2 keyboard':
    Device Enabled (171):   1
    Coordinate Transformation Matrix (173): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Send Events Modes Available (293): 1, 0
    libinput Send Events Mode Enabled (294):    0, 0
    libinput Send Events Mode Enabled Default (295):    0, 0
    Device Node (296):  "/dev/input/event4"
    Device Product ID (297):    1, 1
vitor@vitor-Inspiron-5379:~$ 
# Device working (after reboot)
vitor@vitor-Inspiron-5379:~$ xinput list-props 18
Device 'AT Translated Set 2 keyboard':
    Device Enabled (171):   1
    Coordinate Transformation Matrix (173): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Send Events Modes Available (293): 1, 0
    libinput Send Events Mode Enabled (294):    0, 0
    libinput Send Events Mode Enabled Default (295):    0, 0
    Device Node (296):  "/dev/input/event4"
    Device Product ID (297):    1, 1
vitor@vitor-Inspiron-5379:~$ 

Actualización 3: Seguidoeste, encontró el evento apropiado (https://github.com/alesguzik/linux_detect_tablet_modetambién útil). Incluso desvincular al conductor no parece resolverlo tan bien.

Me pregunto si debería intentar escribir una extensión de GNOME para administrar el modo tableta.

Actualización 4: Si bien sigo apareciendo el evento del modo tableta cuando extiendo la computadora portátil al modo tableta, desvincular el controlador parece eliminar el problema al abrir la tapa. Aún no tengo una explicación para esto. Encontraré una manera de automatizar esto y, si puedo, intentaré identificar la causa raíz.

Respuesta1

Tengo el mismo problema muy similar en una Dell Inpiron 13 700. Estaba haciendo lo mismo, reiniciando la computadora portátil para que el mouse/teclado volviera a funcionar y esto me irritaba bastante. Pensé que girar la pantalla y forzarla al modo tableta y luego volver a la posición de "cuaderno" hace que todo vuelva a funcionar a la normalidad. No resuelve el problema, pero como solución alternativa, al menos no necesito reiniciar.

Respuesta2

Parece que algunas computadoras portátiles Dell Inspiron 2 en 1 informan que ingresan al modo "tableta" cuando están suspendidas. La biblioteca libinput bloquea el teclado y el panel táctil en respuesta. Cuando se activa, el hardware no envía un evento sobre cómo abandonar el modo tableta.

El comportamiento parece difícil de reproducir de forma fiable. Sin embargo, las siguientes soluciones parecen funcionar:

  1. Cierre y abra nuevamente la tapa por un momento. Sólo es necesario hacerlo una vez hasta el próximo reinicio.
  2. Gira la tapa al modo tableta y viceversa. Se puede hacer con anticipación, antes de poner la computadora portátil en suspensión y solo debe hacerse una vez hasta el reinicio.
  3. Vuelva a cargar el intel_vbtncontrolador modprobe -r intel_vbtn && modprobe intel_vbtn(se puede hacer manualmente o desde cron). Detectará el interruptor.
  4. Retraso en la carga del intel_vbtncontrolador al arrancar. Se puede hacer agregando rd.driver.blacklist=intel_vbtna la línea de comando del kernel de Linux. El controlador aún se cargaría pero más tarde durante el arranque.

información relacionada