分页: 1 / 1

Dell笔记本XPS M1530触摸板失效问题完美解决方法,附自制手册

发表于 : 2008-11-06 10:19
cliffzhou
这是我参考下面这篇Ubuntu官方wiki中关于触摸板的问题翻译总结而来,文章是一个个字自己打的,所有的设置和过程全部实践过没有错误。希望对广大笔记本用户有用。
原wiki地址:
https://wiki.ubuntu.com/InstallingUbuntuOnADellXPSM1530
对于Dell的其他型号应该也是一样的,可以完全照搬。
其他品牌笔记本我不清楚,不打保票。关于触摸板参数配置,Dell的触摸板可能和其他品牌的有区别,不推荐其他品牌全部套用,关键是那些 “<merge key”后面的选项中“将SHMConfig设为true”这一行必须要有。

另将文章排版制作了一个2页的手册,方便阅读,有odt和pdf版。

PS:下一步我准备解决XPS M1530指纹识别器的问题,希望最终效果达到指纹识别能进对系统登录和权限提升时密码框两者进行支持。
另外,8.10下笔记本的wifi无线上网经常性掉线问题也会找时间来解决。到时候如果这两件事都有成果了再发上来。

以下为正文:
完美解决Dell XPS M1530触摸板在Ubuntu 8.10中失控问题

由于Ubuntu 8.10改变了触摸板的驱动方式,而且从8.04开始就有的触摸板关盖后失效问题,所以Dell笔记本的触摸板在Ubuntu默认安装下一直很有问题。一般存在光标乱飘,胡乱点开窗口与程序,在输入框内随即出现字母等问题。所有这些问题按照以下方法可以完全解决,并且还能启用Gsynaptics来调整触摸板控制选项:
一、配置触摸板参数
1.Ubuntu 8.10中新的Xserver改成了通过HAL来修改设置,而之前都是的xorg.conf文件来修改。为了修改触摸板配置需要在HAL新建一个fdi文件
gksudo gedit /etc/hal/fdi/policy/xps-touchpad.fdi
2.再将下面的代码完全放进去,并保存
<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
<device>
<match key="input.x11_driver" string="synaptics">
<merge key="input.x11_options.LeftEdge" type="string">120</merge>
<merge key="input.x11_options.RightEdge" type="string">830</merge>
<merge key="input.x11_options.TopEdge" type="string">120</merge>
<merge key="input.x11_options.BottomEdge" type="string">650</merge>
<merge key="input.x11_options.FingerLow" type="string">14</merge>
<merge key="input.x11_options.FingerHigh" type="string">15</merge>
<merge key="input.x11_options.MaxTapTime" type="string">180</merge>
<merge key="input.x11_options.MaxTapMove" type="string">110</merge>
<merge key="input.x11_options.ClickTime" type="string">0</merge>
<merge key="input.x11_options.EmulateMidButtonTime" type="string">75</merge>
<merge key="input.x11_options.VertScrollDelta" type="string">10</merge>
<merge key="input.x11_options.HorizScrollDelta" type="string">0</merge>
<merge key="input.x11_options.MinSpeed" type="string">0.45</merge>
<merge key="input.x11_options.MaxSpeed" type="string">0.95</merge>
<merge key="input.x11_options.AccelFactor" type="string">0.06</merge>
<merge key="input.x11_options.EdgeMotionMinSpeed" type="string">200</merge>
<merge key="input.x11_options.EdgeMotionMaxSpeed" type="string">200</merge>
<merge key="input.x11_options.UpDownScrolling" type="string">1</merge>
<merge key="input.x11_options.CircularScrolling" type="string">0</merge>
<merge key="input.x11_options.SHMConfig" type="string">true</merge>
</match>
</device>
</deviceinfo>
3.然后重启下hal
sudo /etc/init.d/hal restart
4.最后重启一下Xserver(通过同时按键 Ctrl+ALT+Backspace)。
二、添加系统对触摸板支持
通过前面对触摸板参数的配置后,还不能激活触摸板,也不能启动Gsynaptics设置。还需要修改Grub设置,以使Ubuntu 8.10支持Dell的触摸板。
1.首先编辑/boot/grub/menu.lst
gksu gedit /boot/grub/menu.lst

