VMware Communities
AzCoderOne
Contributor
Contributor

Workstation 5.5 does not build on 2.6.24 Fedora Rawhide kernel

The newest kernel yields build problems. I have applied any-any-114, but still can not build. I think we need an any-any-115. Here is the output of the build script.

Jim

# vmware-config.pl

Making sure services for VMware Workstation are stopped.

Stopping VMware services:

Virtual machine monitor

Bridged networking on /dev/vmnet0

DHCP server on /dev/vmnet1

Host-only networking on /dev/vmnet1

DHCP server on /dev/vmnet8

NAT service on /dev/vmnet8

Host-only networking on /dev/vmnet8

Virtual ethernet

Configuring fallback GTK+ 2.4 libraries.

In which directory do you want to install the mime type icons?

What directory contains your desktop menu entry files? These files have a

.desktop file extension.

In which directory do you want to install the application's icon?

Trying to find a suitable vmmon module for your running kernel.

None of the pre-built vmmon modules for VMware Workstation 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)?

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?

Extracting the sources of the vmmon module.

Building the vmmon module.

Building for VMware Workstation 5.5.2 or 5.5.3.

Using 2.6.x kernel build system.

make: Entering directory `/tmp/vmware-config3/vmmon-only'

make -C /lib/modules/2.6.24-0.38.rc2.git6.fc9/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules

make[1]: Entering directory `/usr/src/kernels/2.6.24-0.38.rc2.git6.fc9-x86_64'

CC /tmp/vmware-config3/vmmon-only/linux/driver.o

In file included from /tmp/vmware-config3/vmmon-only/./include/vmware.h:25,

from /tmp/vmware-config3/vmmon-only/linux/driver.c:52:

/tmp/vmware-config3/vmmon-only/./include/vm_basic_types.h:168: error: redefinition of typedef ‘uintptr_t’

include/linux/types.h:40: error: previous declaration of ‘uintptr_t’ was here

In file included from /tmp/vmware-config3/vmmon-only/./include/x86.h:23,

from /tmp/vmware-config3/vmmon-only/linux/driver.h:15,

from /tmp/vmware-config3/vmmon-only/linux/driver.c:53:

/tmp/vmware-config3/vmmon-only/./include/x86cpuid.h:381:1: warning: "BIT_MASK" redefined

In file included from include/linux/kernel.h:15,

from /tmp/vmware-config3/vmmon-only/linux/driver.c:15:

include/linux/bitops.h:7:1: warning: this is the location of the previous definition

In file included from /tmp/vmware-config3/vmmon-only/./include/vmci_kernel_defs.h:26,

from /tmp/vmware-config3/vmmon-only/./common/vmciContext.h:19,

from /tmp/vmware-config3/vmmon-only/linux/driver.h:21,

from /tmp/vmware-config3/vmmon-only/linux/driver.c:53:

/tmp/vmware-config3/vmmon-only/./include/compat_wait.h:37:5: warning: "VMW_HAVE_EPOLL" is not defined

/tmp/vmware-config3/vmmon-only/./include/compat_wait.h:43:5: warning: "VMW_HAVE_EPOLL" is not defined

In file included from /tmp/vmware-config3/vmmon-only/./include/vmci_kernel_defs.h:26,

from /tmp/vmware-config3/vmmon-only/./common/vmciContext.h:19,

from /tmp/vmware-config3/vmmon-only/linux/driver.h:21,

from /tmp/vmware-config3/vmmon-only/linux/driver.c:53:

/tmp/vmware-config3/vmmon-only/./include/compat_wait.h:60: error: conflicting types for ‘poll_initwait’

include/linux/poll.h:65: error: previous declaration of ‘poll_initwait’ was here

/tmp/vmware-config3/vmmon-only/linux/driver.c:172: warning: initialization from incompatible pointer type

/tmp/vmware-config3/vmmon-only/linux/driver.c:176: warning: initialization from incompatible pointer type

make[2]: *** Error 1

make[1]: *** Error 2

make[1]: Leaving directory `/usr/src/kernels/2.6.24-0.38.rc2.git6.fc9-x86_64'

make: *** http://vmmon.ko Error 2

make: Leaving directory `/tmp/vmware-config3/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.

Reply
0 Kudos
27 Replies
selinux
Contributor
Contributor

There appear to be some naming conflicts in the source code. I've been working with 6.0.2:

I found conflicts on 'uintptr_t', 'BIT_MASK', etc.

Also appears the 'autoconf' magic is not working for EPOLL and NICE.

After working around all of that, the kernel won't load the module due to an issue with 'pv_mmu_ops'. Believe the kernel guys are working that issue out.

tom

Reply
0 Kudos
clawhead
Contributor
Contributor

I'm getting essentially the same error messages trying to build vmmon for WS 6.02 on kernel 2.6.24-rc3. Guess we'll need to wait for a patch.

