ubuntuusers.de

Cisco VPN unter Karmic 9.10 x64

Status: Gelöst | Ubuntu-Version: Ubuntu 9.10 (Karmic Koala)
Antworten |

der_raven

Avatar von der_raven

Anmeldungsdatum:
15. März 2007

Beiträge: Zähle...

Hallo Welt!

Ich nutze seit der neusten Ubuntu Version 9.10 die 64 Bit Variante. Da ich für die Uni (E-Mail, Zugangsberechtigung) den Cisco VPN client nutzen muss, versuche ich den seit Kurzem zu installieren. Da ergibt sich folgendes Problem:

Der Client hat ein Problem mit der Kernel vesrion und gibt folgende Fehlermeldung aus:

Shutting down /opt/cisco-vpnclient/bin/vpnclient: module cisco_ipsec is not running.
Starting /opt/cisco-vpnclient/bin/vpnclient: insmod: error inserting '/lib/modules/2.6.31-14-generic/CiscoVPN/cisco_ipsec.ko': -1 Invalid module format
Failed (insmod)
Cisco Systems VPN Client Version 4.8.01 (0640)
Copyright (C) 1998-2007 Cisco Systems, Inc. All Rights Reserved.
Client Type(s): Linux
Running on: Linux 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:05:01 UTC 2009 x86_64
Config file directory: /etc/opt/cisco-vpnclient

Could not attach to driver. Is kernel module loaded?
The application was unable to communicate with the VPN sub-system.

Bei der Version handelt es sich um 4.8.01 (von der FU Berlin). Die Version schleppe ich nun schot seit 2 Jahren mit mir rum. Das bedeutet, sie ist gepacht auf die version von

http://projects.tuxx-home.at/ciscovpn/patches/vpnclient-linux-2.6.22.diff

Wie in der Wiki angegeben und mit dem was ich der Wiki für 64 bit erweiterung gefunden habe (Quelle: http://projects.tuxx-home.at/?id=cisco_vpn_client ).

Hat dieses Problem jemand anders und es zufällig gelöst? Nebenbei, die 32 bit Erweiterungs Bibliothek lib32ggc1 ist bei mir installiert.

Ich habe auch versucht eine andere VErsion es vpn client von der angegebenen Quelle zu nutzen, allerdings bricht dort die installation ab, auch nach den Patches.

VPNC habe ich auch versucht, allerdings gibt es da durch die hybrid Verschlüssung scheinbar Probleme. Hab versucht die VPNC version von meiner Uni zu compilieren, allerdings treten da immer Fehler auf.

Ich hoffe jemand weiss Rat

MfG

Der Raven

der_raven

(Themenstarter)
Avatar von der_raven

Anmeldungsdatum:
15. März 2007

Beiträge: 5

So Problem mittlerweile gelöst, wenn auch nur für die 32 Bit version von Karmic.

Die Lösung stammt von der Seite

http://ilapstech.blogspot.com/2009/09/cisco-vpn-client-on-karmic-koala.html

Ich Fasse das hier nochmal zusammen:

1. Der neue Kernel kollidiert mit der Version vom VPN Client von Cisco, deshalb muss folgendes skript angelegt werden:

--- vpnclient.ori/interceptor.c 2009-05-21 01:16:34.000000000 +1200
+++ vpnclient/interceptor.c 2009-09-06 22:02:39.000000000 +1200
@@ -116,6 +116,14 @@
 };
 #endif
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+static struct net_device_ops interceptor_netdev_ops = {
+    .ndo_start_xmit = interceptor_tx,
+    .ndo_do_ioctl   = interceptor_ioctl,
+    .ndo_get_stats  = interceptor_stats,
+};
+#endif
+
 static struct notifier_block interceptor_notifier = {
     .notifier_call = handle_netdev_event,
 };
