Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
HOWTO: Synaptics Touchpad w/ GPM/2.6/framebuffer
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Documentation, Tips & Tricks
View previous topic :: View next topic  
Author Message
aroben
n00b
n00b


Joined: 10 Oct 2003
Posts: 33

PostPosted: Sat Jan 17, 2004 7:42 am    Post subject: HOWTO: Synaptics Touchpad w/ GPM/2.6/framebuffer Reply with quote

I've been experimenting with console mode on my new laptop, and wanted to get my Synaptics touchpad working with Links in graphical mode on SVGAlib. Unfortunately, GPM 1.20.1 has trouble with Synaptics mice under kernel 2.6. Here's what I did to get it working:

0. Make sure you have "Event interface" compiled for your kernel, either builtin or as a module. In menuconfig this is at
Code:
Device Drivers > Input device support > Event interface

To find if it is compiled as a module, do:
Code:
modprobe evdev


1. Make sure your Synaptics touchpad is functioning:
Code:
cat /proc/bus/input/devices

This should show a Synaptics pad -- take note of the "Handlers" line

2. Unpack the GPM sources:
Code:
tar xvfj /usr/portage/distfiles/gpm-1.20.1.tar.bz2


3. Make a patches directory:
Code:
cd gpm-1.20.1
mkdir patches


4. Unpack the Gentoo-supplied patches into the patches directory:
Code:
cd patches
tar xvfj /usr/portage/distfiles/gpm-1.20.1-patches.tar.bz2


5. Download patches 01 through 23 from http://www.geocities.com/dt_or/gpm/patches/ into the patches directory

