当前位置: 首页>>技术教程>>正文


触摸板问题:打字时光标跳动(Ubuntu 14.04),syndaemon 无济于事

问题描述

我知道关于这个问题还有其他问题,但我找不到正确的调整来解决它。

触摸板在打字时仍能检测到我的手掌。这真的很烦人,尤其是因为它破坏了我在全新戴尔 XPS 黄金版上的工作效率。这是一个全新的 Ubuntu 14.04 安装,我不想乱尝试脚本和最终会破坏触摸板识别的东西。

我尝试使用 syndaemon,因为它看起来是解决此错误的最佳方法:

syndaemon -i 0.5 -d

当我在终端上尝试时,只要我不退出会话,它似乎就可以工作。

但是,如果我将命令放在我的 start-up 程序实用程序上,然后重新启动,光标总是在一两分钟后冻结。所以我必须使用我的键盘取消选中命令,然后我又回到了这个非常烦人的手掌检测东西。有什么解决办法吗?

关于我的系统的一些信息:

greguti@greguti-XPS13-9333:~$ xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SYNAPTICS Synaptics Large Touch Screen    id=9    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=12   [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)]
    ↳ Power Button                              id=8    [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD                      id=10   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=13   [slave  keyboard (3)]
greguti@greguti-XPS13-9333:~$ xinput list-props "SynPS/2 Synaptics TouchPad" | grep -i finger
    Synaptics Finger (288): 25, 30, 0
    Synaptics Two-Finger Pressure (294):    282
    Synaptics Two-Finger Width (295):   7
    Synaptics Two-Finger Scrolling (298):   1, 1

最佳思路

我的 XPS 13 和 Ubuntu 14.04 无法遵循这个答案。

但是找到了一个快速解决方案来在打字时禁用触摸板:

sudo apt-get install gpointing-device-settings

然后运行

gpointing-device-settings

检查:启用手掌检测和移动范围:从开始缩小到大约 10%。

次佳思路

回答我自己的问题,因为我想我终于找到了解决方案。

似乎罪魁祸首是 Synaptics 驱动程序本身。只要未修补驱动程序,您使用的任何前端或命令都将不起作用。

感谢楼主的精彩网页http://xps13-9333.appspot.com/#touchpad和一些e-mails,我终于设法修复了这个可怕的错误!

所以这里是一个简单的过程,请参阅上面的网页了解详细信息。

要做的事情是摆脱 Synaptics 驱动程序,然后下载上游驱动程序的源代码,对其进行修补以进行正确的手掌检测,然后为触摸板创建具有正确设置的文件。以下步骤适用于装有 Ubuntu 14.04 的 Dell XPS “Gold Edition” (xps-9333)。

1. 首先检查的事项

由于我的系统中缺少 libevdev-dev 包(我猜它没有与 Ubuntu 14.04 一起安装?),我在此过程中遇到了麻烦。所以首先,尝试安装这个包:

sudo apt-get install libevdev-dev

如果您的系统上还没有它,它应该安装 3 个软件包:libevdev-dev、libevdev2{a} 和 libjs-jquery{a}

另一件事是安装 GIT 包,以便允许从 GIT 服务器下载上游 Synaptics 驱动程序的源代码。

sudo apt-get install git

一旦这些软件包在您的系统上,您就可以按照这些命令进行操作。

2. 摆脱实际的 SYNAPTICS 驱动程序并安装上游驱动程序

在终端中输入以下命令(按回车并检查每个命令后的输出):

sudo aptitude purge xserver-xorg-input-synaptics

sudo aptitude build-dep xserver-xorg-input-synaptics

下一个命令使用 GIT。如果您是第一次使用它,它会要求您提供邮件地址和昵称以完成该过程(即下载驱动程序的源代码)。您可以在终端中执行此操作,这是一个非常简单的过程。命令的输出告诉你要输入什么,你只需要按照说明进行操作。我之前从未使用过 GIT,我可以很容易地处理这一步。

sudo git clone git://anongit.freedesktop.org/xorg/driver/xf86-input-synaptics

现在您进入下载源代码的文件夹:

cd xf86-input-synaptics

现在您下载新驱动程序的补丁程序,此补丁程序将通过启用手掌检测和触摸板上的手指宽度来修复驱动程序。

wget -q -O - http://xps13-9333.appspot.com/root/0001-Don-t-use-finger-width-for-the-palm-detection.patch | git am

现在,从修补的源代码构建新的驱动程序(在每一行后输入 Enter,每个命令都会产生相当多的输出):

./autogen.sh --prefix=/usr
make
sudo make install

您的新 Synaptics 驱动程序和允许手掌检测的补丁现已安装在您的系统上,但您仍需要指定允许它的设置。

3. 创建和编辑 20-SYNAPTICS-CONF 文件

现在对于最后一部分,创建一个包含触摸板设置的文件,每次启动系统时都会读取该文件。

首先,您创建正确的文件夹:

mkdir -p /etc/X11/xorg.conf.d/

然后下载之前提到的网页所有者提供的文件,并将其复制到刚刚创建的新文件夹中:

sudo wget -q -O /etc/X11/xorg.conf.d/20-synaptics.conf http://xps13-9333.appspot.com/root/etc/X11/xorg.conf.d/20-synaptics.conf

最后,您可以使用 synclient 来指定参数 PalmMinZ 的最佳值(输入一个数字而不是 “VALUE”,我建议 100,这对我来说非常有用)。

synclient PalmMinZ=VALUE

在此过程结束时,您应该在 /etc/X11/xorg.conf.d 中拥有新文件 20-synaptics.conf,该文件应如下所示:

4.不要忘记重新启动:)

第三种思路

这里没有一个答案适用于在 XPS12 上全新安装 Ubuntu 14.04.3,至少在我将 psmouse 模块列入黑名单之前是这样。以下说明实质上引用自 this set of instructions for an XPS13 machine

检查您的触摸板是否仅使用 I2C 总线,而不是 ps2 模式。启动终端并输入

 xinput 

虚拟核心指针应该只有两项:

 Virtual core XTEST pointer
 DLL0665:01 06CB:76AD UNKNOWN 

如果它列出了名称中带有 PS2 触摸板的第三个项目,您应该通过将这些行添加到 /etc/modprobe.d/blacklist.conf 来将 psmouse 模块列入黑名单:

# remove SynPS/2 Synaptics Touchpad because we want the mouse to work over IC2b
blacklist psmouse

然后打电话

sudo update-initramfs -u

重新启动后,System Settings /Mouse & Touchpad 中的选项 Disable touchpad while typing 按预期工作。

第四种思路

如果您将 syndaemon 添加到您的启动应用程序中,您还需要取消选中鼠标中的“键入时禁用”。触摸板设置。如果您不这样做,这两种机制会干扰并导致触摸板完全停止工作,如您所描述的。这适用于库存 14.04(联想 T410 笔记本电脑),无需升级驱动程序。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/12503.html,未经允许,请勿转载。