触摸板问题:打字时光标跳跃(Ubuntu 14.04),syndaemon 没有帮助

触摸板问题:打字时光标跳跃(Ubuntu 14.04),syndaemon 没有帮助

我知道关于此问题还有其他疑问,但我找不到正确的方法来解决它。

触摸板在打字时仍能检测到我的手掌。这真的很烦人,尤其是因为它影响了我使用全新 Dell XPS Gold Edition 的效率。这是全新安装的 Ubuntu 14.04,我不想费力尝试脚本和其他东西,因为这些脚本和东西最终会破坏触摸板识别。

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

syndaemon -i 0.5 -d

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

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

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

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

答案1

我无法使用我的 XPS 13 和 Ubuntu 14.04 来找到这个答案。

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

sudo apt-get install gpointing-device-settings

然后运行

gpointing-device-settings

查看:启用手掌检测并移动范围:窄从一开始就降至约10%。

答案2

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

看来罪魁祸首是 Synaptics 驱动程序本身。只要驱动程序未打补丁,无论你使用什么前端或命令,它都无法工作。

感谢精彩的网页http://xps13-9333.appspot.com/#touchpad和所有者发送了一些电子邮件后,我终于设法修复了这个可怕的错误!

这就是整个过程的概要,请参阅上面的网页了解详细信息。

要做的是删除 Synaptics 驱动程序,然后下载上游驱动程序的源代码,对其进行修补以实现正确的手掌检测,然后使用正确的触摸板设置创建文件。以下步骤适用于我的 Dell XPS“黄金版”(xps-9333)和 Ubuntu 14.04。

1. 首先要检查的事项

由于缺乏libevdev-开发我的系统中没有这个软件包(我猜它没有安装在 Ubuntu 14.04 上?)。因此,首先,尝试安装这个软件包:

sudo apt-get install libevdev-dev

如果您的系统中还没有这个包,它应该安装 3 个包:libevdev-开发libevdev2{一个}, 和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

最后,你可以使用同步客户端为了指定参数 PalmMinZ 的最佳值(输入一个数字而不是“VALUE”,我建议 100,这对我来说很有效)。

synclient PalmMinZ=VALUE

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

我的 20-synaptics.conf 文件

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

答案3

以上所有答案都不适用于在 XPS12 上全新安装 Ubuntu 14.04.3,至少在我将 psmouse 模块列入黑名单之前是这样。以下说明基本上引用自这套针对 XPS13 机器的说明

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

 xinput 

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

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

如果列出的第三个项目的名称中含有 PS2 触摸板,则应通过添加以下行将 psmouse 模块列入黑名单/etc/modprobe.d/blacklist.conf

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

然后打电话

sudo update-initramfs -u

重新启动后, /Disable touchpad while typing中的选项按预期发挥作用。System SettingsMouse & Touchpad

答案4

greguti 提到的升级现已纳入 Linux 通用内核升级至 3.1.6+:请参阅http://xps13-9333.appspot.com/#touchpad

升级 Ubuntu 内核的一般说明可以在这里找到http://ubuntuhandbook.org/index.php/2014/08/install-upgrade-linux-kernel-3-16/。对于通用的 64 位系统,我已将它们复制如下:

cd /tmp/
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.16-utopic/linux-headers-3.16.0-031600-generic_3.16.0-031600.201408031935_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.16-utopic/linux-headers-3.16.0-031600_3.16.0-031600.201408031935_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.16-utopic/linux-image-3.16.0-031600-generic_3.16.0-031600.201408031935_amd64.deb
sudo dpkg -i linux-headers-3.16.0-*.deb linux-image-3.16.0-*.deb

然后重新启动。

重启电脑后,我按照greguit的建议修改了PalmMinZ参数,也是用了100。

synclient PalmMinZ=VALUE

我还使用 GUI 重新启用了触控板设置以在打字时禁用。

这样做之后,我只花了 10-15 分钟使用电脑,但到目前为止,整体体验好多了。

相关内容