我该如何修复 xorg 中跳跃的触摸板响应?

我该如何修复 xorg 中跳跃的触摸板响应?

我新买了一台预装了 Ubuntu 的 ASUS 1015E-DS2,触摸板反应太差,如果不外接鼠标,机器根本无法使用。在小动作期间,它会随机加速和减速,尤其是在跨过界面元素时,这会触发 CPU 负载的瞬间峰值。实际上,一开始我以为这是“捕捉控制”功能的某种失败尝试。

我计划用另一个版本替换操作系统,但在进行任何操作之前,我想确定问题是否可以解决,因为否则我计划退回机器并获得退款。

完全关闭鼠标加速可以使问题变得不那么严重,但并不能完全消除它,而且它本身就是一个可用性问题。

答案1

我尝试了很多次调整加速度设置,认为这是问题所在——观察到的效果是,米奇的时间不一致或组合成单个事件,因此加速度层错误地将它们解释为受加速度影响的快速运动。我得到了好坏参半的结果,获得了半可用的行为,但事实证明这是解决问题的错误方向。

两个属性最终成为使触摸板可用的关键:Synaptics Noise Cancellation和和Synaptics Finger

在默认降噪级别 13 的情况下,将手指放在触摸板上不动会导致轻微的“指针布朗运动”;将级别调低至 0(作为实验)会使这种影响变得极端。另一方面,将其增加到 20 基本上消除了这种影响。它还消除了移动过程中的随机加速和减速,这似乎是由于噪声成分与实际运动相结合,导致产生的速度足够大于或小于实际运动的速度,从而影响了加速度。

另一个选项“手指”的低阈值和高阈值默认设置为 1。这在我使用过的其他触摸板上运行良好(也许它们忽略了它),但它似乎导致即使是最轻微的触摸也会被解释为触摸/动作,并且导致诸如精确定位后释放、点击和按下集成按钮等操作都会导致指针移动(有时是极端跳跃)。使用 40 和 50 的阈值(我在网上搜索解决方案时发现)导致触摸板完全无响应。10 和 20 的值似乎运行良好,并且还进一步改善了原始的跳跃问题。

我当前正在使用的(相关)选项:

Section "InputClass"
    Identifier "touchpad tweaked catchall"
    MatchIsTouched "on"
    Option "HorizHysteresis" "20"
    Option "VertHysteresis" "20"
    Option "FingerLow" "10"
    Option "FingerHigh" "20"
EndSection

我发布此信息是希望它能够帮助其他遇到此型号或其他笔记本电脑触摸板跳跃问题的人;我在寻找解决方案的过程中找到的其他信息似乎没有帮助,并没有解释什么有效或它如何影响症状。

请注意,上面的选项是xorg.conf形式上的,而本答案前面的“属性”的名称略有不同。这似乎是某种 xorg 疯狂行为,我真的不想知道。基本上,如果您使用该实用xinput程序在运行时调整选项,则使用属性名称xorg.conf,如果您将设置放在xorg.confxorg.conf.d目录中,则使用选项名称。

答案2

有些人报告了电源接地问题。(如果拔掉电源线没有帮助,那么问题就不在这里。)

来源:笔记本电脑触摸板通电时反应不好?
来源:https://www.reddit.com/r/pcmasterrace/comments/19cwtjq/track_pad_tracks_horrendously_only_when_plugged_in/

其他人报告了此解决方案:

echo N > /sys/module/drm_kms_helper/parameters/poll

来源:https://superuser.com/a/554343/52910

其他人则认为问题在于中断过多,解决方法如下:

# Find the problematic interrupt (with the highest number)
grep enabled /sys/firmware/acpi/interrupts/*

# Disable that one (replace XX below)
echo "disable" > /sys/firmware/acpi/interrupts/gpeXX

来源:https://web.archive.org/web/20150418015419/http://carlocapocasa.com/crushing-the-kworker-uprising-or-how-to-fix-your-linux-lenovo-ideapad-y560p/

答案3

最后,由于其他原因不得不拆开机器后,我发现在断开并重新连接其带状连接器后,触摸板似乎工作得更好,尽管仍然不如高质量型号。笔记本电脑现在坏了,所以我无法做进一步的调查,但似乎与连接不良有关的电气/信号问题可能导致了此类问题,我将其发布为答案,希望它对其他人有用。

答案4

对我来说,问题出现是因为我想用 替换驱动程序synapticslibinput所以我重新安装了,synaptics指针又变得稳定了。

 sudo apt install xserver-xorg-input-synaptics

如果你坚持像我一样使用libinput,我在

etc/X11/xorg.conf.d/70-libinput.conf

也许您可以从 /usr/share/X11/xorg.conf.d/90-libinput.conf 之类的地方复制

并编辑.conf文件,将驱动程序更改为libinput,例如

Section "InputClass"
        Identifier "touchpad catchall"
        Driver "libinput"
        MatchIsTouchpad "on"
        Option "Tapping" "on"
        Option "ClickMethod" "clickfinger"
        Option "NaturalScrolling" "true"
        #Option "TappingButtonMap" "1mr"    
        # his option is recommend on all Linux systems using evdev, but cannot be
        # enabled by default. See the following link for details:
        # http://who-t.blogspot.com/2010/11/how-to-ignore-configuration-errors.html
      MatchDevicePath "/dev/input/event*"
EndSection

相关内容