Nov 20 2010: New guide for Cisco vpnclient on Ubuntu linux Maverick Meerkat 10.10
UPDATE: A new client for linux (4.8.02.0030) is out. You no longer need the patch for 2.6.24+ kernel (vpnclient-linux-2.6.24-final.diff). However the patch for 64 bit systems is still required and the CFLAGS variable in Makefile still need to be changed to EXTRA_CFLAGS.
June 26 2009: This post also applies to Ubuntu Jaunty Jackalope 9.04 (more than one year later and it’s still not fixed)
I assume that you have the latest version 4.8.01.0640 and the required packages for compiling.
If you install the original Cisco VPN client on Hardy you will receive the following error:
make -C /lib/modules/2.6.24-16-generic/build SUBDIRS=/home/lamnk/src/vpn/vpnclient modules
make: Entering directory `/usr/src/linux-headers-2.6.24-16-generic’
scripts/Makefile.build:46: *** CFLAGS was changed in “/home/lamnk/src/vpn/vpnclient/Makefile”. Fix it to use EXTRA_CFLAGS. Stop.
make: *** [_module_/home/lamnk/src/vpn/vpnclient] Error 2
make: Leaving directory `/usr/src/linux-headers-2.6.24-16-generic’
make: *** [default] Error 2
As those lines point out, you need to edit the Makefile file in the vpnclient folder and change CFLAGS to EXTRA_CFLAGS: Change the following line in Makefile
CFLAGS += -mcmodel=kernel -mno-red-zone
EXTRA_CFLAGS += -mcmodel=kernel -mno-red-zone
then apply the 2 patches for kernel 2.6.24 and for 64 bit:
vpnclient_folder$ wget lamnk.com/download/vpnclient-linux-2.6.24-final.diff
vpnclient_folder$ wget lamnk.com/download/cisco_skbuff_offset.patch
vpnclient_folder$ patch < ./vpnclient-linux-2.6.24-final.diff
vpnclient_folder$ patch < ./cisco_skbuff_offset.patch
If your system is 32 bit then you only need to patch the vpnclient-linux-2.6.24-final.diff file.
The patch for 64 bit system is from Stephen Frost and the patch for kernel 2.6.24 is from Alexander Griesser. Seriously Cisco should pay those guys some money … If these patches help you then please consider donate them.