vmware-specific-specific 5.5.x and kernel 2.6.32
Posted on December 4th, 2009
You can follow any responses to this entry through the RSS 2.0 feed.
Just a small fix to the previous patch was necessary for this one to work.
Remember that you do need to patch your kernel for this to work properly.
See the README inside the archive.
vmware-update-2.6.32-5.5.9.tar.bz2
Edit: there is a more complete patch here for vmware server 2.0.2, i haven’t tested it.
December 4th, 2009 at 9:36 pm
works like a charm – thanks again!
>>>Alois
December 29th, 2009 at 6:08 pm
Works also great with VMware Server 1.0.10 (and 2.6.32.2)! Just what I was looking for!
Thanx!
January 3rd, 2010 at 7:20 pm
fedora core 12 doesn’t have init_task.c in the source-devel so the patch doesn’t work. Is there another kernel-devel distro I should be using?
January 11th, 2010 at 3:21 am
I released a patch for VMware Server 2.0.2 that properly add support for newer versions of the Linux kernel:
http://risesecurity.org/2010/01/10/vmware-server-2-0-2-update-patch/
January 21st, 2010 at 4:12 am
Ok, so I took Ramon’s patch and stole all the good bits to make server 1.0.10 compile for 2.6.31 on fedora 12, however when a guest is started, my system (core2 quad 3.0G) slows to almost stopped. I’ve tried several variations of his fixes vs Kang’s fixes + Ramons init_mm fix, etc. All seem to give the same result. I’m stumped. Any ideas on what to try next welcome. I would prefer to stick with version 1 for the console.
March 9th, 2010 at 2:22 pm
Updating what I did for 2.6.31 – no need to recompile host kernel!
#!/bin/sh
cd /usr/lib/vmware/modules/source
cp vmmon.tar vmmon.2.6.32.save.tar
cp vmnet.tar vmnet.2.6.32.save.tar
tar xf vmmon.tar
tar xf vmnet.tar
cat %3C%3C HERE | patch -p1
diff -Naur ./vmmon-only.old/include/compat_pgtable.h ./vmmon-only/include/compat_pgtable.h
— ./vmmon-only.old/include/compat_pgtable.h 2007-07-22 07:21:17.000000000 -0400
+++ ./vmmon-only/include/compat_pgtable.h 2010-02-02 15:54:55.000000000 -0500
@@ -72,7 +72,7 @@
#endif
-#ifdef pgd_offset_k
+#if (LINUX_VERSION_CODE %3C KERNEL_VERSION(2, 6, 25)) && defined(pgd_offset_k)
# define compat_pgd_offset_k(mm, address) pgd_offset_k(address)
#else
# define compat_pgd_offset_k(mm, address) pgd_offset(mm, address)
diff -Naur ./vmmon-only.old/include/pgtbl.h ./vmmon-only/include/pgtbl.h
— ./vmmon-only.old/include/pgtbl.h 2007-07-22 07:21:17.000000000 -0400
+++ ./vmmon-only/include/pgtbl.h 2010-03-09 06:44:56.000000000 -0500
@@ -7,7 +7,6 @@
#include “compat_spinlock.h”
#include “compat_page.h”
-
/*
*—————————————————————————–
*
diff -Naur ./vmmon-only.old/include/vmci_kernel_defs.h ./vmmon-only/include/vmci_kernel_defs.h
— ./vmmon-only.old/include/vmci_kernel_defs.h 2007-05-02 00:08:21.000000000 -0400
+++ ./vmmon-only/include/vmci_kernel_defs.h 2010-03-09 06:53:14.000000000 -0500
@@ -27,6 +27,7 @@
#include “compat_interrupt.h”
#include “compat_spinlock.h”
#include “compat_slab.h”
+#include “compat_sched.h”
#endif // linux
#ifdef __APPLE__
diff -Naur ./vmmon-only.old/linux/hostif.c ./vmmon-only/linux/hostif.c
— ./vmmon-only.old/linux/hostif.c 2009-04-21 10:47:54.000000000 -0400
+++ ./vmmon-only/linux/hostif.c 2010-02-02 15:56:33.000000000 -0500
@@ -564,6 +564,7 @@
static void
DoClearNXBit(VA vaddr)
{
+#if LINUX_VERSION_CODE %3C KERNEL_VERSION(2, 6, 25)
int ptemap;
pgd_t *pgd = pgd_offset_k(vaddr);
pmd_t *pmd = pmd_offset_map(pgd, vaddr);
@@ -574,6 +575,10 @@
} else {
pte = pte_offset_map(pmd, vaddr);
}
+#else /* >= 2.6.25 */
+ int level;
+ pte_t *pte = lookup_address(vaddr & PAGE_MASK, &level);
+#endif /* linux version */
if (pte_val(*pte) & _PAGE_NX) {
/* pte_val() is not lvalue on x86 PAE */
#ifdef CONFIG_X86_PAE
HERE
cat << HERE | patch -p1
diff -Naur ./vmnet-only.old/compat_pgtable.h ./vmnet-only/compat_pgtable.h
— ./vmnet-only.old/compat_pgtable.h 2007-11-28 05:25:06.000000000 -0500
+++ ./vmnet-only/compat_pgtable.h 2010-02-02 15:58:37.000000000 -0500
@@ -76,7 +76,7 @@
#endif
-#ifdef pgd_offset_k
+#if (LINUX_VERSION_CODE %3C KERNEL_VERSION(2, 6, 25)) && defined(pgd_offset_k)
# define compat_pgd_offset_k(mm, address) pgd_offset_k(address)
#else
# define compat_pgd_offset_k(mm, address) pgd_offset(mm, address)
HERE
tar cf vmmon.tar ./vmmon-only
tar cf vmnet.tar ./vmnet-only
NOTE: I replaced %3C with %253C so the tag stripper wouldn’t rip out pieces of the script.
March 17th, 2010 at 11:35 pm
@kang: this patch works also for 2.6.33!
@hankang: altough I had manually alter the diffs (I think the tag-stripper still did his work) it works now also without patching init_mm – great.
perhaps complete packages can be created?
kind regards, Alois
March 22nd, 2010 at 11:38 am
>>>PierP
Thanx!
>>>
>>>Works also great with VMware Server 1.0.10 (and 2.6.32.2)! >>>Just what I was looking for!
How to establish this patch?
April 16th, 2010 at 3:40 am
[...] before Aack’s praised VirtualBox, but Kang still seems to be preparing for kernel 2.6.32 (vmware-specific-specific 5.5.x and kernel 2.6.32), so maybe things will be easy enough by the time Fedora 13 comes [...]
April 18th, 2010 at 1:49 am
Sorry, I have been using KVM lately

I might still make a clean 2.6.33 patch for the people (the one that doesnt require kernel changes), if only i could get some spare time
Maybe someone will come up with it before.
Still, I recommend switching to a newer vmware or virtualbox or kvm these days. kvm is a lot faster, virtualbox is nearly as good as vmware 5.5 and vmware 6.5/7 well.. they’re mostly supported xD
April 28th, 2010 at 10:21 am
hi kang,
http://cableguy.no-ip.com/Files/vmware-update-2.6.32-33.5.5.9.1.tar.gz
it’s not in your format, just the two tars packed – init_mm patch is included, works here stable since over a month.
please do not post this link – i will delete the file soon, i have not enough bandwith … :-/
but so you do not need to do anything beside posting it here.
kind regards, Alois
May 3rd, 2010 at 3:26 pm
Hi,
I am getting following error message, any help?
In file included from /tmp/vmware-config6/vmmon-only/vmcore/moduleloop.c:29:
/tmp/vmware-config6/vmmon-only/./common/hostif.h:39:7: warning: “WINNT_DDK” is not defined
LD [M] /tmp/vmware-config6/vmmon-only/vmmon.o
Building modules, stage 2.
MODPOST 1 modules
WARNING: /tmp/vmware-config6/vmmon-only/vmmon.o (.properties): unexpected non-allocatable section.
Did you forget to use “ax”/”aw” in a .S file?
Note that for example contains
section definitions for use in .S files.
WARNING: “init_mm” [/tmp/vmware-config6/vmmon-only/vmmon.ko] undefined!
CC /tmp/vmware-config6/vmmon-only/vmmon.mod.o
LD [M] /tmp/vmware-config6/vmmon-only/vmmon.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-22-generic’
cp -f vmmon.ko ./../vmmon.o
make: Leaving directory `/tmp/vmware-config6/vmmon-only’
Unable to make a vmmon module that can be loaded in the running kernel:
insmod: error inserting ‘/tmp/vmware-config6/vmmon.o’: -1 Unknown symbol in module
There is probably a slight difference in the kernel configuration between the
set of C header files you specified and your running kernel. You may want to
rebuild a kernel based on that directory, or specify another directory.
Best Regards.
Sandesh
June 2nd, 2010 at 8:06 pm
Same here. Unknown symbol in module error. *frown* Bad omen for SLED11 SP1 and VMWare Server 1.0.10
July 7th, 2010 at 12:34 am
[...] advice thread (vmware-specific-specific 5.5.x and kernel 2.6.32) that originally made me optimistic did not continue to offer encouragement. Anticipating Fedora 13 [...]