Building a custom kernel in Ubuntu is a little bit obnoxious, but it can be done. I'm not an Ubuntu user so I'm kind of extrapolating from what I've read on WiKis and forums, but it should go like this.
1) Grab the kernel source for your Ubuntu version from git (see
this)
2) Make sure you have installed all of there
sudo apt-get install fakeroot build-essential crash kexec-tools makedumpfile kernel-wedge
sudo apt-get build-dep linux
sudo apt-get install git-core libncurses5 libncurses5-dev libelf-dev asciidoc binutils-dev
(Copied from
here)
3) Open the directory with the kernel source and copy contents of the attached archive to drivers/hid (overwrite everything)
4) On terminal, cd to the directory with the source and
4a) run
zcat /proc/config.gz > .config
This grabs the config of currently running kernel and saves it as .config file.
4b) Run
make oldconfig
You should be asked if you want to build LOGIWHEELS_FF - say Y. If you're not, something is wrong with the patches. Either you haven't copied them to the proper directory or there is some incompatibility between them and the 2.6.38 kernel.
5) Run
make-kpkg --rootcmd fakeroot --initrd --append_to_version -custom --revision 1 kernel_image kernel_headers
Get a cup of coffee and wait till the kernel builds. If you get any errors during build, please let me know; the patches were targeted for 3.0 kernel and they might not work with older ones.
When that's done, you should see kernel-image and kernel-headers packages in the directory. Install those by running
sudo dpkg -i *.deb
This will install all .deb packages in the current directory
6) Run
sudo update-grub2
If everything went well, you should be in the new kernel after reboot. You can check the kernel version with "uname -r" in terminal.
Now when you plug in your DFGT, it should automatically switch to the native mode and 900 deg range. The range can be adjusted like this
echo <range> > /sys/module/hid_logitech/drivers/hid:logitech/<device>/range
Where <range> is a number between 40 and 900 and <device> is the device ID assigned by the kernel. For DFGT it should look like 000x:046D:C29A:000y ("x" and "y" will vary).
EDIT: Forgot to attach the patch. The .zip extension's got to be removed before opening the archive.