ELAN 触摸板 (04F3:0401) 支持双指滚动

ELAN 触摸板 (04F3:0401) 支持双指滚动

我在新的 Asus X540L 上启用两指滚动时遇到问题。

sugarman@sugarman:~$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ELAN1000:00 04F3:0401                     id=10   [slave  pointer  (2)]

sugarman@sugarman:~$ cat /proc/bus/input/devices | grep ELAN
N: Name="ELAN1000:00 04F3:0401"
S: Sysfs=/devices/pci0000:00/INT3433:00/i2c-9/i2c-ELAN1000:00/0018:04F3:0401.0001/input/input6

sugarman@sugarman:~$ uname -a
Linux sugarman 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u1 (2016-09-03) x86_64 GNU/Linux

我有一个 ELAN 触摸板,并且使用 Debian。我按照此页面的说明进行操作:https://wiki.debian.org/SynapticsTouchpad

我将 /usr/share/X11/xorg.conf.d/50-synaptics.conf --> 复制到 /etc/X11/xorg.conf.d/synaptics.conf

我修改了该文件以满足我的需要,如下:

# 分配触摸板驱动程序的示例 xorg.conf.d 片段
# 所有触摸板。有关更多信息,请参阅 xorg.conf.d(5)
# 输入类。
# 不要编辑此文件,您的发行版可能会覆盖
# 更新时。将此文件复制(并重命名)到
# 首先是 /etc/X11/xorg.conf.d。
# 可以以以下形式添加其他选项
# 选项“选项名称”“值”
#
“输入类”部分
        标识符“触摸板包罗万象”
        驱动器“突触”
        MatchIs触摸板“打开”
# 建议在所有使用 evdev 的 Linux 系统上使用此选项,但不能
# 默认启用。详细信息请参见以下链接:
# http://who-t.blogspot.com/2010/11/how-to-ignore-configuration-errors.html
        MatchDevicePath“/dev/input/event*”
        选项“最小速度”“0.5”
        选项“最大速度”“1.0”
        选项“加速系数”“0.075”
        选项 "VertTwoFingerScroll" "1" # 多点触控
        选项 "HorizTwoFingerScroll" "1" # 多点触控
结束部分

“输入类”部分
        标识符“触摸板忽略重复项”
        MatchIs触摸板“打开”
        匹配操作系统“Linux”
        MatchDevicePath“/dev/input/mouse*”
        选项“忽略”“打开”
结束部分

# 此选项使右下角成为触控板上的右键
# 右侧和中间顶部区域为触控板上的右侧/中间按钮
# 带有顶部按钮区域。
# 此选项仅由触控板解释。
“输入类”部分
        标识符“默认触控板按钮”
        MatchDriver“突触”
        选项“SoftButtonAreas”“50% 0 82% 0 0 0 0 0”
        选项“辅助软按钮区域”“58% 0 0 15% 42% 58% 0 15%”
结束部分

# 此选项禁用 Apple 触摸板上的软件按钮。
# 此选项仅由触控板解释。
“输入类”部分
        标识符“禁用 Apple 触摸板上的触控板按钮”
        匹配产品“苹果|bcm5974”
        MatchDriver“突触”
        选项“软按钮区域”“0 0 0 0 0 0 0 0”
结束部分

根据这个页面:http://who-t.blogspot.ca/2010/11/how-to-ignore-configuration-errors.html,导致该问题的原因是设备加载了两次,一次使用 /dev/input/eventX 路径,另一次使用 /dev/input/mouseX 路径。

重新启动后,这些新配置仍然会导致驱动程序“ic2_hid”出现错误:

Sugarman@sugarman:~$ sudo cat /var/log/kern.log | grep 隐藏
9 月 18 日 10:27:28 Sugarman 内核:[ 0.773763] hidraw:原始 HID 事件驱动程序 (C) Jiri Kosina
9 月 18 日 10:27:28 Sugarman 内核:[7.930955] i2c_hid i2c-ELAN1000:00:i2c_hid_init_report 大小错误:653 / ret_size:7
9 月 18 日 10:27:28 Sugarman 内核:[7.935696] i2c_hid i2c-ELAN1000:00:i2c_hid_init_report 大小错误:131 / ret_size:7
9月18日10:27:28 Sugarman内核:[7.935941] hid-generic 0018:04F3:0401.0001:输入,hidraw0:HID v1.00鼠标[ELAN1000:00 04F3:0401]

即使安装了 xserver-xorg-input-synaptics 软件包(synaptics 驱动程序),我仍然收到这些错误。

Sugarman@sugarman:~$ synclient
找不到突触属性。没有加载 synaptics 驱动程序?
Sugarman@sugarman:~$ syndaemon
无法找到突触设备。

答案1

根据 Debian Wiki,您似乎使用的是 libinput 驱动程序而不是 synaptics 驱动程序,这就是该synclient命令失败的原因。根据 Debian Wiki 的建议:

您可以通过将 /usr/share/X11/xorg.conf.d/50-synaptics.conf 复制到 /etc/X11/xorg.conf.d 来使 synaptics 驱动程序优先于 libinput,从而使其优先于 libinput libinput 配置文件位于 /usr/share/X11/xorg.conf.d/90-libinput.conf。

制作副本,根据需要修改复制的文件,但一定要50-synaptics.conf在新目录中保持相同的名称(即 ),因为该编号是一种优先级编号。要在系统中找到正确的conf文件,请运行

find / -name '*.conf' |grep synaptics

例如,在我的电脑中,文件的名称是70-synaptics.conf50,而不是 50。

此外,为了确保 libinput 驱动程序不在游戏中,我使用以下操作:
我找到 libinput conf 文件:find / -name '*.conf' |grep libinput
我编辑此90-libinput.conf文件(您的 libinput.conf 可以有不同的编号)abd 我注释掉引用的部分触摸板以确保 libinput 不会处理触摸板:

#Section "InputClass"
#        Identifier "libinput touchpad catchall"
#        MatchIsTouchpad "on"
#        MatchDevicePath "/dev/input/event*"
#        Driver "libinput"
#EndSection

一旦 libinput 退出游戏并使用 synaptics 驱动程序,您必须能够使用 synclient。

答案2

不要复制任何配置文件,只需将其放入桌面环境的自动启动中即可:synclient VertTwoFingerScroll=1

相关内容