编辑:由于我不知道问题来自哪个组件(内核、xorg 服务器、固件、其他?),我添加了命令xinput --list
和/proc/bus/input/devices
文件中的信息。因此我还编辑了列表标签。我相信它不是来自驱动程序,因为测试不同的 xorg 驱动程序(、、synaptics
)并不能解决问题,而且问题可以直接在输出中看到,根据其手册页,“显示了所提供的信息由内核”。但也许我错了?libinput
mtrack
evtest
华硕触摸板问题:在 > 1 秒后进行新接触时,接触会导致轻微延迟 + 意外的双击事件
当“鼠标和触摸板”中启用“轻按以单击”功能时,每次我在闲置超过 1 秒后开始使用触摸板时,触摸板对我的第一次移动反应很慢(有一个子菜单) -第二次滞后,在此期间指针似乎卡住了)加上它将新的接触解释为双击,这样当指针最终开始移动时,我最终会创建一个选择框或在开始移动指针时拖动指针下方的任何内容。
另一方面,如果我不断使用触摸板,且静止时间不超过 1 秒,则一切正常:触摸板对所有命令立即做出反应,并且不会产生意外的双击。
我尝试调整明显的参数,例如灵敏度,但显然问题不是来自那里。
我的问题是:
- 这是一个错误(即这是一个软件问题)吗?如果是的话,它可能处于哪个级别(驱动程序、内核、固件)?
- 它是否重要(特别是,它是否可以以某种方式与某些电源管理设置相关,使触摸板在 1 秒后进入睡眠状态)?
- 接下来我可以做什么来跟踪问题?
- 有人能解决这个问题吗?
语境
我有一台华硕 P5440,我正在尝试在其上安装 Linux。
我测试了以下发行版,问题都是一样的:
- Linux Mint 19.1 - Cinnamon(内核 4.15.0-43-generic)
- 乌班图18.10
- Manjaro 18.0 - 肉桂 4.0.1(内核:4.19.4-1-MANJARO)
- Manjaro 侏儒 18.0.2
- Manjaro-i3(Manjaro Linux 18.0 Illyria,内核:4.19.2-1-MANJARO)
我的问题似乎与这个问题相同:华硕 Zenbook UX430UAR 触摸板休眠(似乎不是 USB 自动挂起问题)但没有找到答案。
我尝试使用另一个问题: https://askubuntu.com/questions/1009812/asus-touchpad-not-working-properly,但最终问题似乎是不同的。
另一方面,我在追踪问题根源方面取得了一些进展,但现在我陷入了困境。
技术信息
evtest
命令的输出
在 Linux Mint Cinnamon 中工作并使用evtest
Linux Mint 论坛中建议的命令文章,我已获得以下内容:
触摸板事件没有问题
对于没有问题的触摸板接触(即,不断使用触摸板时),输出evtest
具有以下结构:
Event: time 1547667771.554622, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 349
Event: time 1547667771.554622, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 480
Event: time 1547667771.554622, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 315
Event: time 1547667771.554622, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1547667771.554622, type 1 (EV_KEY), code 325 (BTN_TOOL_FINGER), value 1
Event: time 1547667771.554622, type 3 (EV_ABS), code 0 (ABS_X), value 480
Event: time 1547667771.554622, type 3 (EV_ABS), code 1 (ABS_Y), value 315
Event: time 1547667771.554622, type 4 (EV_MSC), code 5 (MSC_TIMESTAMP), value 0
Event: time 1547667771.554622, -------------- SYN_REPORT ------------
[...]
Event: time 1547667771.850532, type 4 (EV_MSC), code 5 (MSC_TIMESTAMP), value 307500
Event: time 1547667771.850532, -------------- SYN_REPORT ------------
Event: time 1547667771.857897, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1547667771.857897, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1547667771.857897, type 1 (EV_KEY), code 325 (BTN_TOOL_FINGER), value 0
Event: time 1547667771.857897, type 4 (EV_MSC), code 5 (MSC_TIMESTAMP), value 315000
Event: time 1547667771.857897, -------------- SYN_REPORT ------------
其中[...]
表示类似内容的一长串行。
这里需要注意的是带有 和BTN_TOUCH
的行BTN_TOOL_FINGER
:与开头的值 1 相关联,它们表示已建立联系,与结尾的值 0 相关联,它们表示联系已中断(当我停止使用触摸板)。
存在问题的触摸板事件
现在,在出现问题的情况下(即当我在超过 1 秒后接触触摸板时),输出evtest
如下:
Event: time 1547667802.178649, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 353
Event: time 1547667802.178649, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 642
Event: time 1547667802.178649, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 203
Event: time 1547667802.178649, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1547667802.178649, type 1 (EV_KEY), code 325 (BTN_TOOL_FINGER), value 1
Event: time 1547667802.178649, type 3 (EV_ABS), code 0 (ABS_X), value 642
Event: time 1547667802.178649, type 3 (EV_ABS), code 1 (ABS_Y), value 203
Event: time 1547667802.178649, type 4 (EV_MSC), code 5 (MSC_TIMESTAMP), value 0
Event: time 1547667802.178649, -------------- SYN_REPORT ------------
Event: time 1547667802.179359, type 4 (EV_MSC), code 5 (MSC_TIMESTAMP), value 7500
Event: time 1547667802.179359, -------------- SYN_REPORT ------------
Event: time 1547667802.184480, type 4 (EV_MSC), code 5 (MSC_TIMESTAMP), value 15000
Event: time 1547667802.184480, -------------- SYN_REPORT ------------
Event: time 1547667802.191692, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
> Event: time 1547667802.191692, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
> Event: time 1547667802.191692, type 1 (EV_KEY), code 325 (BTN_TOOL_FINGER), value 0
Event: time 1547667802.191692, type 4 (EV_MSC), code 5 (MSC_TIMESTAMP), value 22500
Event: time 1547667802.191692, -------------- SYN_REPORT ------------
Event: time 1547667802.221584, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 354
Event: time 1547667802.221584, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 525
Event: time 1547667802.221584, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 275
> Event: time 1547667802.221584, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
> Event: time 1547667802.221584, type 1 (EV_KEY), code 325 (BTN_TOOL_FINGER), value 1
Event: time 1547667802.221584, type 3 (EV_ABS), code 0 (ABS_X), value 525
Event: time 1547667802.221584, type 3 (EV_ABS), code 1 (ABS_Y), value 275
Event: time 1547667802.221584, type 4 (EV_MSC), code 5 (MSC_TIMESTAMP), value 30000
Event: time 1547667802.221584, -------------- SYN_REPORT ------------
[...]
Event: time 1547667802.661690, type 4 (EV_MSC), code 5 (MSC_TIMESTAMP), value 472500
Event: time 1547667802.661690, -------------- SYN_REPORT ------------
Event: time 1547667802.669047, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1547667802.669047, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1547667802.669047, type 1 (EV_KEY), code 325 (BTN_TOOL_FINGER), value 0
Event: time 1547667802.669047, type 4 (EV_MSC), code 5 (MSC_TIMESTAMP), value 480000
Event: time 1547667802.669047, -------------- SYN_REPORT ------------
注意 2 个内部事件(每行 2 行),距离初始接触不远,并且我已>
在相应行的开头用符号表示:它们对应于接触中断(值 0),然后对应于接触重新建立(值1)。正是这两个内部事件触发了初始双击并导致了问题。
xinput
来自命令和/proc/bus/input/devices
文件的信息
xinput --list
这是触摸板的输出:
$ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ FTE1200:00 0B05:0701 Touchpad id=11 [slave pointer (2)]
...
这是命令的输出xinput --list-props
:
Device 'FTE1200:00 0B05:0701 Touchpad':
Device Enabled (143): 1
Coordinate Transformation Matrix (145): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Tapping Enabled (281): 1
libinput Tapping Enabled Default (282): 0
libinput Tapping Drag Enabled (283): 1
libinput Tapping Drag Enabled Default (284): 1
libinput Tapping Drag Lock Enabled (285): 0
libinput Tapping Drag Lock Enabled Default (286): 0
libinput Tapping Button Mapping Enabled (287): 1, 0
libinput Tapping Button Mapping Default (288): 1, 0
libinput Natural Scrolling Enabled (289): 0
libinput Natural Scrolling Enabled Default (290): 0
libinput Disable While Typing Enabled (291): 1
libinput Disable While Typing Enabled Default (292): 1
libinput Scroll Methods Available (293): 1, 1, 0
libinput Scroll Method Enabled (294): 1, 0, 0
libinput Scroll Method Enabled Default (295): 1, 0, 0
libinput Click Methods Available (296): 1, 1
libinput Click Method Enabled (297): 1, 0
libinput Click Method Enabled Default (298): 1, 0
libinput Middle Emulation Enabled (299): 0
libinput Middle Emulation Enabled Default (300): 0
libinput Accel Speed (301): -0.064777
libinput Accel Speed Default (302): 0.000000
libinput Left Handed Enabled (303): 0
libinput Left Handed Enabled Default (304): 0
libinput Send Events Modes Available (266): 1, 1
libinput Send Events Mode Enabled (267): 0, 0
libinput Send Events Mode Enabled Default (268): 0, 0
Device Node (269): "/dev/input/event7"
Device Product ID (270): 2821, 1793
libinput Drag Lock Buttons (305): <no items>
libinput Horizontal Scroll Enabled (306): 0
以下是来自 的信息/proc
:
$ cat /proc/bus/input/devices
...
I: Bus=0018 Vendor=0b05 Product=0701 Version=0100
N: Name="FTE1200:00 0B05:0701 Touchpad"
P: Phys=i2c-FTE1200:00
S: Sysfs=/devices/pci0000:00/0000:00:15.1/i2c_designware.1/i2c-8/i2c-FTE1200:00/0018:0B05:0701.0001/input/input7
U: Uniq=
H: Handlers=mouse0 event6
B: PROP=5
B: EV=1b
B: KEY=e520 10000 0 0 0 0
B: ABS=260800000000003
B: MSC=20
...
附加测试
我还尝试将驱动程序从更改libinput
为使用页面中建议的synaptics
命令sudo apt install xserver-xorg-input-synaptics
Linux Mint 19.1 Cinnamon 发行说明但问题仍然存在。我尝试更改evdev
同一页面中所示的驱动程序,但安装后我只得到libinput
命令的结果grep -i "Using input driver" /var/log/Xorg.0.log
;libinput
使用命令删除sudo apt remove xserver-xorg-input-libinput
让我使用无响应的触摸板。我也测试了驱动程序mtrack
,但问题仍然存在。