@@ -129,9 +137,13 @@
 {
     ether_setup(dev);
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+    dev->netdev_ops = &interceptor_netdev_ops;
+#else
     dev->hard_start_xmit = interceptor_tx;
     dev->get_stats = interceptor_stats;
     dev->do_ioctl = interceptor_ioctl;
+#endif
 
     dev->mtu = ETH_DATA_LEN-MTU_REDUCTION;
     kernel_memcpy(dev->dev_addr, interceptor_eth_addr,ETH_ALEN);
@@ -242,6 +254,9 @@
 {
     int rc = -1;
     int i = 0;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+    struct net_device_ops * tmp_ops;
+#endif
 
     if (!supported_device(dev))
     {
@@ -268,8 +283,14 @@
     Bindings[i].original_mtu = dev->mtu;
 
     /*replace the original send function with our send function */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+    Bindings[i].InjectSend = dev->netdev_ops->ndo_start_xmit;
+    tmp_ops = (struct net_device_ops *) dev->netdev_ops;
+    tmp_ops->ndo_start_xmit = replacement_dev_xmit;
+#else
     Bindings[i].InjectSend = dev->hard_start_xmit;
     dev->hard_start_xmit = replacement_dev_xmit;
+#endif
 
     /*copy in the ip packet handler function and packet type struct */
     Bindings[i].InjectReceive = original_ip_handler.orig_handler_func;
@@ -285,13 +306,21 @@
 {
     int rc = -1;
     BINDING *b;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+    struct net_device_ops * tmp_ops;
+#endif
 
     b = getbindingbydev(dev);
 
     if (b)
     {   
         rc = 0;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
+        tmp_ops = (struct net_device_ops *) dev->netdev_ops;
+        tmp_ops->ndo_start_xmit = b->InjectSend;
+#else
         dev->hard_start_xmit = b->InjectSend;
+#endif
         kernel_memset(b, 0, sizeof(BINDING));
     }
     else

Dieses muss dann als *.diff gespeichert werden. Z.B. als cisco-vpn.2.6.31.diff

2. Patchen der alten Version mit dem skript. Dazu die Datei *.diff einfach in den Installationsordner kopieren und folgenden befehl ausführen:

patch < "*".diff

wobei "*" natürlich eure Datei ist.

3. Nun sollte der Client mit

sudo ./vpn_install

zu installieren sein und anschließend auch ausführbar.

Leider habe ich noch keine Lösung für die x64 Version von Karmic gefunden. Ich bin wieder auf die 32 Bit Variante Umgestiegen.

MfG Der Raven

Microchip

Avatar von Microchip

Anmeldungsdatum:
10. März 2007

Beiträge: 46

Ich bekomme ein

patching file interceptor.c
patch: **** malformed patch at line 4: };

Das else am Schluss kommt mir auch etwas seltsam vor?!

der_raven

(Themenstarter)
Avatar von der_raven

Anmeldungsdatum:
15. März 2007

Beiträge: 5

Schau mal auf die oben angebene Seite

http://ilapstech.blogspot.com/2009/09/cisco-vpn-client-on-karmic-koala.html

da haben einige die Selbe Fehlermeldung. Liegt wohl an ein paar Leerzeichen Statt TAB's.

Microchip

Avatar von Microchip

Anmeldungsdatum:
10. März 2007

Beiträge: 46

Das brachte bei mir zwar keine Veränderung, aber mit der ebenfalls in den Kommentaren erwähnten Version auf http://dl.dropbox.com/u/1289817/vpnclient-linux.2.6.31.diff ging es dann. Also trotzdem danke *g*

killer-g

Anmeldungsdatum:
29. Oktober 2008

Beiträge: Zähle...

Wohnort: Kölle

hab den client auch mit dem patch(siehe vorgägner post von microchip link) unter 32bit erfolgreich wieder ans laufen gebracht .. hatte vorher die Fehlermeldung:

Starting /opt/cisco-vpnclient/bin/vpnclient: insmod: error inserting '/lib/modules/2.6.31-19-generic/CiscoVPN/cisco_ipsec.ko': -1 Invalid module format
Failed (insmod)
Antworten |