Meu touchpad está sendo reconhecido como um mouse genérico e está criando muitos problemas apenas 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 fará com que o touchpad reconheça um clique, roubando o foco do que eu estava fazendo. No meu modelo anterior, eu poderia desativar isso configurando 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 o kernel adicionar suporte. Se for esse o caso, como posso encorajá-lo? É possível escrever meus próprios drivers e, em caso afirmativo, alguém poderia me indicar a direção certa? Desde já, obrigado!
Forneci alguns resultados, mas não tenho certeza se isso é suficiente, então, por favor, deixe-me saber se estiver faltando 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
Responder1
Você tem um touchpad conectado à porta do mouse PS/2 (driver Linux i8042, em homenagem ao chip original), e é por isso que ele é detectado automaticamente como um mouse genérico.
Tente usar o driver synaptics (pacotes xf86-input-synaptics
, xserver-xorg-input-synaptics
etc. dependendo da distribuição), conforme recomendado, por exemploaqui.
Procure /dev/input/by-path/
e identifique o link simbólico que é semelhante ao caminho do dispositivo que você acabou de encontrar e os links para o seu atual /dev/input/eventX
para o touchpad. Não é garantido que os números dos dispositivos de entrada sejam estáveis durante as inicializações (embora muitas vezes sejam), então é melhor usar esse link simbólico.
Faça um xorg.conf
arquivo (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 Option
parâmetros para configurá-lo. Observe /var/log/Xorg.0.log
depois de reiniciar o X ou reiniciar para ver se tudo funciona.
Leia a página de manual do driver e pesquise no Google por "driver sináptico do Linux" etc.
Editar:
Se não houver nenhum link simbólico /dev/input/by-path
no número que muda na reinicialização, tente /dev/input/by-id
. Se isso também não funcionar, você precisa de uma udev
regra. Fazer
udevadm info -a -p /devices/platform/i8042/seriol/input/...
com o caminho atual, isso subirá na árvore de caminhos e mostrará atributos que você pode usar para identificá-lo. Faça um novo udev
arquivo de regras, 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 "escrever regra do udev" para tutoriais, etc., e man udevadm
.
Editar
De acordo com a udevadm
saída,
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 mudar SUBSYSTEMS=="serio"
para SUBSYSTEMS=="input"
se não funcionar.