April 18, 2010: I updated the patch with the modifications suggested by Andrea. The problems in building the vmci module on the x86_64 architecture are fixed now.
I released a new patch for VMware Server 2.0.2 which brings some improvements, adds support for newer versions of the Linux kernel and fixes all the problems mentioned in the previous post. The patch was made to be the least intrusive as possible in the VMware Server 2.0.2 code. It was tested on Ubuntu 9.10 (2.6.31-17-generic) and Fedora 12 (2.6.32.10-90.fc12).
The patch has the following features:
- Add support for versions of the Linux Kernel that implement COW credentials.
- Add support for net_device_ops structure.
- Add support for netdev_priv().
- Remove references to init_mm structure by removing APIC support for 2.6.25 and later (APIC code currently uses the macro pgd_offset_k).
- Suppress GCC warnings.
- Fix the vsock use of exported symbols from from vmci module problem.
- Fix the ether_setup() (misplaced) problem introduced by the previous patch (the NAT network connection problem).
- Fix other known issues.
The following are instructions on how to apply the patch:
Download the VMware Server (VMware-server-2.0.2-203138.i386.tar.gz).
Download the VMware Server 2 update patch #2:
$ wget -N http://risesecurity.org/~rcvalle/VMware-server-2.0.2-203138-update-2.patch
Extract VMware Server:
$ tar -xzf VMware-server-2.0.2-203138.i386.tar.gz
Extract VMware Server modules:
Change working directory to vmware-server-distrib/lib/modules/source/ $ tar -xf vmci.tar $ tar -xf vmmon.tar $ tar -xf vmnet.tar $ tar -xf vsock.tar
Apply the patch:
Change working directory to vmware-server-distrib/ patch -p1 < ../VMware-server-2.0.2-203138-update-2.patch
Archive VMware Server modules again:
Change working directory to vmware-server-distrib/lib/modules/source/ $ rm -f vmci.tar $ rm -f vmmon.tar $ rm -f vmnet.tar $ rm -f vsock.tar $ tar -cf vmci.tar vmci-only/ $ tar -cf vmmon.tar vmmon-only/ $ tar -cf vmnet.tar vmnet-only/ $ tar -cf vsock.tar vsock-only/
Run installer script as root:
Change working directory to vmware-server-distrib/ $ sudo ./vmware-install.pl
Note for Ubuntu users:
When asked for the current administrative user for VMware Server, specify your user as a different administrator.
Note about VMware Remote Console Plug-in:
The VMware Remote Console Plug-in does not work properly on Ubuntu 9.10, Fedora 12 and other newer distributions. A workaround for this is to set the environment variable VMWARE_USE_SHIPPED_GTK before running the VMware Remote Console Plug-in. To set this environment variable at login time, add the following line to your ~/.profile:
export VMWARE_USE_SHIPPED_GTK=yes
Worked like a charm !
- Ubuntu 10.04 Lucid , 64bit
- VMWare server 2.0.2 64bit ( VMware-server-2.0.2-203138.x86_64.tar.gz )
Thanks a million !
You don’t know how long I have been looking for this solution! I have been trying to have Ubuntu 10.04 64Bit and VMWare Server 2.0.2 64Bit to play nice. Finally! EXCELLENT WORK! My hat of to you!!!!!!
[...] you seen this? I haven't tried it on 2.6.34, but it does work on the stock 2.6.33 [...]
[...] tricky on OpenSuSE and other Linux systems. However there is a very good walkthrough over at RiseSecurity that makes it as painless as it can be until someone writes an automatic method. It seems to be [...]
Thank you for the fix. I’m running Novell SLED 11 and installed sp1 and pow my vms went bye-bye. I tried the other patch and no go finally stumbled across yours and it fixed it right. Damn need for Windows.
Wow! Thank you for this fix. I couldn’t get VMware server working on Debian Lenny due to errors with the vsock kernel module, and after applying your patch it works like a dream. Thanks again and keep up the good work!
Edit: And for anyone suffering from the blank page problem when you try to manage VMware server, just enable SSLv2 in your browser, as described at http://www.rootz.de/2010/05/vmware-2-x-kein-zugriff-auf-die-weboberflache-moglich-loading/
Great!!! It’s finally works for me.
Debian linux.2.6.34-amd64
VMware-server-2.0.2
Take care
Thank you _so_ much for the integration work and the write-up. It helped me a lot and got me up and running very soon after having shot myself in the knee with a host system upgrade.
hi
link to http://risesecurity.org/~rcvalle/VMware-server-2.0.2-203138-update-2.patch is notices as forbidden!
OH Man am I happy I found this!! Thank you so much for the script & patches!!!, I was having a hard time. …One question. I forgot to set a root password for the VMware server is there a default root password?
Or do i have to reinstall and set the password?
OK so I read lot of pages I had to reset the root password in ubuntu then I could login to VM server. GREAT PATCH
thank you !
John
This happens everytime I cold start the host machine.
I have applied this patch.
Any suggestions would be greatly appreciated.
Thanks
root@i7Ubuntu:/etc/init.d# vmware
@@PRODUCT_NAME@@ is installed, but it has not been (correctly) configured
for the running kernel. To (re-)configure it, invoke the
following command: /usr/bin/vmware-config.pl.
root@i7Ubuntu:/etc/init.d# /usr/bin/vmware-config.pl
The following VMware kernel modules have been found on your system that were
not installed by the VMware Installer. Please remove them then run this
installer again.
vmmon
vmci
vmnet
I.e. – ‘rm /lib/modules/2.6.32-23-server/misc/.{o,ko}’
Execution aborted.
root@i7Ubuntu:/etc/init.d#
This the best solution yet. so easy. I was fooling around with these fixes all night. This one only took a couple of min.
Just installed VMware Server 2.0.2 build-203138 after patching on Ubuntu 10.4 32bit. Thanks!
you rock for this, thank you so much.
my personal home vmware server has been down for a while. i’ve been living without, but no more.
Thx so many times, man!
None of the pre-built vmnet modules for VMware Server is suitable for your
running kernel. Do you want this program to try to build the vmnet module for
your system (you need to have a C compiler installed on your system)? [yes]
Extracting the sources of the vmnet module.
Building the vmnet module.
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config3/vmnet-only’
make -C /lib/modules/2.6.32-24-generic-pae/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.32-24-generic-pae’
CC [M] /tmp/vmware-config3/vmnet-only/driver.o
CC [M] /tmp/vmware-config3/vmnet-only/hub.o
CC [M] /tmp/vmware-config3/vmnet-only/userif.o
CC [M] /tmp/vmware-config3/vmnet-only/netif.o
CC [M] /tmp/vmware-config3/vmnet-only/bridge.o
CC [M] /tmp/vmware-config3/vmnet-only/filter.o
CC [M] /tmp/vmware-config3/vmnet-only/procfs.o
CC [M] /tmp/vmware-config3/vmnet-only/smac_compat.o
CC [M] /tmp/vmware-config3/vmnet-only/smac.o
CC [M] /tmp/vmware-config3/vmnet-only/vnetEvent.o
CC [M] /tmp/vmware-config3/vmnet-only/vnetUserListener.o
LD [M] /tmp/vmware-config3/vmnet-only/vmnet.o
Building modules, stage 2.
MODPOST 1 modules
CC /tmp/vmware-config3/vmnet-only/vmnet.mod.o
LD [M] /tmp/vmware-config3/vmnet-only/vmnet.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-24-generic-pae’
cp -f vmnet.ko ./../vmnet.o
make: Leaving directory `/tmp/vmware-config3/vmnet-only’
Unable to make a vmnet module that can be loaded in the running kernel:
insmod: error inserting ‘/tmp/vmware-config3/vmnet.o’: -1 File exists
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/go/unsup-linux-products” and
“http://www.vmware.com/go/unsup-linux-tools”.
Execution aborted.
Housekeeping…
Thank you for using the script!
Patch provided by:
Ramon de Carvalho Valle
http://risesecurity.org
Script author:
Radu Cotescu
http://radu.cotescu.com
Hi Ramon,
Before I got this message, I uninstalled my working vmware server installation because the console plugin was not working for some reason (but i could RDP into my windows VM). Then i used your script to install everything again but i got this above error message when compiling the vmnet module, my current kernel is 2.6.32-24-generic-pae. Any ideas on how to make it work again using your script?
Thanks.
Thanks man n be blessed for this.. wondering why Vmware cannot do this themselves….
am out.
i actually had to reboot my PC, then everything compiles and i was able to install vmware again.
many thanks!!!!
I had no idea how to get it running
Victor
Thanks a lot for a great job!
I just managed to make vmware-server2 run again under gentoo with kernel 2.6.32 by replacing the kernel modules created by gentoo/portage with the ones created after applying your patch.
Kept my from downgrading the kernel. Thanks again.
Thanks a lot for all the information…I however am having a heck of a time installing the patch.
This is my line that I type in.
~/Desktop/vmware-server-distrib$ sudo patch -p1 < ../VMware-server-2.0.2-203138-update-2.patch
This is the response I get:
bash: ../VMware-server-2.0.2-203138-update-2.patch: No such file or directory
When I manually look in the vmware-server-distrib folder I see the patch.
Any other suggestions
???
Stuck and too stubborn to give up!
Currently have ubunto 10.4.1 x64 installed
Cory
Thanks tons. Big help.
I just wanted to say like many other here I’ve been beating myself about the head and face looking for a way to get VMware Server to load on Fedora Core 12 64-bit until this….VMware should write you a check in the 7-digit range for relieving so much of the pain of people like myself who aren’t well versed enough to work through getting their product to work. I can’t give you enough thanks and gratitude for this because of it a huge weight has been lifted off of me
Hi,
using ubuntu 10.4 server 64bit with xubuntu gui
installing VMWare server 2.0.2 64bit ( VMware-server-2.0.2-203138.x86_64.tar.
when running:
patch -p1 < ../VMware-server-2.0.2-203138-update-2.patch
I get the message:
**** strip count l is not a number
when recompiling the kernel:
Do you accept? (yes/no) yes
Thank you.
None of the pre-built vmmon modules for VMware Server is suitable for your
running kernel. Do you want this program to try to build the vmmon module for
your system (you need to have a C compiler installed on your system)? [yes]
Using compiler "/usr/bin/gcc". Use environment variable CC to override.
What is the location of the directory of C header files that match your running
kernel? [/lib/modules/2.6.32-24-server/build/include]
Extracting the sources of the vmmon module.
Building the vmmon module.
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config2/vmmon-only'
make -C /lib/modules/2.6.32-24-server/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.32-24-server'
CC [M] /tmp/vmware-config2/vmmon-only/linux/driver.o
In file included from /tmp/vmware-config2/vmmon-only/linux/driver.c:31:
/tmp/vmware-config2/vmmon-only/./include/compat_wait.h:78: error: conflicting types for ‘poll_initwait’
include/linux/poll.h:70: note: previous declaration of ‘poll_initwait’ was here
In file included from /tmp/vmware-config2/vmmon-only/./include/vmware.h:38,
from /tmp/vmware-config2/vmmon-only/linux/driver.c:99:
/tmp/vmware-config2/vmmon-only/./include/vm_basic_types.h:108:7: warning: "__FreeBSD__" is not defined
In file included from /tmp/vmware-config2/vmmon-only/./common/vmx86.h:32,
from /tmp/vmware-config2/vmmon-only/linux/driver.h:29,
from /tmp/vmware-config2/vmmon-only/linux/driver.c:101:
/tmp/vmware-config2/vmmon-only/./include/x86msr.h:164:1: warning: "MSR_THERM2_CTL" redefined
In file included from /usr/src/linux-headers-2.6.32-24-server/arch/x86/include/asm/msr.h:4,
from /usr/src/linux-headers-2.6.32-24-server/arch/x86/include/asm/processor.h:21,
from include/linux/prefetch.h:14,
from include/linux/list.h:6,
from include/linux/module.h:9,
from /tmp/vmware-config2/vmmon-only/./include/compat_module.h:27,
from /tmp/vmware-config2/vmmon-only/linux/driver.c:26:
/usr/src/linux-headers-2.6.32-24-server/arch/x86/include/asm/msr-index.h:228:1: warning: this is the location of the previous definition
In file included from /tmp/vmware-config2/vmmon-only/./include/vcpuset.h:103,
from /tmp/vmware-config2/vmmon-only/./include/modulecall.h:37,
from /tmp/vmware-config2/vmmon-only/./common/vmx86.h:33,
from /tmp/vmware-config2/vmmon-only/linux/driver.h:29,
from /tmp/vmware-config2/vmmon-only/linux/driver.c:101:
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:329:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:333:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:401:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:407:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:460:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:506:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:551:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:595:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:640:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:684:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:729:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:773:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:775:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:816:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:860:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:862:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:903:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:945:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:947:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:986:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:1028:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:1030:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:1069:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:1223:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:1227:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:1313:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:1536:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:1663:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:1796:7: warning: "_MSC_VER" is not defined
In file included from /tmp/vmware-config2/vmmon-only/./include/vm_asm_x86_64.h:39,
from /tmp/vmware-config2/vmmon-only/./include/vm_asm.h:41,
from /tmp/vmware-config2/vmmon-only/linux/driver.c:103:
/tmp/vmware-config2/vmmon-only/./include/vm_asm_x86.h:486:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_asm_x86.h:779:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_asm_x86.h:820:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_asm_x86.h:922:7: warning: "_MSC_VER" is not defined
In file included from /tmp/vmware-config2/vmmon-only/./include/vm_asm.h:41,
from /tmp/vmware-config2/vmmon-only/linux/driver.c:103:
/tmp/vmware-config2/vmmon-only/./include/vm_asm_x86_64.h:56:7: warning: "_MSC_VER" is not defined
In file included from /tmp/vmware-config2/vmmon-only/linux/driver.c:119:
/tmp/vmware-config2/vmmon-only/./common/hostif.h:53:7: warning: "WINNT_DDK" is not defined
/tmp/vmware-config2/vmmon-only/linux/driver.c: In function ‘LinuxDriverSyncCallOnEachCPU’:
/tmp/vmware-config2/vmmon-only/linux/driver.c:1423: error: too many arguments to function ‘smp_call_function’
/tmp/vmware-config2/vmmon-only/linux/driver.c: In function ‘LinuxDriver_Ioctl’:
/tmp/vmware-config2/vmmon-only/linux/driver.c:1987: error: ‘struct task_struct’ has no member named ‘euid’
/tmp/vmware-config2/vmmon-only/linux/driver.c:1987: error: ‘struct task_struct’ has no member named ‘uid’
/tmp/vmware-config2/vmmon-only/linux/driver.c:1988: error: ‘struct task_struct’ has no member named ‘fsuid’
/tmp/vmware-config2/vmmon-only/linux/driver.c:1988: error: ‘struct task_struct’ has no member named ‘uid’
/tmp/vmware-config2/vmmon-only/linux/driver.c:1989: error: ‘struct task_struct’ has no member named ‘egid’
/tmp/vmware-config2/vmmon-only/linux/driver.c:1989: error: ‘struct task_struct’ has no member named ‘gid’
/tmp/vmware-config2/vmmon-only/linux/driver.c:1990: error: ‘struct task_struct’ has no member named ‘fsgid’
/tmp/vmware-config2/vmmon-only/linux/driver.c:1990: error: ‘struct task_struct’ has no member named ‘gid’
/tmp/vmware-config2/vmmon-only/linux/driver.c:2007: error: too many arguments to function ‘smp_call_function’
make[2]: *** [/tmp/vmware-config2/vmmon-only/linux/driver.o] Error 1
make[1]: *** [_module_/tmp/vmware-config2/vmmon-only] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-24-server'
make: *** [vmmon.ko] Error 2
make: Leaving directory `/tmp/vmware-config2/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/go/unsup-linux-products" and
"http://www.vmware.com/go/unsup-linux-tools".
Execution aborted.
Previous comments