
我的 Elantech 觸控板有一個惱人的問題至少半年了。大多數時候它會隨機失去同步並被辨識為PS/2 Elantech 觸控板或者比亞迪觸控板。它因更新而異,但本質上這些錯誤仍然存在dmesg
:
psmouse serio1: Failed to enable mouse on isa0060/serio1
psmouse serio1: elantech: synaptics_send_cmd query 0x01 failed.
psmouse serio1: Failed to enable mouse on isa0060/serio1
input: PS/2 Generic Mouse as /devices/platform/i8042/serio1/input/input19
在正確檢測到觸控板的情況下,它仍然工作得很差,幸運的是多點觸控、點擊、兩指滾動,並且存在某種校準問題(只有觸控板的中心有響應,而其他區域忽略任何輸入)。dmesg
對於這個場景看起來像這樣:
psmouse serio1: elantech: assuming hardware version 4 (with firmware version 0x595f03)
psmouse serio1: elantech: Synaptics capabilities query result 0x10, 0x15, 0x0e.
psmouse serio1: elantech: Elan sample query result 04, 02, 86
input: ETPS/2 Elantech Touchpad as /devices/platform/i8042/serio1/input/input2
在系統正常運作期間,它隨機開始對我的輸入點擊和隨機方向移動做出隨機反應。
我現在使用 Arch Linux,但 Ubuntu 16.04 和 14.04 上也存在該問題。
從Arch Linux 維基頁面Lenovo Y700 有一條註釋,為了使觸控板工作pata_legacy
模組應該完全列入黑名單,所以我將其添加到我的內核引導程式配置中:
options: ... modprobe.blacklist=pata_legacy ...
lsmod
不顯示pata_legacy
已加載,因此黑名單有效。但由於觸控板問題仍然存在,這沒有任何幫助。
我正在使用libinput
並且有一段時間沒有更改我的配置(並且在觸控板感覺良好的時間範圍內它可以完美地工作):
Section "InputClass"
Identifier "libinput touchpad catchall"
MatchIsTouchpad "on"
MatchDevicePath "/dev/input/event*"
Driver "libinput"
Option "Tapping" "True"
Option "DisableWhileTyping" "True"
Option "NaturalScrolling" "True"
Option "MiddleEmulation" "True"
EndSection
我相信這個問題以某種方式與核心有關,但我不喜歡低級的東西,所以我無法讓它自己工作。
強烈歡迎任何幫助、文件參考、調試技巧等,因為我不介意自己修復它,但我不知道從哪裡開始(以及在哪裡找到)。
$ uname -r
4.10.13-1-ARCH
答案1
我有完全相同的煩人問題。因為我沒有找到任何解決方案,所以我使用這個簡單的 bash 腳本作為解決方案
#!/usr/bin/bash
while [[ $(dmesg | tail -n 3 | grep ETPS) == "" ]]
do
sudo modprobe --remove psmouse
sudo modprobe psmouse
sleep 3
done
notify-send "Touchback" "Your touchpad is back ready to use"
exit
當然,最好將您的sudoers
兩個命令配置為不要求輸入密碼。