<INTROSPECTION> Why do I feel that I have to compile and install the very latest kernel revision (which, incidentally, Patrick Volkerding of Slackware fame calls "sucker kernels")? Is this compensation for not having the latest model car or not living in a fancy house? I don't know.... What's your excuse? All I know is that consequently I almost always have to fix VMware. What sort of sick cycle is this? </INTROSPECTION>

(1) Reboot - McCain (2) Reformat - Clinton (3) Install new OS - Obama
Reply
0 Kudos
selinux
Contributor
Contributor

I guess I'm just a sucker for those shiny new kernels....

Seriously, I find that every now and then, I uncover some issue that needs addressing (I've mostly focussed on the SELinux side, but have found issues with laptop variances).

More on 2.6.24 mod....

I have patches that allow vmmon and vmblock to compile and load. This needed some source code changes to vmmon.tar and vmblock.tar to work around some name collisions, etc., and I had to patch and compile a custom kernel to workaround the 'pv_mmu_ops' issue.

After all this, I'm blocked on vmnet. Looks like at least one kernel API has changed: __dev_get_by_name() seems to need 1 more argument.

Undoubtedly, a serious patch from the vmware gods is needed before vmware will play nicely with 2.6.24....

Reply
0 Kudos
AzCoderOne
Contributor
Contributor

It seems there is a new any-any patch that fixes this build problem. Get it here:

Jim

Reply
0 Kudos
selinux
Contributor
Contributor

This seems not to work for me:

1. vmmon compile error: I get an error regarding including '<asm/bitops.h>' instead of '<linux/bitops.h>'

2. My Fedora Rawhide kernel has pv_mmu_ops defined as GPL, preventing the loading of the module.

I can work around #1 easily, but #2 means building a custom kernel from the sources, with a patch for pv_mmu_ops, etc.

Am I missing something here?

tom

Reply
0 Kudos
carlosrm
Contributor
Contributor

Hello

This version don't work, I execute runme.pl folling by vmware-config and receive this error

Unknown VMware Workstation 6.0.2 build 59824 detected. Building for Workstation 6.0.0.

Using 2.6.x kernel build system.

make: Entering directory `/tmp/vmware-config0/vmmon-only'

make -C /lib/modules/2.6.24-rc3-git3-11-default/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules

make[1]: Entering directory `/usr/src/linux-2.6.24-rc3-git3-11-obj/i386/default'

make -C /usr/src/linux-2.6.24-rc3-git3-11 O=/usr/src/linux-2.6.24-rc3-git3-11-obj/i386/default modules

CC /tmp/vmware-config0/vmmon-only/linux/driver.o

CC /tmp/vmware-config0/vmmon-only/linux/driverLog.o

CC /tmp/vmware-config0/vmmon-only/linux/hostif.o

CC /tmp/vmware-config0/vmmon-only/common/comport.o

CC /tmp/vmware-config0/vmmon-only/common/cpuid.o

In file included from include2/asm/bitops.h:2,

from /tmp/vmware-config0/vmmon-only/./include/vcpuset.h:74,

from /tmp/vmware-config0/vmmon-only/./include/modulecall.h:23,

from /tmp/vmware-config0/vmmon-only/common/vmx86.h:19,

from /tmp/vmware-config0/vmmon-only/common/hostif.h:18,

from /tmp/vmware-config0/vmmon-only/common/cpuid.c:15:

include2/asm/bitops_32.h:9:2: error: #error only <linux/bitops.h> can be included directly

make[4]: *** Error 1

make[3]: *** Error 2

make[2]: *** Error 2

make[1]: *** Error 2

make[1]: Leaving directory `/usr/src/linux-2.6.24-rc3-git3-11-obj/i386/default'

make: *** http://vmmon.ko Error 2

make: Leaving directory `/tmp/vmware-config0/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.

Carlos

Reply
0 Kudos
ayates
Contributor
Contributor

Selinux,

Could you please explain how you would workaround these problems ?

Thanks.

Reply
0 Kudos
clawhead
Contributor
Contributor

I tried any-any-115 yesterday on WS 6.02 with the same negative results.

As much as I like to stay at the forefront of things, I've decided that it's unrealistic to expect VMware to support a kernel that still isn't even released, or at least not as a stable release.

I think I must be growing up ...

(1) Reboot - McCain (2) Reformat - Clinton (3) Install new OS - Obama
Reply
0 Kudos
selinux
Contributor
Contributor

Working around problem #1 (complaint about 'asm/bitops.h'): You need to extract the vmmon.tar file, and update the vcpuset.h file in vmmon-only/include.

Just change the '#include "asm/bitops.h"' to '#include "linux/bitops.h"'

http://You may need to repeat this for vmnet.tar, etc..

Working around the pv_mmu_ops issue is a bit more complex. First you need to get the sources for your kernel. On Fedora, get the kernel source rpm and 'install' it.

Next, you need to patch arch/x86/kernel/paravirt_32.c similar to below, and rebuild.

I believe this is 'not a good patch', that is, is probably going against what is happening in the kernel, but it seems to work until VMWare and the kernel 'make friends' again.

arch/x86/kernel/paravirt_32.c | 4 ++--

1 file changed, 2 insertions(+), 2 deletions(-)

===================================================================

--- a/arch/x86/kernel/paravirt_32.c

+++ b/arch/x86/kernel/paravirt_32.c

@@ -440,8 +440,8 @@ struct pv_mmu_ops pv_mmu_ops = {

};

EXPORT_SYMBOL_GPL(pv_time_ops);

-EXPORT_SYMBOL_GPL(pv_cpu_ops);

-EXPORT_SYMBOL_GPL(pv_mmu_ops);

+EXPORT_SYMBOL (pv_cpu_ops);

+EXPORT_SYMBOL (pv_mmu_ops);

EXPORT_SYMBOL_GPL(pv_apic_ops);

EXPORT_SYMBOL_GPL(pv_info);

EXPORT_SYMBOL (pv_irq_ops);

Reply
0 Kudos
AzCoderOne
Contributor
Contributor

I am using WS 5.5, not 6.0, so I do not know if it works with 6.0. I am also using x86_64 rawhide kernel 2.6.24-0.43.rc3.git1.fc9. It seems you are using x86 kernel. But for x86_64 and WS 5.5 the any-any-115 patch makes everything OK.:8}

