Touchpad Reconhecido como ImPS / 2 Genérico Wheel Mouse

2

Meu touchpad está sendo reconhecido como um mouse genérico e está criando muitos problemas com coisas do dia-a-dia. Eu tentei várias distros, incluindo Ubuntu (16.04, 16.10, 17.04), Arch e atualmente Manjaro.

Não consigo aplicar zoom e quando vou digitar qualquer coisa, o menor toque resultará em um touchpad reconhecendo um clique, roubando o foco do que eu estava fazendo. No meu modelo anterior, eu poderia desabilitar isso, definindo maxTapTime=0 .

Estou usando um Acer Aspire V5-573G. Existe alguma maneira de fazer com que o sistema reconheça o touchpad como um touchpad e não como um mouse? Pelo que li, talvez tenha que esperar que o kernel adicione suporte. Se for esse o caso, como faço para incentivá-lo? É possível para mim escrever meus próprios drivers e, em caso afirmativo, alguém poderia me apontar na direção certa? Obrigado antecipadamente!

Eu forneci alguns resultados, mas não tenho certeza se isso é suficiente, então, por favor, deixe-me saber se estou perdendo alguma coisa.

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
    
por ReallyGoodPie 16.04.2017 / 15:25

1 resposta

1

Você tem um touchpad conectado à porta de mouse PS / 2 (driver Linux i8042, nomeado após o chip original), e é por isso que ele é detectado automaticamente como um mouse genérico.

Tente usar o driver do synaptics driver (packages xf86-input-synaptics , xserver-xorg-input-synaptics etc. dependendo da distribuição), como recomendado, por exemplo, aqui .

Procure em /dev/input/by-path/ e identifique o link simbólico que é semelhante ao caminho do dispositivo que você acabou de encontrar e vincula ao seu /dev/input/eventX atual para o touchpad. Os números Para dispositivos de entrada não é garantido para ser estável através de botas (embora eles são frequentemente), por isso é melhor usar um link simbólico.

Crie um arquivo xorg.conf (o caminho padrão é /etc/X11/xorg.conf ) com a seguinte seção

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

Adicione os parâmetros Option para configurá-lo. Veja /var/log/Xorg.0.log depois de reiniciar o X ou reinicializar para ver se tudo funciona.

Leia a página do manual do motorista e procure no Google por "linux synaptics driver" etc. para mais informações.

Editar :

Se não houver um link simbólico /dev/input/by-path no número alterado na reinicialização, tente /dev/input/by-id . Se isso não funcionar, você precisará da regra udev . Fazer

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

com o caminho atual, ele percorrerá a árvore de caminhos e mostrará os atributos que você pode usar para identificá-lo. Criar um novo arquivo de regra udev , no meu sistema seria algo como /etc/udev/rules.d/70-acer-touchpad.rules , e sua regra provavelmente será parecida com

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

Os detalhes dependem do seu sistema e dos atributos que você vê e precisarão de ajustes até que funcione. Google "write udev rule" para tutoriais etc. e man udevadm .

Editar

De acordo com a saída udevadm ,

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"

Eu tentaria ATTRS{phys}=="isa0060/serio1/input0" primeiro. Talvez você precise alterar SUBSYSTEMS=="serio" para SUBSYSTEMS=="input" se não funcionar.

    
por 17.04.2017 / 08:15