Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Oct 2009 04:38:09 -0400
From:      David Horn <dhorn2000@gmail.com>
To:        freebsd-current@freebsd.org
Subject:   synaptics touchpad + mouse taps = trouble
Message-ID:  <25ff90d60910010138l24e83470v390e8c0271f332f7@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
I currently have a laptop running FreeBSD 8/Stable RC1 r197621 (amd64)
that happens to have a synaptics touchpad.  On this particular
laptop(Inspiron 1520), the placement of the touchpad means that I will
inevitably accidentally hit it while typing, and I have found that I
always need to disable the "mouse taps" in order to have the touchpad
usable for me.

So, I figured, no big problem, I can figure out how to set the
preference using x11/gsynaptics and x11-drivers/xf86-input-synaptics
driver.
So, after finding the /etc/xorg.conf:     Option
"AutoAddDevices" "true" to disable hal input detection, Xorg's
synaptics input driver still refuses to attach to my synaptics device.

So, I take a look at dmesg, and notice that my touchpad is probed and
attached twice.  Once as psm0, and once as ums0.  I start off trying
to see if moused can talk to the mouse, and it does just fine with
psm0, but fails with ums0.   (Problem 1. Why does ums0 probe/attach
and not work with moused/xorg input mouse/xorg input synaptics ?)

usbconfig -u 0 -a 5 show_ifdrv
ugen0.5: <product 0x4503 Broadcom Corp> at usbus0, cfg=0 md=HOST
spd=FULL (12Mbps) pwr=ON
ugen0.5.0: ums0: <Broadcom Corp product 0x4503, class 0/0, rev
2.00/1.00, addr 5>

Is there a usb quirk mode I should be trying ?   Is there any
additional debug output that may help diagnose ?

I have not found much about this device, but Xorg and hal detect it as
a synaptics device under ubuntu 9.04(as Broadcom 4503)

Looking at mousedrv(4x) man page does not have anything useful on
mouse taps, so I start looking at psm(4) for some relief on disabling
synaptics mouse taps.  So, I start trying the instructions for
hw.psm.synaptics_support and via the wiki, and I find after much trial
and error that I can get a mostly usable configuration using:
sysctl.conf entries:
hw.psm.synaptics.vscroll_ver_area=-1
hw.psm.synaptics.directional_scrolls=0
hw.psm.tap_timeout=1
loader.conf entry:
hw.psm.synaptics_support="1"

Although the right mouse button behavior is still quirky compared to
default psm behavior (see PR:  kern/84411), but
hw.synaptics.directional_scrolls=0 makes it mostly tolerable.

So, I start thinking about the problem, and take a look at the
synaptics programming specs, and find that there is a command byte
that can be used to for disabling touchpad taps and gestures in
generic mouse mode.   I have submitted the patch to  GNATS under
kern/139272 for anyone interested in disabling mouse taps under psm
via tunable.

Once I can get ums0 to work with moused, then I can start looking into
xf86-input-synaptics and possibly hal config changes.

So, I have been having one of those days where nothing is ever simple
to debug.  I have found that the very common components (like a mouse)
can touch so many modules
(psm/ums/moused/usb2/hal/Xorg/Xorg-input-mouse/Xorg-input-synaptics),
that the potential failure points are many and varied.

Thanks in advance.

---Dave H



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?25ff90d60910010138l24e83470v390e8c0271f332f7>