触摸板被认定为 ImPS/2 通用滚轮鼠标

触摸板被认定为 ImPS/2 通用滚轮鼠标

我的触摸板被认为是通用鼠标,它在日常事物中产生了很多问题。我尝试过几个发行版,包括 Ubuntu(16.04、16.10、17.04)、Arch 和目前的 Manjaro。

我无法缩放,当我输入任何内容时,最轻微的触摸都会导致触摸板识别出点击,从而将注意力从我正在做的事情上转移开。在我以前的模型上,我可以通过设置来禁用它maxTapTime=0

我使用的是宏碁 Aspire V5-573G。有没有办法让系统将触摸板识别为触摸板而不是鼠标?根据我所读到的内容,我可能必须等待内核添加支持。如果是这样的话,我该如何鼓励呢?我是否可以编写自己的驱动程序,如果可以,有人可以指出我正确的方向吗?提前致谢!

我已经提供了一些输出,但我不确定这是否足够,所以如果我遗漏了任何内容,请告诉我。

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

答案1

您有一个连接到 PS/2 鼠标端口(Linux 驱动程序 i8042,以原始芯片命名)的触摸板,这就是它被自动检测为通用鼠标的原因。

尝试使用 synaptics 驱动程序(包等xf86-input-synapticsxserver-xorg-input-synaptics取决于发行版)驱动程序,如推荐的,例如这里

查看/dev/input/by-path/并识别与您刚刚找到的设备路径类似的符号链接,以及指向当前/dev/input/eventX触摸板的链接。输入设备的数字不能保证在启动过程中保持稳定(尽管通常是这样),因此最好使用这样的符号链接。

使用以下部分创建一个xorg.conf文件(标准路径是)/etc/X11/xorg.conf

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

添加Option参数进行配置。/var/log/Xorg.0.log重新启动 X 或重新启动后查看是否一切正常。

阅读驱动程序手册页并谷歌搜索“linux synaptics driver”等以获取更多信息。

编辑

/dev/input/by-path如果号码上没有符号链接在重新启动时确实发生变化,请尝试/dev/input/by-id。如果这也不起作用,您就需要制定udev规则。做

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

对于当前路径,这将沿着路径树向上走并显示可用于识别它的属性。创建一个新的udev规则文件,在我的系统上它会类似于/etc/udev/rules.d/70-acer-touchpad.rules,并且您的规则可能类似于

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

详细信息取决于您的系统和您看到的属性,并且需要调整直到它起作用。谷歌“编写 udev 规则”以获取教程等,以及man udevadm.

编辑

根据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"

我会ATTRS{phys}=="isa0060/serio1/input0"先尝试一下。如果不起作用,也许您需要更改SUBSYSTEMS=="serio"SUBSYSTEMS=="input"

相关内容