Home       Servicebereich  Projekte  Kontakt  


Installation von Parallels 2.x mit Kerneln 2.6.19 / 2.6.20

Die Installation von Parallels Parallels-2.2.2112 und kleineren Versionen schlägt bei den Kerneln 2.6.19 und 2.6.20 fehl. Auf einem Ubuntu Feisty mit dem Kernel 2.6.20 musste ich die Datei /usr/lib/parallels/drivers/drv_net/linux/prlnet.c wie folgt patchen:


--- prlnet.c    2007-04-05 12:48:12.000000000 +0200
+++ prlnet.c_2.6.20     2007-04-05 12:48:25.000000000 +0200
@@ -11,6 +11,8 @@
 #error "Kernels older than 2.2 are not supported"
 #endif

+// _mw_
+#include 
 #include 
 #include 
 #include 
@@ -880,8 +882,13 @@
        // to guarantee hw immutability here (including hw->vis list)
        if (skb->pkt_type != PACKET_LOOPBACK) {
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,4)
-               int do_csum = skb->pkt_type == PACKET_OUTGOING
-                       && skb->ip_summed == CHECKSUM_HW;
+// _mw_
+//             int do_csum = skb->pkt_type == PACKET_OUTGOING && skb->ip_summed == CHECKSUM_HW;
+#ifndef CHECKSUM_NW
+int do_csum = skb->pkt_type == PACKET_OUTGOING && skb->ip_summed == CHECKSUM_COMPLETE;
+#else
+int do_csum = skb->pkt_type == PACKET_OUTGOING && skb->ip_summed == CHECKSUM_HW;
+#endif
                // this is slightly inefficient
                // applies to host packets only
                if (do_csum || skb_is_nonlinear(skb)) {
@@ -1008,11 +1015,12 @@
        }
        memcpy(hw->mac, hw->proto.dev->dev_addr, sizeof(hw->mac));
 #ifdef CONFIG_NET_RADIO
-       if (hw->proto.dev->get_wireless_stats)
-               hw->wireless = 1;
+// _mw_
+//     if (hw->proto.dev->get_wireless_stats)
+//             hw->wireless = 1;
 #if WIRELESS_EXT > 12
-       if (hw->proto.dev->wireless_handlers)
-               hw->wireless = 1;
+// _mw_        if (hw->proto.dev->wireless_handlers)
+//             hw->wireless = 1;
 #endif
 #endif
        if (!hw->wireless)

< zurück