vmware and kernel 2.6.20

Doesn’t go too well toghether. At least VMware Server 1.0.1 build-29996 and vanilla kernel 2.6.20. However there are things that can be done:

cd /usr/lib/vmware/modules
tar xf vmmon.tar ; rm vmmon.tar
patch -p0 <vmmon.patch
tar cf vmnet.tar vmnet-only
tar xf vmnet.tar ; rm vmnet.tar
patch -p0 < vmnet.patch
tar cf vmnet.tar vmnet-only

Use the following patches:
vmmon.patch

iff -Naur vmmon-only/include/compat_kernel.h vmmon-only.20/include/compat_kernel.h
— vmmon-only/include/compat_kernel.h 2006-08-10 01:59:13.000000000 +0300
+++ vmmon-only.20/include/compat_kernel.h 2007-02-10 04:45:48.928389823 +0200
@@ -18,7 +18,9 @@
* provided by x86-64, arm and other (but not by i386).
*/
#define __NR_compat_exit __NR_exit
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 20)
static inline _syscall1(int, compat_exit, int, exit_code);
+#endif

/*

and for vmnet.patch use:

diff -Naur vmnet-only/bridge.c vmnet-only-20/bridge.c
— vmnet-only/bridge.c 2006-08-10 01:59:13.000000000 +0300
+++ vmnet-only-20/bridge.c 2007-02-10 04:53:48.205619624 +0200
@@ -1176,7 +1176,7 @@
return 0;
}
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 4)
– if (skb->ip_summed == CHECKSUM_HW) {
+ if (skb->ip_summed == CHECKSUM_COMPLETE) {
/*
* Unbelievable… Caller sets h.raw = nh.raw before invoking us…
*/
diff -Naur vmnet-only/userif.c vmnet-only-20/userif.c
— vmnet-only/userif.c 2006-08-10 01:59:13.000000000 +0300
+++ vmnet-only-20/userif.c 2007-02-10 04:53:24.235258028 +0200
@@ -626,7 +626,7 @@
* faster.
*/
if (skb->pkt_type == PACKET_OUTGOING && /* Packet must be outgoing */
– skb->ip_summed == CHECKSUM_HW && /* Without checksum */
+ skb->ip_summed == CHECKSUM_COMPLETE && /* Without checksum */
skb->h.raw != skb->nh.raw && /* We must know where header is */
skb->len == count) { /* No truncation may occur */
size_t skl;

I also had to do a touch /usr/include/linux/config.h

Happy vmwareing

5 thoughts on “vmware and kernel 2.6.20

  1. Am dat un search pe google cind m-am apucat de treaba si n-am gasit nimic relevant vis’a’vis de 2.6.20 si vmware si am presupus ca e prea nou sa fi scos cineva patchuri deja. Iar pe de alta parte intotdeauna e interesant sa patch-uiesti sursele 🙂 I love it 🙂

  2. hi,

    I have tried install the patch, then I received this message error:

    [16:35] root@medical102:/usr/lib/vmware/modules# patch -p0

  3. sorry for the bad ctrl+v ;P
    but I was resolved the problem. the error is in the vmnet patch. The userif.c and bridge.c don’t have the constant VM_CHECKSUM, I modify to VM_CHECKSUM_PARTIAL and work beaty.
    I should there is a difference in the version I running here.

    Cheers.

Comments are closed.