6. Change back into the gpm-1.20.1 directory and apply all the downloaded patches, plus Gentoo patches 1-4, 6, and 8 (the others fail)
Code:
cd ..
for patch in $(ls patches/*.gz); do gzcat $patch | patch -p1; done
bzcat patches/01_all_info.patch.bz2 | patch -p1
bzcat patches/02_all_OPEN_MAX.patch.bz2 | patch -p1
bzcat patches/03_all_DESTDIR.patch.bz2 | patch -p1
bzcat patches/04_all_root.patch.bz2 | patch -p1
bzcat patches/06_all_gawk.patch.bz2 | patch -p1
bzcat patches/08_all_nodebug.patch.bz2 | patch -p1


7. Run autoconf:
Code:
autoconf


8. Run configure:
Code:
./configure --sysconfdir=/etc/gpm


9. Compile and install:
Code:
make

sudo make install


10. Edit /etc/conf.d/gpm:
Code:
MOUSEDEV=/dev/input/event0
MOUSE=evdev

event0 should be replaced with what you saw under "Handlers" in step 1

11. Run GPM:
Code:
/etc/init.d/gpm restart


12. You should now be able to move a cursor on your console. You can also fire up Links and see if it worked:
Code:
links -g fbcon www.gentoo.org


I haven't yet been able to get tap-to-click and scrolling to work. If anyone has any hints, please share them here!

-Adam


Last edited by aroben on Fri May 21, 2004 6:23 am; edited 3 times in total
Back to top
View user's profile Send private message
dtor
Guru
Guru


Joined: 19 Jan 2004
Posts: 461
Location: Indiana, USA

PostPosted: Mon Jan 19, 2004 7:07 am    Post subject: Re: HOWTO: Synaptics Touchpad w/ GPM/2.6/framebuffer Reply with quote

aroben wrote:

8. Fix the Makefile:
Code:
mv src/Makefile src/Makefile.old
sed -e 's/@EVDEV_SRCS@/evdev.c/g' src/Makefile.old > src/Makefile



Just do "autoconf" before "./configure" and it should generate proper Makefile automatically

aroben wrote:

I haven't yet been able to get tap-to-click and scrolling to work. If anyone has any hints, please share them here!


There is no support for scrolling in evdev protocol not immediate plans to implement it but tapping works fine for me in Midnight Commander.

Dmitry
Back to top
View user's profile Send private message
aroben
n00b
n00b


Joined: 10 Oct 2003
Posts: 33

PostPosted: Mon Jan 19, 2004 7:20 am    Post subject: Reply with quote

Figures the guy who wrote the patches would know a better way to do this. :-) I've updated my original post to reflect that.
Glad to see I was able to get you to submit your first post, though. Thanks for the great patches, Dmitry!

-Adam
Back to top
View user's profile Send private message
Smoka
n00b
n00b


Joined: 12 Feb 2004
Posts: 4

PostPosted: Tue Feb 17, 2004 12:08 am    Post subject: Reply with quote

Vanilla Kernel 2.6.2 has Synaptics support by adding that to your
kernel-boot-line in grub : psmouse.proto=imps

# gpm -v
gpm 1.20.1 (X-Mas), Decembre 2002
Back to top
View user's profile Send private message
dtor
Guru
Guru


Joined: 19 Jan 2004
Posts: 461
Location: Indiana, USA

PostPosted: Tue Feb 17, 2004 1:22 am    Post subject: Reply with quote

Smoka wrote:
Vanilla Kernel 2.6.2 has Synaptics support by adding that to your
kernel-boot-line in grub : psmouse.proto=imps


No, it kills native Synaptics support and forces the touchpad to work in PS/2 emulation mode (since the option limits available
protocols to bare PS/2 and ImPS/2).

So no multi-finger nor corner tapping (and probably no scrilling either) for you! :P

Dmitry
Back to top
View user's profile Send private message
lostinlinux
Guru
Guru


Joined: 05 Oct 2002
Posts: 341

PostPosted: Tue Feb 17, 2004 3:07 am    Post subject: Reply with quote

I run the command /cat/proc/bus/input/devices and the synaptic handler isn't listed, anyone have any clue what I did wrong?
_________________
So many questions so little time....
Back to top
View user's profile Send private message
dhurt
Apprentice
Apprentice


Joined: 14 May 2003
Posts: 278
Location: Davis, CA

PostPosted: Sat May 08, 2004 7:15 pm    Post subject: Reply with quote

Just a couple comments, and then a question about an error that I am recieving:

For step 6, I had to change the command to:

Code:

[11:36:46][Sat May 08][Laptop][root@speaker]
[/usr/src/gpm/gpm-1.20.1] > for patch in $(ls patches/*.gz); do gzcat $patch | patch -p1; done


To launch links in the console I had to run the following command:
Code:

$ links -g www.gentoo.org -driver fb


After installing I am getting an error in the console when I try and move the mouse. The error is:
Code:

**err [gpm.c(357)]: Error in read()ing first: Illegal seek.


The output of /proc/bus/input/devices looks like this:
Code:

[~] $ cat /proc/bus/input/devices
I: Bus=0011 Vendor=0002 Product=0007 Version=0000
N: Name="SynPS/2 Synaptics TouchPad"
P: Phys=isa0060/serio1/input0
H: Handlers=mouse0
B: EV=b
B: KEY=6420 0 70000 0 0 0 0 0 0 0 0
B: ABS=11000003


/etc/conf.d/gpm looks like this:
Code:

# Config file for /etc/init.d/gpm

# Please uncomment the type of mouse you have and the appropriate MOUSEDEV entry
MOUSEDEV=/dev/input/mouse0
MOUSE=evdev


The results of patching the files:
Code:

[11:36:06][Sat May 08][Laptop][root@speaker]
[/usr/src/gpm/gpm-1.20.1] > for patch in $(ls patches/*.gz); do gzcat $patch | patch -p1; done
patching file src/console.c
patching file src/gpm.c
patching file src/gpn.c
patching file src/headers/console.h
patching file src/headers/gpmInt.h
patching file src/headers/message.h
patching file src/lib/liblow.c
patching file src/Makefile.in
patching file src/mice.c
patching file src/report.c
patching file src/special.c
patching file src/startup.c
patching file src/twiddler.c
patching file src/gpm.c
patching file src/gpn.c
patching file src/headers/gpmInt.h
patching file src/startup.c
patching file src/client.c
patching file src/gpm.c
patching file src/headers/client.h
patching file src/headers/gpmInt.h
patching file src/Makefile.in
patching file src/gpm.c
patching file src/headers/gpmInt.h
patching file src/headers/optparser.h
patching file src/Makefile.in
patching file src/mice.c
patching file src/optparser.c
patching file src/prog/mouse-test.c
patching file src/gpm.c
patching file src/gpn.c
patching file src/headers/gpmInt.h
patching file src/headers/synaptics.h
patching file src/mice.c
patching file src/prog/mouse-test.c
patching file src/server_tools.c
patching file src/startup.c
patching file src/synaptics.c
patching file src/gpm.c
patching file src/gpn.c
patching file src/headers/gpmInt.h
patching file src/mice.c
patching file src/gpm.c
patching file configure.in
patching file src/evdev.c
patching file src/headers/optparser.h
patching file src/Makefile.in
patching file src/mice.c
patching file src/optparser.c
patching file src/gpm.c
patching file src/headers/gpmInt.h
patching file src/evdev.c
patching file src/evdev.c
patching file src/evdev.c
patching file src/evdev.c
patching file configure.in
patching file src/gpm.c
patching file src/prog/mouse-test.c
patching file src/gpm.c
patching file src/gpm.c
patching file src/synaptics.c
patching file src/evdev.c
patching file src/gpm.c
patching file src/gpn.c
patching file src/headers/gpmInt.h
patching file src/headers/message.h
patching file src/server_tools.c
patching file src/startup.c
patching file src/headers/message.h
patching file src/optparser.c
patching file src/evdev.c
patching file src/headers/input-defines.h
patching file configure.in
patching file src/client.c
patching file src/console.c
patching file src/gpm.c
patching file src/gpn.c
patching file src/headers/console.h
patching file src/headers/selection.h
patching file src/lib/tools.c
patching file src/Makefile.in
patching file src/selection.c
patching file src/startup.c
patching file src/tools.c
patching file src/lib/liblow.c


Contents of the patch directory:
Code:

[/usr/src/gpm/gpm-1.20.1/patches] > ls
01_all_info.patch.bz2
02_all_OPEN_MAX.patch.bz2
03_all_DESTDIR.patch.bz2
04_all_root.patch.bz2
06_all_gawk.patch.bz2
08_all_nodebug.patch.bz2
CVS
Patch_Manifest
done
gpm-1.20.1-001-separate-console-code.patch.gz
gpm-1.20.1-002-repeater.patch.gz
gpm-1.20.1-003-separate-client-code.patch.gz
gpm-1.20.1-004-optparser.patch.gz
gpm-1.20.1-005-more-than-2-mouses.patch.gz
gpm-1.20.1-006-absolute-is-device-property.patch.gz
gpm-1.20.1-007-remove-global-state-structure.patch.gz
gpm-1.20.1-008-evdev.patch.gz
gpm-1.20.1-009-better-button-multiplexing.patch.gz
gpm-1.20.1-010-evdev-syn-touch-detect.patch.gz
gpm-1.20.1-011-evdev-fix-absolute-mode.patch.gz
gpm-1.20.1-012-evdev-fix-tap-time.patch.gz
gpm-1.20.1-013-evdev-use-ioctls.patch.gz
gpm-1.20.1-014-sticky-selection-fix.patch.gz
gpm-1.20.1-015-older-gcc-compile.patch.gz
gpm-1.20.1-016-margins.patch.gz
gpm-1.20.1-017-three-button-mode.patch.gz
gpm-1.20.1-018-synaptics-compile-warning.patch.gz
gpm-1.20.1-019-tap-and-drag.patch.gz
gpm-1.20.1-020-optparser-crash.patch.gz
gpm-1.20.1-021-evdev-2.6-t6-update.patch.gz
gpm-1.20.1-022-console-selection-split.patch.gz
gpm-1.20.1-023-libgpm-memory-leak.patch.gz


Thanks for any suggestions.
_________________
"And isn't sanity really just a one-trick pony, anyway? I mean, all you get is one trick, rational thinking, but when you're good and crazy, ooh ooh ooh, the sky's the limit!" -- The Tick
Back to top
View user's profile Send private message
dtor
Guru
Guru


Joined: 19 Jan 2004
Posts: 461
Location: Indiana, USA

PostPosted: Sun May 09, 2004 6:25 am    Post subject: Reply with quote

You need to change /dev/input/mouse0 to /dev/input/eventX where X is most likely 1 but check your /proc/bus/input/devices
_________________
Dmitry
Back to top
View user's profile Send private message
dhurt
Apprentice
Apprentice


Joined: 14 May 2003
Posts: 278
Location: Davis, CA

PostPosted: Sun May 09, 2004 6:53 am    Post subject: Reply with quote

What would I be looking for?

I posted the output of /proc/bus/input/devices and I see nothing talking about events. Here it is again:

Code:

[~] $ cat /proc/bus/input/devices
I: Bus=0011 Vendor=0002 Product=0007 Version=0000
N: Name="SynPS/2 Synaptics TouchPad"
P: Phys=isa0060/serio1/input0
H: Handlers=mouse0
B: EV=b
B: KEY=6420 0 70000 0 0 0 0 0 0 0 0
B: ABS=11000003

I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
H: Handlers=kbd
B: EV=120003
B: KEY=4 2000000 2b803878 f840d001 f2ffffdf ffefffff ffffffff fffffffe
B: LED=7


Do I have something configured wrong? I have no device "event0" or "event1" in /dev/input/. The only contents are:
Code:

$ ls /dev/input
mice mouse0

_________________
"And isn't sanity really just a one-trick pony, anyway? I mean, all you get is one trick, rational thinking, but when you're good and crazy, ooh ooh ooh, the sky's the limit!" -- The Tick
Back to top
View user's profile Send private message
dtor
Guru
Guru


Joined: 19 Jan 2004
Posts: 461
Location: Indiana, USA

PostPosted: Sun May 09, 2004 2:19 pm    Post subject: Reply with quote

Ok, so you do not have evdev compiled or loaded. Try "modprobe evdev" and if it does not work then you need to enable Device Drivers ---> Input device support ---> Event interface, recompile and load the module (or reboot if you choose to build it in the kernrl).

Good luck!
_________________
Dmitry
Back to top
View user's profile Send private message
Ronald Dehuysser
n00b
n00b


Joined: 18 Nov 2003
Posts: 26

PostPosted: Sat May 15, 2004 2:49 pm    Post subject: Touchpad working fine in 2.6.2, not in 2.6.5-r1 Reply with quote

Hi there,

This one I can't solve. I just compiled the new kernel 2.6.5-r1 and I can't get my touchpad to work. It worked fine in 2.6.2 however.

When I run
Code:
cat /proc/bus/input/devices

the Touchpad is only listed in the 2.6.2 kernel, not in the 2.6.5-r1. I don't think I compiled in something special in the 2.6.2 kernel (lost my .configure file), only ps/2 support.

Any suggestions?
Cheers,
Ronald
Back to top
View user's profile Send private message
Rafje
Tux's lil' helper
Tux's lil' helper


Joined: 19 May 2004
Posts: 109
Location: .be

PostPosted: Thu May 20, 2004 6:41 pm    Post subject: Re: Touchpad working fine in 2.6.2, not in 2.6.5-r1 Reply with quote

Ronald Dehuysser wrote:

When I run
Code:
cat /proc/bus/input/devices

the Touchpad is only listed in the 2.6.2 kernel, not in the 2.6.5-r1. I don't think I compiled in something special in the 2.6.2 kernel


As the post just before yours suggests, try compiling evdev in the kernel. I run 2.6.5-r1 as well, I compiled evdev as a module, and it did the trick.

Cheers
Back to top
View user's profile Send private message
Ronald Dehuysser
n00b
n00b


Joined: 18 Nov 2003
Posts: 26

PostPosted: Sat May 22, 2004 5:05 pm    Post subject: Bedankt voor het antwoord! Reply with quote

Tried it, but it didn't work out...

Really strange: I've tried all 2.6 kernels now and they all don't find my synaptics touchpad. I also emerged the synaptics driver, no luck.

What I don't understand is that it even doesn't work in 2.6.1, where in the 2.6.2 kernel it does work. Did they backport this or something? I guess not... So what did I forget to check during make menuconfig? I even tried to compile everything in with the word mouse ...

The problem is that I now need IPSec, otherwise I would just stick to my 2.6.2. with working mouse :)

Rafje, bedankt voor het antwoord!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Documentation, Tips & Tricks All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum