Friday, September 30, 2011

Gateway NV75S02u Touchpad + Ubuntu Natty

Ubuntu Natty (2.6.38-11-generic) doesn't seem to embrace the ELAN Smart Pad on the Gateway NV75S02u. This can be confirmed:

xinput list

Under "Virtual core pointer", it lists a "PS/2 wheel mouse" and no touchpad.

After much searching, I found a fix. I don't know who to attribute it to or how I'd ever find it again, but it worked like a charm so I'm going to reproduce it and give credit to anyone who speaks up.

The original

Step 1

IMPORTANT: BACK UP THE EXISTING MODULE FIRST! You can revert to the .backup copy if things go wrong.

sudo cp /lib/modules/`uname -r`/kernel/drivers/input/mouse/psmouse.ko /lib/modules/`uname -r`/kernel/drivers/input/mouse/psmouse.ko.backup

Step 2

Get the kernel source and headers for your installed kernel along with some prerequisites:

sudo apt-get install linux-source linux-headers-`uname -r` build-essential libncurses5 libncurses5-dev kernel-package fakeroot

Step 3
Now extract the kernel sources to a folder named src in your home directory, where VERSION is the version of your kernel sources. If you aren't sure, just do a ls /usr/src/linux-source*.bz2 to find it:

mkdir ~/src
cd ~/src
tar jxvf /usr/src/linux-source-VERSION.tar.bz2
cd linux-source-VERSION

Then copy your config file in and make oldconfig:

cp /boot/config-`uname -r` .config
make oldconfig

Step 4
Make sure that the elantech option is on:

grep -i elantech .config

It should return this if it is set:

If it is not set it will return:

If the elantech option is not set, run make menuconfig and navigate to Device Drivers->Input device support->Mice and press space on the Elantech PS/2 protocol extension so that it has an asterisk like this:[*]. Then press the right arrow and enter repeatedly to back out of the menus, and then answer YES to save your config.

Step 5
Get and apply the patches:

wget -O 01elantech_2.6.38.patch
patch -p1 < 01elantech_2.6.38.patch

Step 6
Next, build the module:

make -C /usr/src/linux-headers-`uname -r` SUBDIRS=`pwd` drivers/input/mouse/psmouse.ko

Step 7
Try the new module to see if it works:

sudo modprobe -r psmouse
sudo insmod drivers/input/mouse/psmouse.ko

If it doesn't work, DO NOT continue to step 8. You can reload the psmouse module and your touchpad will function again:

sudo modprobe -r psmouse
sudo modprobe psmouse

There are no permanent changes to your system until step 8 below.

Step 8
Note: This step will make a persistent change to your system.

If the patched module worked, you can move it into its place in /lib/modules/ if you want to keep using it:

sudo cp drivers/input/mouse/psmouse.ko /lib/modules/`uname -r`/kernel/drivers/input/mouse/psmouse.ko

It'd be a good idea to try this copy of the module to make sure it works:

sudo modprobe -r psmouse
sudo modprobe psmouse

If for some reason your touchpad will not work after following these directions, move the backup back into place and you should be fine:

sudo cp /lib/modules/`uname -r`/kernel/drivers/input/mouse/psmouse.ko.backup /lib/modules/`uname -r`/kernel/drivers/input/mouse/psmouse.ko
sudo modprobe -r psmouse
sudo modprobe psmouse

That's it. xinput list now shows an ETPS/2 Elantch ETF1059 Click-Pad.

Again, thanks whoever! You're a lifesaver!

Labels: ,