rEFIt the EFI Boot Menu Toolkit and Gentoo » |
VMware Server 1.0.10 and linux kernel 3.3.1
This is the first public release of a VMware Server 1.0.10 patch set for linux 3.3.0 (yes you read right 3.3.0)
It also don’t require the init_mm kernel patch.
The Gentoo users that used my overlay go-vmware already used this patch set.
This will also give all non Gentoo users the possibilty to use this patch set:
To apply the patches you need to have the original vmmon.tar and vmnet.tar (i am not publishing prepackaged module sources)
now just run the downloaded script it will automatically patch the original tars
# sh vmware_server_1_0_10_203137-3.3.0_fix.sh
here is it:
http://ftp.disconnected-by-peer.at/vmware/vmware_server_1_0_10_203137-3.3.0_fix.sh
Info: This pathset requires the original vmmon.tar vmnet.tar from the vmware server 1.0.10 package!
Update: Updated patchset to 2.6.38
Update: Updated patchset to 3.1.0
Update: Updated patchset to 3.3.0
Trackback address for this post
Trackback URL (right click and copy shortcut/link location)
15 comments

Fantastic! Great job. Installed fine on Fedora 12. Works liek a charm. Thanks.

regrettably this fixes do not work for kernel 2.6.37:
vmmon compiles correct, but vmnet not:
Building the vmnet module.
Building for VMware Server 1.0.0.
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config0/vmnet-only’
make -C /usr/src/linux/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-2.6.37′
CC [M] /tmp/vmware-config0/vmnet-only/driver.o
/tmp/vmware-config0/vmnet-only/driver.c:105: warning: data definition has no type or storage class
/tmp/vmware-config0/vmnet-only/driver.c:105: warning: type defaults to `int’ in declaration of `DECLARE_MUTEX’
/tmp/vmware-config0/vmnet-only/driver.c:105: warning: parameter names (without types) in function declaration
/tmp/vmware-config0/vmnet-only/driver.c: In function `init_module’:
/tmp/vmware-config0/vmnet-only/driver.c:478: error: `struct file_operations’ has no member named `ioctl’
make[2]: *** [/tmp/vmware-config0/vmnet-only/driver.o] Error 1
make[1]: *** [_module_/tmp/vmware-config0/vmnet-only] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.37′
make: *** [vmnet.ko] Error 2
make: Leaving directory `/tmp/vmware-config0/vmnet-only’
Unable to build the vmnet module.
Cyber

