![触摸板问题:打字时光标跳跃(Ubuntu 14.04),syndaemon 没有帮助](https://linux22.com/image/854129/%E8%A7%A6%E6%91%B8%E6%9D%BF%E9%97%AE%E9%A2%98%EF%BC%9A%E6%89%93%E5%AD%97%E6%97%B6%E5%85%89%E6%A0%87%E8%B7%B3%E8%B7%83%EF%BC%88Ubuntu%2014.04%EF%BC%89%EF%BC%8Csyndaemon%20%E6%B2%A1%E6%9C%89%E5%B8%AE%E5%8A%A9.png)
我知道关于此问题还有其他疑问,但我找不到正确的方法来解决它。
触摸板在打字时仍能检测到我的手掌。这真的很烦人,尤其是因为它影响了我使用全新 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,该文件应如下所示:
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 Settings
Mouse & 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 分钟使用电脑,但到目前为止,整体体验好多了。