[ltp] Synaptics touchpad mostly-disappeared!
Ben Pearre
linux-thinkpad@linux-thinkpad.org
Fri, 5 Aug 2005 11:22:01 -0600
It looks like some other people have been having similar problems, but
I couldn't yet make anything work for me. I can get events with
synclient but not in X!
I am running Debian unstable on an R40. Until quite recently, the
touchpad was working fine. I did a big dist-upgrade (about a month's
worth of updates, including going to Xorg), and the touchpad no longer
works. Switching back to XFree86 doesn't fix anything. The clit
continues working as well as ever--it's my main pointing device, but I
use the touchpad for scrolling.
I was running linux-2.6.11.3 without Stephen Evanchik's patch, and
I've tried 2.6.10 and I'm now on 2.6.12.3 with the patch (thanks,
Stephen!). No change in behaviour so far...
>From dmesg:
Synaptics Touchpad, model: 1, fw: 5.9, id: 0x2c6ab1, caps: 0x884793/0x0
serio: Synaptics pass-through port at isa0060/serio1/input0
input: SynPS/2 Synaptics TouchPad on isa0060/serio1
Adding 982792k swap on /dev/hda3. Priority:-1 extents:1
EXT3 FS on hda2, internal journal
Real Time Clock Driver v1.12
IBM TrackPoint firmware: 0x0E
input: TrackPoint IBM TrackPoint on synaptics-pt/serio0
serio1? serio0 looks like the clit...
(0)% ll ../../../devices/platform/i8042/serio0
total 0
drwxr-xr-x 5 root root 0 2005-08-05 13:59 ./
drwxr-xr-x 5 root root 0 2005-08-05 13:02 ../
-rw-r--r-- 1 root root 4096 2005-08-05 13:59 bind_mode
lrwxrwxrwx 1 root root 0 2005-08-05 13:59 bus -> ../../../../bus/serio/
-r--r--r-- 1 root root 4096 2005-08-05 13:59 description
lrwxrwxrwx 1 root root 0 2005-08-05 13:59 driver -> ../../../../bus/serio/drivers/psmouse/
--w------- 1 root root 4096 2005-08-05 13:59 drvctl
drwxr-xr-x 2 root root 0 2005-08-05 13:02 id/
drwxr-xr-x 2 root root 0 2005-08-05 13:02 power/
-rw-r--r-- 1 root root 4096 2005-08-05 13:59 rate
-rw-r--r-- 1 root root 4096 2005-08-05 13:59 resetafter
-rw-r--r-- 1 root root 4096 2005-08-05 13:59 resolution
drwxr-xr-x 4 root root 0 2005-08-05 13:02 serio2/
(0)% ll /sys/devices/platform/i8042/serio1
total 0
drwxr-xr-x 4 root root 0 2005-08-05 13:02 ./
drwxr-xr-x 5 root root 0 2005-08-05 13:02 ../
-rw-r--r-- 1 root root 4096 2005-08-05 14:00 bind_mode
lrwxrwxrwx 1 root root 0 2005-08-05 14:00 bus -> ../../../../bus/serio/
-r--r--r-- 1 root root 4096 2005-08-05 14:00 description
lrwxrwxrwx 1 root root 0 2005-08-05 14:00 driver -> ../../../../bus/serio/drivers/atkbd/
--w------- 1 root root 4096 2005-08-05 14:00 drvctl
-rw-r--r-- 1 root root 4096 2005-08-05 14:00 extra
drwxr-xr-x 2 root root 0 2005-08-05 13:02 id/
drwxr-xr-x 2 root root 0 2005-08-05 13:02 power/
-rw-r--r-- 1 root root 4096 2005-08-05 14:00 scroll
-rw-r--r-- 1 root root 4096 2005-08-05 14:00 set
-rw-r--r-- 1 root root 4096 2005-08-05 14:00 softraw
-rw-r--r-- 1 root root 4096 2005-08-05 14:00 softrepeat
serio1 is driven by atkbd. What has that to do with a touchpad?
>From /var/log/XFree86.0.log:
(II) LoadModule: "synaptics"
(II) Loading /usr/X11R6/lib/modules/input/synaptics_drv.o
(II) Module synaptics: vendor="The XFree86 Project"
compiled for 4.2.0, module version = 1.0.0
Module class: XFree86 XInput Driver
ABI class: XFree86 XInput driver, version 0.3
Now here's the catch:
"Synclient -m 10" or whatever displays correct touchpad events! lsof
doesn't indicate that it's speaking to any device files but the tty...
However, xev doesn't see any touchpad events. I've used ksynaptic to
turn on the pad, and played around with synclient:
(0)% synclient -h
Hardware properties:
Can't detect hardware properties.
This is normal if you are running linux kernel 2.6.
Check the kernel log for touchpad hardware information.
(0)% synclient -l
Parameter settings:
LeftEdge = 1400
RightEdge = 4700
TopEdge = 1400
BottomEdge = 5600
FingerLow = 38
FingerHigh = 43
MaxTapTime = 0
MaxTapMove = 0
MaxDoubleTapTime = 0
ClickTime = 0
FastTaps = 0
EmulateMidButtonTime = 75
VertScrollDelta = 166
HorizScrollDelta = 167
MinSpeed = 0
MaxSpeed = 0
AccelFactor = 0
EdgeMotionMinZ = 30
EdgeMotionMaxZ = 160
EdgeMotionMinSpeed = 0
EdgeMotionMaxSpeed = 0
EdgeMotionUseAlways = 1
UpDownScrolling = 1
LeftRightScrolling = 0
UpDownRepeat = 1
LeftRightRepeat = 1
ScrollButtonRepeat = 2
TouchpadOff = 3
GuestMouseOff = 0
LockedDrags = 0
RTCornerButton = 1
RBCornerButton = 2
LTCornerButton = 3
LBCornerButton = 1
TapButton1 = 206158430
TapButton2 = 1070017282
TapButton3 = 3
CircularScrolling = 1
CircScrollDelta = 0.001
CircScrollTrigger = 3
CircularPad = 0
PalmDetect = 1078132736
PalmMinWidth = 10
PalmMinZ = 200
CoastingSpeed = 0
Everything seems to be in order.
My XF86Config is the same that worked before. I have
Load "synaptics" # touchpad driver
...and later:
"InputDevice"
Identifier "TouchPad"
Driver "synaptics"
Option "Device" "/dev/input/mouse0"
Option "SendCoreEvents" "true"
Option "Protocol" "auto-dev"
Option "Buttons" "7"
Option "SHMConfig" "true"
[and all the other Options].
But now /dev/input/mouse0 does not list any events when I cat it,
although mouse1 gets clit events quite happily. I have also tried
/dev/input/mice, /dev/psaux, higher /dev/input/mousex, and a couple of
others.
Given that the dist-upgrade seems to have messed with the synaptics
settings, I expect that it is a library, rather than the kernel,
that's responsible for the device not working anymore. The most
obvious culprit (scapegoat?) is Xorg... maybe Debian's XFree86
package didn't correctly reinstall intself? But if there's a kernel
fix for this (I know interfaces change), then I'd love a pointer to
the information.
What should the device be? Not /dev/input/mouse0, apparently...
Many thanks for reading my longwinded post!
--
Ben Pearre http://hebb.mit.edu/~ben PGP: CFDA6CDA
Free music at http://hebb.mit.edu/FreeMusic
Don't let Bush read your email! http://www.gnupg.org