Welcome to Deadman.org.

Debian
Creative Commons License

Synaptics TouchPad and Linux 2.6 Goodness
Sunday Jan 18 1:10pm 2004
by Glenn

I use a Dell Latitude C400 running Debian Unstable. When using the Linux 2.4 kernel, the Synaptics TouchPad (very common on laptops these days) has "just worked" in XFree86 by simply setting Protocol to "auto" and Device to "/dev/psaux". But after I upgraded to Linux 2.6.1 last week, the touchpad stopped working. Or, more accurately, the touchpad created erratic pointer movement, and the tapping features stopped working completely.

Some Googling turned up an article at KernelTrap.org that recaps a very interesting discussion between Linus and Vojtech Pavlik on the Linux Kernel Mailing List this past November about The Mouse in 2.6. It turns out that the 2.4 kernel performs absolutely no mouse initialization, while the 2.6 kernel performs quite a bit. Pavlik emphasizes that the mouse initialization in 2.6 makes things better in most cases, but the discussion makes clear that there are a few cases when it just doesn't work. And to make matters worse in those cases, there's currently no way in 2.6 to change the kernel's decisions, because, according to Linus, the new input-mode driver in 2.6 doesn't allow the user to send information back to the mouse like the old psaux driver allowed. But there's a way to get around all this: Passing psmouse_noext=1 to the kernel at boot will bring back the old 2.4 behavior of no mouse initialization. After reading the discussion, I thought that there was a good chance that I had found the fix, or at least a workaround.

But, alas, psmouse_noext=1 didn't change anything for me one way or the other. But I still learned a lot from the LKML discussion, including some interesting information about Linus' philosophy about how things should work in Linux, so I highly recommend it.

Some more Googling turned up the Synaptics TouchPad driver for XFree86. According to the driver's FAQ, it works with the 2.6 kernel (2.4 too) and facilitates lots of advanced touchpad features including:

  • Movement with adjustable, non-linear acceleration and speed.
  • Button events through short touching of the touchpad.
  • Double-Button events through double short touching of the touchpad.
  • Dragging through short touching and holding down the finger on the touchpad.
  • Middle and right button events on the upper and lower corner of the touchpad.
  • Vertical scrolling (button four and five events) through moving the finger on the right side of the touchpad.
  • Horizontal scrolling (button six and seven events) through moving the finger on the lower side of the touchpad.
  • Multifinger taps: two finger for middle button and three finger for right button events. (Needs hardware support. Not all models implement this feature.)
  • many more.

So, I decided to give this new driver a try to find out if it would clear up the problem and get the touchpad working again. The answer is yes, it works wonderfully! The driver compiled easily and the INSTALL file that comes with the source explains everything you need to know to install the driver including how to modify your XF86Config config file. The README file explains all of the options available for making use of the advanced Synaptics features.

So grab a copy of the driver and have fun! By the way, thanks very much to Deadman for letting me use his forum!

Home

© 2010 Sam Rowe. All rights reserved.
RSS headlines