Comment 5 for bug 1048816

To apply the patch:

-----------------------------------
APPLY SOURCE CHANGES
-----------------------------------

Clone Kamal's kernel (this is the one used by the Sputnik Ubuntu release):

$ git clone git://kernel.ubuntu.com/kamal/ubuntu-precise.git

(That may take some time).

Download and save the patch from comment #1.

Patch the kernel git repo you just checked out:

$ cd ubuntu-precise/
$ git am <path-to-patch>

Check to make sure it succeeded:

$ git status

Make sure that mentions that you're ahead of the master by 1 commit.

---------------------
BUILD KERNEL
---------------------

Now you need to configure your kernel. You can start with the configuration of the kernel you're running:

$ cd ubuntu-precise/
$ cp /boot/config-$(uname -r) .config
$ make oldconfig

NOW you can build your kernel using that configuration (note the -j8 compiles with 8 threads. It'll max your cores):

$ make -j8

(this took me about 45 minutes; grab some lunch).

--------------------------
TEST NEW DRIVER
--------------------------

The touchpad driver is compiled as a kernel module, which makes it super easy to test. First, get to where the module was compiled:

$ cd ubuntu-precise/drivers/input/mouse/

Stop using the installed module for your touchpad (note that your touchpad will stop working):

$ sudo rmmod psmouse

Give your newly compiled module a test run:

$ sudo insmod psmouse.ko

First of all, your mouse should be working again. Second, while you should be able to tap-to-click everywhere on the touchpad if tap-to-click is enabled, if tap-to-click is DISabled you shouldn't be able to tap-to-click anywhere, including the mouse button zones (although do take note of comments 2-3).

To stop testing the newly compiled module, unload it and load up the system version instead:

$ sudo rmmode psmouse
$ sudo modprobe psmouse

Note: If you reboot, the system version of the module will be loaded on boot.