Jim

Reply
0 Kudos
ayates
Contributor
Contributor

Selinux,

Thanks, for the explanation. I don't have the "pv_mmu_ops" problem. So, just patching the any-any fixed the "bitops".

I didn't need to patch vmnet.

I also had to patch the iocontrols_compat.h to change the version number from 161 to 167.

Anyway, all is working now.

Thanks again.

Reply
0 Kudos
selinux
Contributor
Contributor

Glad you 'up and running'.

Looks like the 'pv_mmu_ops' issue is being resolved (reverted?) in 2.6.24-rc3-git5:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f97b8954953ba8e692dbb92d...

So there is hope yet!

Reply
0 Kudos
mkossmann
Enthusiast
Enthusiast

Mark Lord has released some patches to make vmware 6.0.1 working on 2.6.24rc on http://rtr.ca/vmware-2.6.24/ . I've tested them with 6.0.2 and they worked for me.

Mightbe they work also with older versions of vmware.

Reply
0 Kudos
ayates
Contributor
Contributor

I can confirm that they also work for Vmplayer.

My config :

Vmplayer version=2.0.2 build=build-59824

Linux hardy 2.6.24-rc3-git3 #1 SMP PREEMPT Wed Nov 28 15:21:55 EST 2007 i686 GNU/Linux

Reply
0 Kudos
docsmooth
Enthusiast
Enthusiast

WS 6.02 and 2.6.24-rc4 also works aftera pplying any-any 115.

Correction - It compiles and starts. But all of my VM's complain about vmmon versions on startup. I've rolled back to 2.6.22 for VM work and 2.6.24 for battery improvements.

Thanks!

Message was edited by: docsmooth

Rob A Deployments PM: www.likewise.com Co-Owner: www.totalnetsolutions.net
Reply
0 Kudos
stefans_1
Contributor
Contributor

http://rtr.ca/vmware-2.6.24 patches posted on previous page works fine for me in Ubuntu Hardy (devel), using kernel 2.6.24-3.

Reply
0 Kudos
dmitton
Contributor
Contributor

First off, let me say that I only seem to come to this forum looking for help after I update my Linux Kernel, so I don't actually contribute much. BUT, I would really like to thank those who do contribute patches and make them available to the community. This is a great forum and I hope you keep up the good work.

The patches supplied work in my stock 2.6.24 kernel under a Knoppix/Debian based installation.

Thanks again!

Reply
0 Kudos
felmasper
Contributor
Contributor

Saw this in

vmware-any-any-update115.tar.gz
Refresh vmblock & vmnet.
Fix build on 2.6.24-rc2,3. 2.6.24-rc1 is not supported, please upgrade.

I'm using Debian unstable, kernel 2.6.24-1-686. Just did the following and successfully compiled:

  • replaced asm/bitops by linux/bitops in vmmon

  • ran the command: m-a --not-unpack --force --text-mode --userdir /l/down/vmware-any-any build vmware-any-any-kernel-source

The --not-unpack clause is needed so module-assistant does not overwrite the patched file.

Reply
0 Kudos
baba_yaga
Contributor
Contributor

The same problem under 2.6.24 kernel on Mandriva 2008.1, see https://qa.mandriva.com/show_bug.cgi?id=40030

vmware people, please, this is the main kernel of 2008.1 distro!

Reply
0 Kudos