Panel táctil reconocido como mouse de rueda genérico ImPS/2

Panel táctil reconocido como mouse de rueda genérico ImPS/2

Mi panel táctil está siendo reconocido como un mouse genérico y está creando muchos problemas con las cosas cotidianas. Probé varias distribuciones, incluidas Ubuntu (16.04, 16.10, 17.04), Arch y actualmente Manjaro.

No puedo hacer zoom y cuando voy a escribir algo, el más mínimo toque hará que el panel táctil reconozca un clic, desviando el foco de lo que estaba haciendo. En mi modelo anterior, podía desactivarlo configurando maxTapTime=0.

Estoy usando un Acer Aspire V5-573G. ¿Existe alguna forma de lograr que el sistema reconozca el panel táctil como un panel táctil y no como un mouse? Por lo que he leído, es posible que tenga que esperar a que el kernel agregue soporte. Si ese es el caso, ¿cómo lo fomento? ¿Puedo escribir mis propios controladores? Si es así, ¿alguien podría indicarme la dirección correcta? ¡Gracias de antemano!

Proporcioné algunos resultados, pero no estoy seguro de si son suficientes, así que avíseme si me falta algo.

uname -a

Linux brandyn-laptop 4.9.20-1-MANJARO #1 SMP PREEMPT Fri Mar 31 17:49:34 UTC 2017 x86_64 GNU/Linux

xinput

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ImPS/2 Generic Wheel Mouse                id=13   [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)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ Sleep Button                              id=10   [slave  keyboard (3)]
    ↳ HD WebCam                                 id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=12   [slave  keyboard (3)]
    ↳ Acer WMI hotkeys                          id=14   [slave  keyboard (3)]

lspci

00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 09)
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 09)
00:03.0 Audio device: Intel Corporation Haswell-ULT HD Audio Controller (rev 09)
00:14.0 USB controller: Intel Corporation 8 Series USB xHCI HC (rev 04)
00:16.0 Communication controller: Intel Corporation 8 Series HECI #0 (rev 04)
00:1b.0 Audio device: Intel Corporation 8 Series HD Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 1 (rev e4)
00:1c.2 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 3 (rev e4)
00:1c.3 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 4 (rev e4)
00:1c.4 PCI bridge: Intel Corporation 8 Series PCI Express Root Port 5 (rev e4)
00:1d.0 USB controller: Intel Corporation 8 Series USB EHCI #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation 8 Series LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 8 Series SATA Controller 1 [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 8 Series SMBus Controller (rev 04)
01:00.0 3D controller: NVIDIA Corporation GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] (rev a1)
04:00.0 Network controller: Qualcomm Atheros AR9462 Wireless Network Adapter (rev 01)
05:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTL8411B PCI Express Card Reader (rev 01)
05:00.1 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 14)

udevadm info -q path -n /dev/input/event16

/devices/platform/i8042/seriol/input/input9/event16

Respuesta1

Tiene un panel táctil conectado al puerto del mouse PS/2 (controlador Linux i8042, llamado así por el chip original), por lo que se detecta automáticamente como mouse genérico.

Intente utilizar el controlador Synaptics (paquetes xf86-input-synaptics, xserver-xorg-input-synapticsetc. según la distribución), como se recomienda, por ejemploaquí.

Busque /dev/input/by-path/e identifique el enlace simbólico que es similar a la ruta del dispositivo que acaba de encontrar y los enlaces a su actual /dev/input/eventXpara el panel táctil. No se garantiza que los números de los dispositivos de entrada sean estables entre arranques (aunque a menudo lo son), por lo que es mejor utilizar dicho enlace simbólico.

Cree un xorg.confarchivo (la ruta estándar es /etc/X11/xorg.conf) con la siguiente sección

Section "InputClass"
   Identifier "touchpad"
   Driver "synaptics"
   MatchIsTouchpad "1"
   MatchDevicePath "/dev/input/by-path/path_to_your_touchpad"
EndSection

Agregue Optionparámetros para configurarlo. Mire /var/log/Xorg.0.logdespués de reiniciar X o reiniciar para ver si todo funciona.

Lea la página de manual del controlador y busque en Google "controlador Synaptics de Linux", etc. para obtener más información.

Editar:

Si no hay ningún enlace simbólico /dev/input/by-pathen el número cambia al reiniciar, intente /dev/input/by-id. Si esto tampoco funciona, necesitas una udevregla. Hacer

udevadm info -a -p /devices/platform/i8042/seriol/input/...

con la ruta actual, esto recorrerá el árbol de rutas y mostrará los atributos que puede usar para identificarla. Cree un nuevo udevarchivo de reglas, en mi sistema sería algo así como /etc/udev/rules.d/70-acer-touchpad.rulesy su regla probablemente se verá así

ACTION=="add", SUBSYSTEMS=="serio", ATTRS{foo}=="foo", ATTRS{bar}="bar", SYMLINK+="input/by-id/acer-touchpad"

Los detalles dependen de su sistema y de los atributos que ve, y necesitarán ajustes hasta que funcione. Google "escribe la regla udev" para tutoriales, etc., y man udevadm.

Editar

Según la udevadmsalida,

looking at parent device '/devices/platform/i8042/serio1/input/input7':
  KERNELS=="input7"
  SUBSYSTEMS=="input"
  DRIVERS==""
  ATTRS{name}=="ImPS/2 Generic Wheel Mouse"
  ATTRS{phys}=="isa0060/serio1/input0"
  ATTRS{properties}=="1"
  ATTRS{uniq}==""

looking at parent device '/devices/platform/i8042/serio1':
  KERNELS=="serio1"
  SUBSYSTEMS=="serio"
  DRIVERS=="psmouse"
  ATTRS{bind_mode}=="auto"
  ATTRS{description}=="i8042 AUX port"
  ATTRS{firmware_id}==""
  ATTRS{protocol}=="ImPS/2"
  ATTRS{rate}=="100"
  ATTRS{resetafter}=="5"
  ATTRS{resolution}=="200"
  ATTRS{resync_time}=="0"

Yo lo intentaría ATTRS{phys}=="isa0060/serio1/input0"primero. Quizás necesites cambiar SUBSYSTEMS=="serio"a SUBSYSTEMS=="input"si no funciona.

información relacionada