VMware Communities
selinux
Contributor
Contributor

5.5.3 on 2.6.20 kernels (and Fedora development)

I've managed to 'hack' up a workaround for 2.6.20 kernels that seems to work for me with the latest Fedora Core development kernels.

The following patch to vmmon-only/include/compat_kernel.h 'ifdefs away' the definition of _syscall1(). \[I first tried including 'int' type specifiers in the template, but got complaints that _syscall1() was 'static and unused'.]

I'm not sure if this is really correct, so your mileage may vary. Would appreciate comments from those who know better and who can provide a better fix!

Notice that the comparison is 'strictly less than' to cover Fedora's numbering policy. For non-Fedora systems, probably better to make the comparison 'less than or equal'.

tom

\--- compat_kernel.h 2006-11-13 13:06:18.000000000 -0800

\+++ ../../vmmon-only.20/include/compat_kernel.h 2006-12-22 07:02:59.000000000 -0800

@@ -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,6,19)

static inline syscall1(int, compatexit, int, exit_code);

+#endif

/*

Message was edited by:

RDPetruska

Used code tags to keep important whitespace in the patch file.

0 Kudos
37 Replies
wilbur_harvey
Contributor
Contributor

I tried this for my Ubuntu Feisty 2.6.20-2-lowlatency kernel and it seems to work fine. I just commented out the

static inline syscall1(int, compatexit, int, exit_code);

statement.

You have to change the file /usr/lib/vmware/modules/source/vmmon.tar to rw, then extract the file vmmon-only/include/compat_kernel.h, edit it and then put it back in the vmmon.tar file, then run vmware-config.pl

0 Kudos
cslmu
Contributor
Contributor

This patch also seems to work with VMware Workstation 6.0 beta, but there is a second problem

in the vmblock module:

/tmp/vmware-config0/vmblock-only/linux/super.c: In function ‘SuperOpAllocInode’:

/tmp/vmware-config0/vmblock-only/linux/super.c:69: error: ‘SLAB_KERNEL’ undeclared (first use in this function)

SLAB_KERNEL is not defined anymore in the latest linux kernels. It has to be replaced with

GFP_KERNEL. Also ‘kmem_cache_t’ is deprecated and can be replaced with kmem_cache.

The latter currently only gives a warning.

For patching vmblock, you have to untar usr/lib/vmware/modules/source/vmblock.tar,

edit vmblock-only/linux/super.c and tar it again, then run vmware-config.pl

0 Kudos
KevinG
Immortal
Immortal

Hi cslmu,

Thanks for your update you posted in the Workstation 6 beta forum Smiley Happy

0 Kudos
dmitton
Contributor
Contributor

I just tried this fix with the newly released kernel 2.6.20 and VMWare Player 1.0.3 and it worked perfectly ... Thank you!

0 Kudos
compi_hu
Contributor
Contributor

vanilla 2.6.20

config.pl after updating vmmon.tar

.

.

.

make[1]: Leaving directory `/home/compi/work/external/linux-2.6.20'

cp -f vmmon.ko ./../vmmon.o

make: Leaving directory `/tmp/vmware-config4/vmmon-only'

Unable to make a vmmon module that can be loaded in the running kernel:

insmod: error inserting '/tmp/vmware-config4/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.

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.

dmesg | tail output:

\[ 6860.850441] vmmon: module license 'unspecified' taints kernel.

\[ 6860.850865] vmmon: Unknown symbol paravirt_ops

\[ 6860.858171] vmmon: Unknown symbol paravirt_ops

\[ 6939.299576] vmmon: Unknown symbol paravirt_ops

\[ 8225.499845] vmmon: Unknown symbol paravirt_ops

\[ 8225.503837] vmmon: Unknown symbol paravirt_ops

\[ 8470.737513] vmmon: Unknown symbol paravirt_ops

\[ 8616.049167] vmmon: Unknown symbol paravirt_ops

\[ 8616.059930] vmmon: Unknown symbol paravirt_ops

any ideas?

thanks

0 Kudos
arsenicus
Contributor
Contributor

It's working also on debian sarge with the same kernel.

-


The module loads perfectly in the running kernel.----


Thanks a lot!

0 Kudos
KevinG
Immortal
Immortal

Hi compi_hu ,

You enabled Paravirtualization support in your kernel, turn it off

Paravirtualization support

0 Kudos
birdie
Expert
Expert

Has anyone actually tried vmware-any-any-update107.tar.gz ? Smiley Wink

0 Kudos
yoless
Contributor
Contributor

Hi, I just tried vmware-any-any-update108.tar.gz (released yesterday), and it worked fine for me. Kernel is vanilla 2.6.20; now vmware is running perfectly again.

0 Kudos
Packeteer
Contributor
Contributor

yeah, I used the 108 any-any patch and it works now

step 1. make sure its a clean install of vmware

step 2. cd vmware-distrib/ && ./vmware-install.pl - DO NOT RUN vmware-config.pl

step 3. cd vmware-any-any-update108/ && ./runme.pl - say yes to running vmware-config.pl

step 4. Virtualise!

0 Kudos
KevinG
Immortal
Immortal

Patch 108 was just released the other day from Petr Smiley Happy

0 Kudos
anolis
Contributor
Contributor

i don't get this at all

0 Kudos
KevinG
Immortal
Immortal

i don't get this at all

May be you could explain your self in more detail. what is it that you do not understand?

0 Kudos
martijnmoret
Contributor
Contributor

Briljant!

Works for vmware server 1.0.2 on Fedora core 6 with the latest 2.6.20 kernel.

0 Kudos
Dyo2794
Contributor
Contributor

Worked for me FC6 on 2.6.20 kernal VMWARE 5.5.3.....Thanks...

0 Kudos
Robert_Thille
Contributor
Contributor

I had an older install that I had patched manually to get working and all I had to do was:

1: download the VMware-server-1.0.2-39867.i386.rpm

2: click on it to upgrade vmware.

3: download and extract the vmware-any-any-update108.tar.gz package

4: cd into the resulting vmware-any-any-update108 directory and ./runme.pl

5: follow the prompts and get running.

0 Kudos
gr3g
Contributor
Contributor

Also work perfectly on Zenwalk 4.4 and Slackware 11 with new kernel 2.6.20 Smiley Happy

0 Kudos
micy
Contributor
Contributor

I have got FC6 with the kernel of 2.6.20-1.2933.fc6-i686. When I run runme.pl I will get this message:

Building modules, stage 2.

MODPOST 1 modules

CC /tmp/vmware-config7/vmmon-only/vmmon.mod.o

LD /tmp/vmware-config7/vmmon-only/vmmon.ko

make[1]: Leaving directory `/usr/src/kernels/2.6.20-1.2933.fc6-i686'

cp -f vmmon.ko ./../vmmon.o

make: Leaving directory `/tmp/vmware-config7/vmmon-only'

Unable to make a vmmon module that can be loaded in the running kernel:

insmod: error inserting '/tmp/vmware-config7/vmmon.o': -1 Invalid module format

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.

What can I do ? Help me please. I have got (updated) the last version of everything.

0 Kudos
micy
Contributor
Contributor

Hi everybody.

I have success!!!

Be careful. " yum update " offers the different architectures of RPM for kernel and kernel-headers. Before I have got this wrong combinations (586 and 686). It is better to download these RPMs of the same architecture and run

rpm -Uvh file.rpm

Now I have done:

kernel-2.6.20-1.2933.fc6.i686.rpm

kernel-devel-2.6.20-1.2933.fc6.i686.rpm

kernel-headers-2.6.20-1.2933.fc6.i386.rpm

gcc-4.1.1-51.fc6

gcc-c++-4.1.1-51.fc6

vmware-any-any-update108

Installation and compilation of VMware-server have ran with success. You have to watch console or /var/log/messages for any messages when you work over telnet.

Now I want to install some VMs. They will perhaps run OK.

By

0 Kudos