Looking around after rebuild kernel 2.6.27 on my ubuntu 9.04 get more and less same error:
Building the vmmon module.
Building for VMware Server 1.0.0.
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config1/vmmon-only’
make -C /lib/modules/2.6.37-custom/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-2.6.37′
CC [M] /tmp/vmware-config1/vmmon-only/linux/driver.o
/tmp/vmware-config1/vmmon-only/linux/driver.c: In function ‘init_module’:
/tmp/vmware-config1/vmmon-only/linux/driver.c:431: error: ‘struct file_operations’ has no member named ‘ioctl’
make[2]: *** [/tmp/vmware-config1/vmmon-only/linux/driver.o] Error 1
make[1]: *** [_module_/tmp/vmware-config1/vmmon-only] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.37′
make: *** [vmmon.ko] Error 2
make: Leaving directory `/tmp/vmware-config1/vmmon-only’
Unable to build the vmmon module.
For more information on how to troubleshoot module-related problems, please
visit our Web site at “http://www.vmware.com/download/modules/modules.html” and
“http://www.vmware.com/support/reference/linux/prebuilt_modules_linux.html".
Execution aborted.
Any idea?
Tnx good week end
Gianni

where all patches applied correctly ?
you need the original tar’s

tnx for answer
i get tar from original dist of vmware 1.0.10:
cd /usr/lib/vmware/modules/source/
cp /home/gianni/Desktop/varie/vmware-server-distrib/lib/modules/source/*.tar .
then i use your script:
root@laptop:/usr/src# sh vmware_server_1_0_10_203137-2.6.36_fix.sh
[==============================================================================]
[ Geos One VMware Server 1.0.x Patchset ]
[==============================================================================]
[ This Patchset is provided as-is ]
[ I am not responsible for any kind of damage created by this patchset ]
[==============================================================================]
[==============================================================================]
[ Preparing Original Vmware Server 1.0.x Modules ]
[==============================================================================]
Unpacking /usr/lib/vmware/modules/source/vmmon.tar.orig:
Unpacking /usr/lib/vmware/modules/source/vmnet.tar.orig:
[==============================================================================]
[ Downloading and/or Unpacking Vmware Server 1.0.x Patchset Version 7 ]
[==============================================================================]
Unpacking /usr/lib/vmware/modules/source/vmware-modules-138.10-genpatches-7.tar.bz2:
[==============================================================================]
[ Apply Vmware Server 1.0.x Module Patchset Version 7 ]
[==============================================================================]
Patching /usr/lib/vmware/modules/source/vmmon.tar.orig:
Patching /usr/lib/vmware/modules/source/vmnet.tar.orig:
apply Patch /usr/lib/vmware/modules/source/patches/100_vmware-modules-138.9-wlan-license-fix-1.patch
patching file vmmon-only/linux/driver.c
Hunk #1 succeeded at 2578 (offset 202 lines).
patching file vmnet-only/bridge.c
Reversed (or previously applied) patch detected! Assume -R? [n]
Apply anyway? [n]
Skipping patch.
2 out of 2 hunks ignored – saving rejects to file vmnet-only/bridge.c.rej
patching file vmnet-only/driver.c
Hunk #1 succeeded at 1825 with fuzz 2 (offset 93 lines).
Patching FAILED! Restoring original /usr/lib/vmware/modules/source/vmmon.tar
Patching FAILED! Restoring original /usr/lib/vmware/modules/source/vmnet.tar
Is this correct?
Tnx
Gianni

nope there is something wrong
it looks like your tars arn’t the original
i would sugest that you clean
/usr/lib/vmware/modules/source/*
and reinstall the vmware server

tnx!
i reinstall vmware server:
vmware-uninstall.pl; vmware-install.pl
than
sh your script..
all patch ok than recompile until reach this error :(
SHIPPED /tmp/vmware-config5/vmnet-only/smac_linux.x386.o
LD [M] /tmp/vmware-config5/vmnet-only/vmnet.o
Building modules, stage 2.
MODPOST 1 modules
WARNING: could not find /tmp/vmware-config5/vmnet-only/.smac_linux.x386.o.cmd for /tmp/vmware-config5/vmnet-only/smac_linux.x386.o
WARNING: “vnetStructureSemaphore” [/tmp/vmware-config5/vmnet-only/vmnet.ko] undefined!
CC /tmp/vmware-config5/vmnet-only/vmnet.mod.o
LD [M] /tmp/vmware-config5/vmnet-only/vmnet.ko
make[1]: Leaving directory `/usr/src/linux-2.6.37′
cp -f vmnet.ko ./../vmnet.o
make: Leaving directory `/tmp/vmware-config5/vmnet-only’
Unable to make a vmnet module that can be loaded in the running kernel:
insmod: error inserting ‘/tmp/vmware-config5/vmnet.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.
For more information on how to troubleshoot module-related problems, please
visit our Web site at “http://www.vmware.com/download/modules/modules.html” and
“http://www.vmware.com/support/reference/linux/prebuilt_modules_linux.html".
Execution aborted.
tnx
Gianni

Very nice! I was quite disappointed, when VMWare told me to patch my kernel. Your script solved this and works like a charme with Debian 6.0.1 and 2.6.32-5-amd64.
Thanks a lot and keep on the good work!

I was having the same problem as Giannai above. I’m using openSUSE 11.4 x64, kernel 2.6.37.
vmmon compiled and insmod ran successfully, but vmnet did not insmod.
I had to patch vmmon-only/compat_semaphore.h:
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
#include <linux/semaphore.h>
#define DECLARE_MUTEX(name) DEFINE_SEMAPHORE(name)
#else
#include <asm/semaphore.h>
#endif
After that, vmware-config.pl completes successfully! After editing /etc/pam.d/vmware-authd (and installing the pam-32bit RPM), I was able to login using the VMware Server Console.

Same issue as below:
————————
make: Leaving directory `/tmp/vmware-config5/vmnet-only’
Unable to make a vmnet module that can be loaded in the running kernel:
insmod: error inserting ‘/tmp/vmware-config5/vmnet.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.
———————
Got this patch from the version 2.0.x patches:
———————-
diff -uprN vmnet-only.orig/compat_semaphore.h vmnet-only/compat_semaphore.h
— vmnet-only.orig/compat_semaphore.h 2011-08-24 17:10:36.000000000 +0200
+++ vmnet-only/compat_semaphore.h 2011-08-24 17:28:42.926000256 +0200
@@ -26,5 +26,21 @@
#endif
#endif
+#if (defined CONFIG_PREEMPT_RT && LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 31)) || LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 37)
+ /*
+ * The -rt patch series changes the name of semaphore/mutex initialization
+ * routines (across the entire kernel). Probably to identify locations that
+ * need to be audited for spinlock vs. true semaphore. We always assumed
+ * true semaphore, so just apply the rename.
+ *
+ * The -rt patchset added the rename between 2.6.29-rt and 2.6.31-rt.
+ */
+ #ifndef DECLARE_MUTEX
+ #define DECLARE_MUTEX(_m) DEFINE_SEMAPHORE(_m)
+ #endif
+ #ifndef init_MUTEX
+ #define init_MUTEX(_m) sema_init(_m,1)
+ #endif
+#endif
#endif /* __COMPAT_SEMAPHORE_H__ */
diff -uprN vmnet-only.orig/driver.c vmnet-only/driver.c
— vmnet-only.orig/driver.c 2011-08-24 17:10:36.000000000 +0200
+++ vmnet-only/driver.c 2011-08-24 17:29:24.109000215 +0200
@@ -91,7 +91,7 @@ static rwlock_t vnetPeerLock = RW_LOCK_U
* For change to peer field you must own both
* vnetStructureSemaphore and vnetPeerLock for write.
*/
-DECLARE_MUTEX(vnetStructureSemaphore);
+DEFINE_SEMAPHORE(vnetStructureSemaphore);
#if defined(VM_X86_64) && !defined(HAVE_COMPAT_IOCTL)
/*

Worked likme charm with VMware Server 1.0.10 on openSuSE 11.2, with latest kernel upgrade kernel-default-2.6.31.14-0.8.1.i586.
GREAT WORK! THANK YOU!!!

I am running vmware-server in gentoo using the go-vmware overlay and recently had to upgrade to kernel-3.0.x line.
Sadly, the patched vmware-modules-138.10 do not compile. I can provide build logs if you are interested. Do you think you could take a look at this and incorporate the patches so that it will work on newer kernels?
Nathan
This post has 23 feedbacks awaiting moderation...