Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Aug 1999 14:36:00 -0700
From:      Ludwig Pummer <ludwigp@bigfoot.com>
To:        freebsd-mobile@freebsd.org
Cc:        steve@FreeBSD.org, yokota@freebsd.org
Subject:   Re: touchpad taps not registering as clicks - Fixed!
Message-ID:  <37B8843F.5A099F90@bigfoot.com>
References:  <37B728BA.5EC96988@bigfoot.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Ludwig Pummer wrote:
...
> I have an Asus F7400 and just finished setting up FreeBSD 3.2-R, X, KDE,
> and PAO on it (TI-1220 CardBus controller refused to let my PCMCIA
> ethernet card work before I installed PAO).
...
> It looks like touchpad taps are not being registered as clicks, but as
> no-activity packets:
> moused: assembled full packet (len 8) 87,0,0,0,0,0,0,7f
> 
> According to the Win98 driver, it's an Alps PS/2 touchpad.
> 
> Anyone have any possible solutions?

I figured it out. And here it is, for you folks and for the archives.

I looked through /usr/src/usr.sbin/moused/moused.c and
/usr/include/machine/machine.h and found that provisions had been made
to handle the Alps PS/2 Glidepoint's tap, which doesn't show up as a
button click but as a 'sync'. Unfortunately, in order for those
provisions to be used:
1) moused must be run at a higher driver level. I used 2. The driver
levels are only documented in the source code, however.
2) moused must recognize the mouse model as "Glidepoint". My touchpad
was recognized as "generic", as are most ps/2 mice, I believe. There was
no way to specify the mouse model on the moused command line, as the
command line lets you specify type, not model, and ps/2 connector mice
must always be set to a type of ps/2.

I made a one-line fix to moused.c so that it would recognize my mouse
model as a Glidepoint. The patch is below.

--- moused.c.orig       Mon Aug 16 10:54:57 1999
+++ moused.c    Mon Aug 16 14:16:17 1999
@@ -916,6 +916,12 @@
     rodent.hw.model = MOUSE_MODEL_GENERIC;
     ioctl(rodent.mfd, MOUSE_GETHWINFO, &rodent.hw);
 
+    /* kludge by ludwigp@bigfoot.com to correct Alps Glidepoint PS/2
not
+     * being detected and hence the special Alps TAP method not used.
For
+     * full functionality, moused needs to be called with
+     * "moused -l 2 -m 1=4 -p /dev/psm0". Using "-t auto" breaks it */
+    rodent.hw.model=MOUSE_MODEL_GLIDEPOINT;
+
     if (rodent.rtype != MOUSE_PROTO_UNKNOWN)
         bcopy(proto[rodent.rtype], cur_proto, sizeof(cur_proto));
     rodent.mode.protocol = MOUSE_PROTO_UNKNOWN;

I'm guessing that the ioctl call couldn't figure out my mouse model.

It's not a very elegant fix, but my taps now register as clicks, so it's
good enough for me!

--Ludwig Pummer <ludwigp@bigfoot.com>


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-mobile" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?37B8843F.5A099F90>