With kernel 2.6.24 you will need a patch to install Cisco VPN Client

UPDATE: A new client for linux (4.8.02.0030) is out. You no longer need the patch for 2.6.24+ kernel on 32 bit systems. However a patch for 64 bit systems is still required. Please click on the link right below to see the howto for 64bit.

UPDATE: 64 bit systems are a bit more complicated, please see how to install Cisco VPN on Hardy Heron 8.04 64 bit

UPDATE: with 2.6.25 kernel this patch is still required (luckily)

OK it’s not breaking news anymore, but in case you confront these errrors:

make -C /lib/modules/2.6.24-ARCH/build SUBDIRS=/usr/src/vpnclient modules
make[1]: Entering directory `/usr/src/linux-2.6.24-ARCH’
CC [M] /usr/src/vpnclient/linuxcniapi.o
In file included from /usr/src/vpnclient/Cniapi.h:15,
from /usr/src/vpnclient/linuxcniapi.c:31:
/usr/src/vpnclient/GenDefs.h:113: error: conflicting types for ‘uintptr_t’
include/linux/types.h:40: error: previous declaration of ‘uintptr_t’ was here
make[2]: *** [/usr/src/vpnclient/linuxcniapi.o] Error 1
make[1]: *** [_module_/usr/src/vpnclient] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.24-ARCH’
make: *** [default] Error 2

Then you probably need a patch:

cd /path/to/the/vpnclient/folder
wget http://projects.tuxx-home.at/ciscovpn/patches/vpnclient-linux-2.6.24-final.diff
patch < ./vpnclient-linux-2.6.24-final.diff

This is due to a change in 2.6.4 kernel that the “init_net” symbol is now again exported using EXPORT_SYMBOL() instead of EXPORT_SYMBOL_GPL()

  • Digg
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • StumbleUpon
  • Ma.gnolia
  • Reddit

Related posts:

  • Yiannis Metzis
    Good stuff!. It worked fine. Thanks guys.
  • James
    Wonderful, Thank you very much. I love people like this.
  • Mark
    thanks a lot. Have to use this to connect to the university network, but the IT guys never respond to emails when I was trying to get this to compile after updating kernels.

    So thanks again.
  • Colin
    This page was a life saver - thanks for the patch. Seems like the Cisco VPN client never breaks in a way that us normal people can fix.
  • JP
    Hello!

    I was not expecting this problem when I changed kernels. I will know better next time.

    In the meatime, I find myself with a VPN client and I get the following errors when I try to patch. Does anyone know how to fix the diff file? I would like to learn how...

    Thanks!

    YYY@XXXXXX:~/VPN/vpnclient$ patch < vpnclient-linux-2.6.24-final.diff
    patching file GenDefs.h
    patching file interceptor.c
    Hunk #1 succeeded at 24 (offset -4 lines).
    Hunk #2 succeeded at 48 (offset -4 lines).
    Hunk #3 FAILED at 107.
    Hunk #4 succeeded at 123 (offset -23 lines).
    Hunk #5 FAILED at 350.
    Hunk #6 succeeded at 849 (offset -86 lines).
    Hunk #7 succeeded at 891 (offset -86 lines).
    2 out of 7 hunks FAILED -- saving rejects to file interceptor.c.rej
  • Raj
    Thanks a lot dude..

    I got same error "2 out of 7 hunks FAILED — saving rejects to file interceptor.c.rej" as above, then I opened vpnclient-linux-2.6.24-final.diff and manually patched interceptor.c by copy and pasting to places where It had failed.. took sometime but finally vpn client started fine..
  • javatechie
    so can you please suggest what you copied and what you pasted and in which file. I am a newbie to Linux. :(

    Thanks for the help.
  • Worked fine for me:
    ubuntu hardy heron 8.04
  • Flat
    I had also troubles with "2 out of 7 hunks FAILED" but did the similar thing as Raj. Opened interceptor.c.rej and manually patched interceptor.c at places where original patch failed. Took some time as well but now it seems to be starting ok. Thanks for the patch! :]
  • helpdeskdan
    EXACTLY what I was looking for, worked flawless, many thanks. On Hardy Heron.
  • Amir
    I am encountering the same problem as JP.. where I get errors when I apply the patch. Does somebody have the manual steps to resolve the diff file or apply the changes of the .diff to the interceptor.c? Thanks.
  • Lamnk
    To those who have problem with patching:

    Please provide you VPN version (for example 4.8.01.0640) and your kernel version (from command "uname -r"). Maybe i can help you further.
  • Amir
    Thanks for looking into it:
    kernel: 2.6.24-16-generic
    VPN Client: 4.8.00 (0490)
  • james
    no way man, you can not compile the code in linuxcniapi.c, cuz it has the code like
    skb->nh.iph = (struct iphdr *) skb->data;
    skb->mac.raw = pMac;
    where the nh and h are not a member of skb strut. I wondered how do you people finish the ./vpn_install or do you just manually made the o file and put it to modules manually?
    I worked a while to finish the diff part of these h and c files, but stuck in the installation part.
    error msg:
    Is the above correct [y]

    Making module
    make -C /lib/modules/2.6.24-16-generic/build SUBDIRS=/home/xxx/vpnclient modules
    make[1]: Entering directory `/usr/src/linux-headers-2.6.24-16-generic'
    CC [M] /home/xxx/vpnclient/linuxcniapi.o
    /home/xxx/vpnclient/linuxcniapi.c: In function ‘CniInjectReceive’:
    /home/xxx/vpnclient/linuxcniapi.c:297: error: implicit declaration of function ‘skb_set_timestamp’
    /home/xxx/vpnclient/linuxcniapi.c:331: error: ‘struct sk_buff’ has no member named ‘nh’
    /home/xxx/vpnclient/linuxcniapi.c:332: error: ‘struct sk_buff’ has no member named ‘mac’
    /home/xxx/vpnclient/linuxcniapi.c: In function ‘CniInjectSend’:
    /home/xxx/vpnclient/linuxcniapi.c:454: error: ‘struct sk_buff’ has no member named ‘mac’
    /home/xxx/vpnclient/linuxcniapi.c:455: error: ‘struct sk_buff’ has no member named ‘nh’
    /home/xxx/vpnclient/linuxcniapi.c:458: error: ‘struct sk_buff’ has no member named ‘h’
    /home/xxx/vpnclient/linuxcniapi.c:458: error: ‘struct sk_buff’ has no member named ‘nh’
    make[2]: *** [/home/xxx/vpnclient/linuxcniapi.o] Error 1
    make[1]: *** [_module_/home/xxx/vpnclient] Error 2
    make[1]: Leaving directory `/usr/src/linux-headers-2.6.24-16-generic'
    make: *** [default] Error 2
    Failed to make module "cisco_ipsec.ko".
  • Lamnk
    I have found the reason of saving rejects to file interceptor.c.rej:

    It's because you are using an older version (4.8.00.0490 probably). Please download the latest one - 4.8.01.0640 then patch it. If you don't have it then contact you IT department to get the newest version from Cisco.
  • ios46
    Patching works NOW with vpnclient-linux-x86_64-4.8.01.0640-k9.tar.gz instead of the old vpnclient-linux-4.8.00.0490-k9.tar.gz, :-) Great help people !!!
  • maleante
    the patch work fine for me, but when I try to install I keep getting the following error.

    Cisco Systems VPN Client Version 4.8.01 (0640) Linux Installer
    Copyright (C) 1998-2006 Cisco Systems, Inc. All Rights Reserved.

    By installing this product you agree that you have read the
    license.txt file (The VPN Client license) and will comply with
    its terms.


    Directory where binaries will be installed [/usr/local/bin]

    Automatically start the VPN service at boot time [yes]

    In order to build the VPN kernel module, you must have the
    kernel headers for the version of the kernel you are running.


    Directory containing linux kernel source code [/lib/modules/2.6.24-16-generic/build]

    * Binaries will be installed in "/usr/local/bin".
    * Modules will be installed in "/lib/modules/2.6.24-16-generic/CiscoVPN".
    * The VPN service will be started AUTOMATICALLY at boot time.
    * Kernel source from "/lib/modules/2.6.24-16-generic/build" will be used to build the module.

    Is the above correct [y]

    Making module
    make -C /lib/modules/2.6.24-16-generic/build SUBDIRS=/home/robert/Desktop/vpnclient modules
    make[1]: Entering directory `/usr/src/linux-headers-2.6.24-16-generic'
    scripts/Makefile.build:46: *** CFLAGS was changed in "/home/robert/Desktop/vpnclient/Makefile". Fix it to use EXTRA_CFLAGS. Stop.
    make[1]: *** [_module_/home/robert/Desktop/vpnclient] Error 2
    make[1]: Leaving directory `/usr/src/linux-headers-2.6.24-16-generic'
    make: *** [default] Error 2
    Failed to make module "cisco_ipsec.ko".

    I'm a noob and have no idea how to fix this. Step by step instructions if you please. Any help would be appreciated. I'm using Ubuntu 8.84 (64-bit ver.) (2.6.24-16-generic)

    Cheers!
  • Lamnk
    Hello maleante, i've successfully compiled the cisco vpn module, using both patches for 64 bit and 2.6.24 kernel ! A post will follow shortly ( it's 3:30 am now ... )

    UPDATE: New entry posted.
  • Prabhat
    Hi Lamnk,
    I have also installed Ubuntu 8.0 (LTS Desktop on by IBM T43 laptop). I went through the steps that you have posted,. But even after a successful patch, I am facing the below errors:

    prabhat@pubs:~/cisco applications/vpnclient$ su
    Password:
    root@pubs:/home/prabhat/cisco applications/vpnclient# ./vpn_install
    Cisco Systems VPN Client Version 4.8.01 (0640) Linux Installer
    Copyright (C) 1998-2006 Cisco Systems, Inc. All Rights Reserved.

    By installing this product you agree that you have read the
    license.txt file (The VPN Client license) and will comply with
    its terms.


    Directory where binaries will be installed [/usr/local/bin]

    Automatically start the VPN service at boot time [yes]

    In order to build the VPN kernel module, you must have the
    kernel headers for the version of the kernel you are running.


    Directory containing linux kernel source code [/lib/modules/2.6.24-16-generic/build]

    * Binaries will be installed in "/usr/local/bin".
    * Modules will be installed in "/lib/modules/2.6.24-16-generic/CiscoVPN".
    * The VPN service will be started AUTOMATICALLY at boot time.
    * Kernel source from "/lib/modules/2.6.24-16-generic/build" will be used to build the module.

    Is the above correct [y]

    Making module
    make -C /lib/modules/2.6.24-16-generic/build SUBDIRS=/home/prabhat/cisco applications/vpnclient modules
    make[1]: Entering directory `/usr/src/linux-headers-2.6.24-16-generic'
    make[1]: *** No rule to make target `applications/vpnclient'. Stop.
    make[1]: Leaving directory `/usr/src/linux-headers-2.6.24-16-generic'
    make: *** [default] Error 2
    Failed to make module "cisco_ipsec.ko".
  • ios46
    On Kubuntu 8.04 LTS 64bit however it worked with a combo of 2 patch files (the one posted here), where it returns an error complaining about CFLAGS variable, open Makefile with an editor and replace it with EXTRA_CFLAGS. The installation fails however and i tried to start differently. Erase everything and install the vpnclient-linux-x86_64-4.8.01.0640-k9.tar.gz, get the patch from: wget http://projects.tuxx-home.at/ciscovpn/patches/c... and apply, then patch once again with: vpnclient-linux-2.6.24-final.diff
    Install VPN client then:

    Linux iordHp 2.6.24-17-generic #1 SMP Thu May 1 13:57:17 UTC 2008 x86_64 GNU/Linux

    Initializing the VPN connection.
    Contacting the gateway at x.x.x.x
    User Authentication for xxxx VPN
    Connection 1...

    Enter Username and Password.

    Username []:
    Password []:
    Authenticating user.
    Negotiating security policies.
    Securing communication channel.


    Welcome to xxx VPN service.
    Unauthorized access prohibited.
    Do you wish to continue? (y/n): y

    Your VPN connection is secure.

    VPN tunnel information.
    Client address: xxxx
    Server address: xxxx
    Encryption: 256-bit AES
    Authentication: HMAC-SHA
    IP Compression: LZS
    NAT passthrough is inactive
    Local LAN Access is disabled
  • User
    Thank you so much ios46 for this comment,
    without I doubt I would have been able to get my vpn working again after the update to 2.6.25
  • Lamnk
    I posted about the 64 bit problem some days ago :)
  • ios46 has it right.
  • Thankyou for the info about the patch for 2.6.24!!
  • Kim Chirnside
    This looked promising. The patch enable my vpnclient-linux-x86_64-4.8.01.0640-k9 client to install on my 32 bit Hardy Heron laptop, and it successfully makes connections and allows me to temporarily connect to the VPN.

    However within a few moments my entire system freezes. This is very consistent, following connections to the VPN. Has anyone experienced this? I can post some log output if someone could direct me to the right location.

    Thoughts?
  • Long
    The vpnclient-linux-2.6.24-final.diff patch didn't work for me either and I had to manual patch it in order to get it to install.

    My setup:
    * Linux xxx 2.6.24-19-generic #1 SMP Fri Jul 11 2008 x86_64 GNU/Linux - Ubuntu 8.04
    * vpnclient-linux-x86_64-4.8.02.0030-k9.tar.gz

    Cheers!
  • Cool! Thank you for a patch. My problem resolved.
  • Did anyone get it to work with Ubuntu 8.10? I'm getting the same error as 8.04, but I'm not sure if there's any patch for Kernel 2.6.27 or whatever that came with Ubuntu 8.10.
  • RKG
    Thanks a lot !!! this works !!
  • u saved my fuckin life
  • Thien Nguyen
    Just want to say thanks. This helps out a lot!
  • Paul Henderson
    This patch is also required with 2.6.26 kernel.
    Thanks a lot.
  • Frazier
    I have tried using this method with ubuntu 9.04 and i am hainv some problems to say the least; i know its a beta but any help would be great.

    Kernel: 2.6.28-11-generic
    VPN Package :
    vpnclient-linux-x86_64-4.8.01.0640-k9.tar
    Patch :vpnclient-linux-2.6.24-final.diff

    Does anyone have a moded diff for 2.6.28
  • Frazier
    I found an updated version of the cisco VPN and it installed with out any patch or problems.

    Kernel: 2.6.28-11-generic

    Goto google and search for this file:
    vpnclient-linux-x86_64-4.8.02.0030-k9.tar.gz

    The file should not be bigger then:
    2.0 MB (2056671 bytes)
  • doctorcisco
    For Ubuntu Jaunty 64-bit:

    1) Download vpnclient-linux-x86_64-4.8.02.0030-k9.tar.gz
    2) apt-get install linux-source-2.6.28
    3) tar xvfz vpnclient-linux-x86_64-4.8.02.0030-k9.tar.gz
    4) cd vpnclient
    5) wget http://projects.tuxx-home.at/ciscovpn/patches/v...
    6) patch Makefile vpnclient-linux-4.8.02-64bit.patch
    7) ./vpn_install

    FYI, this is kernel 2.6.28-11
  • Mario
    Gracias estaba buscando como installar el VPN y gracias a tu post ya pude. Excelente.
blog comments powered by Disqus