2.在其中你需要的每一个内核版本的启动项后加一条 i8042.nomux=1。例如:
title Ubuntu 8.10, kernel 2.6.27-8-generic
uuid f8aefb46-d3fb-4425-9ea2-017073e2d87c
kernel /boot/vmlinuz-2.6.27-8-generic root=UUID=f8aefb46-d3fb-4425-9ea2-017073e2d87c ro locale=zh_CN quiet splash
initrd /boot/initrd.img-2.6.27-8-generic
quiet
将其kernel行最后加上 i8042.nomux=1即可,最后kernel行应形如:
kernel /boot/vmlinuz-2.6.27-8-generic root=UUID=f8aefb46-d3fb-4425-9ea2-017073e2d87c ro locale=zh_CN quiet splash i8042.nomux=1
3.更新一下这个修改过的Grub
sudo update-grub
4.这样改过之后,重启系统,触摸板应该就是没有问题了。而且,还能支持Dell的边界滚动条功能。
三、更多设置与支持
1.需要提供更多的触摸板控制选项,需要安装Gsynaptics:
sudo apt-get install gsynaptics
装好后,就可以在菜单“系统->首选项->触摸板”开启设置了。
2.要确保Dell的 XPS M1530的BIOS版本为A08以上,最好是最新的A09。可以去Dell官方网站下载最新的BIOS文件,在Windows Vista下进行BIOS升级。
如果没有安装Windows,可以考虑在Ubuntu中使用下面方法进行升级。依次执行
wget -q -O - http://linux.dell.com/repo/firmware/bootstrap.cgi > bootstrap.sh
sudo bash bootstrap.sh
sudo aptitude install firmware-addon-dell
sudo aptitude install $(sudo bootstrap_firmware -a)
sudo update_firmware
如果最后这个命令返回的信息说找到新的BIOS并可以升级,就可以执行
sudo update_firmware –yes
当这个命令执行完毕,为了让BIOS升级完成,需要从 “系统->关机...”,选择“重启”。当Ubuntu关闭后,屏幕会变黑1-2分钟。电脑会自己重启并更新完成。
更新完BIOS之后,你就可以继续修改 menu.lst。

Re: Dell笔记本XPS M1530触摸板失效问题完美解决方法,附自制手册

发表于 : 2008-11-14 4:14
cliffzhou
本来这个帖子是我的求助贴,不过一直没人帮忙呢。
只好自己看了一些英文帖子和wiki,终于解决了。

把顶楼改成了解决方法帖。我自己先顶一下,希望多点人看到。

PS:关于插入usb鼠标就自动禁用触摸板的功能貌似Gsynaptics不能实现,用命令脚本实现的方法论坛内有人发过,需要的可以搜搜。

Re: Dell笔记本XPS M1530触摸板失效问题完美解决方法,附自制手册

发表于 : 2008-11-14 5:52
cliffzhou
刚找了下,附上快捷键开关触摸板的方法。已经自己试过了,可以使用,很方便:

使用快捷键来启动/禁用Synaptics触摸板

您有可能想要启用或者禁用触摸板,从而在您使用USB或者其他鼠标的时候不致因触摸板的缘故干扰您打字。请使用如下步骤:

步骤 1

先确认触摸板能够使用。按照顶楼的设置,应该是没有问题了。

步骤 2

接下来,我们会创建三个文件:一个bash脚本来启用触摸板,一个来禁用,以及一个python脚本来使用组合键启用或者禁用。在终端中cd到/usr/local/bin下,新建一个文件:

cd /usr/local/bin
sudo gedit tpoff

将下列代码粘贴到文件中,保存并关闭。

#!/bin/bash
#

synclient touchpadoff=1

然后,再新建一个文件:

sudo gedit tpon

粘贴下列代码,保存并关闭。

#!/bin/bash
#

synclient touchpadoff=0

再新建一个文件:

sudo gedit touchpad.py

粘贴下列代码,保存并关闭。

#!/usr/bin/python
import os
import string


def ReadFile():
myfile = open('/tmp/synclient.tmp', 'rb')
for line in myfile:
TestString(line)
myfile.close()

def TestString(string):
for word in string.split():
if word == "TouchpadOff":
setting = string.split()
ChangeState(setting[2])


def ChangeState(current):
if current == "0":
os.system("synclient touchpadoff=1")
else:
os.system("synclient touchpadoff=0")
os.system("rm /tmp/synclient.tmp")

def Main():
ReadFile()
os.system("synclient -l > /tmp/synclient.tmp")
Main()

最后,为这三个文件设置访问权限:

sudo chmod 777 tpon tpoff touchpad.py

步骤 3

接下来,编辑您的sudo用户文件,以允许您在无须输入密码的情况下运行那两个脚本。

sudo visudo

加入以下行:

{user} ALL = NOPASSWD: /usr/local/bin/touchpad.py

注意:{user}代表您的用户名。

保存(在nano中,键入CTRL+o),文件名要保存为/etc/sudoers

步骤 4 接下来,安装xbindkeys和设置程序xbindkeys-config

sudo apt-get install xbindkeys xbindkeys-config

安装完成后,请把这两个程序都打开:

xbindkeys

xbindkeys-config

编辑您的文件来定义您想要的快捷键。例如,要使用<Ctrl><F5>来启用/禁用触摸板,在Edit下面填入以下内容:

Name: Touchpad On/Off Key: Control + F5 | m:0x4 + c:71 Action: /usr/local/bin/touchpad.py

然后点击apply,save,exit

这样就完成了,重启xbindkeys:

xbindkeys

此时,您可能需要重新起动X。

请记住,在每次启动X的时候您都需要再次运行xbindkeys来启用快捷键。请到“系统>首选项>会话>启动程序”中添加。

Re: Dell笔记本XPS M1530触摸板失效问题完美解决方法,附自制手册

发表于 : 2008-11-16 4:21
cliffzhou
已将这些内容写入wiki。发现这篇wiki已经好久都没人更新过了的:
Synaptics触摸板指南

Re: Dell笔记本XPS M1530触摸板失效问题完美解决方法,附自制手册

发表于 : 2011-04-22 15:02
guiwen1158
:em11