VMware Communities
Krellan
Enthusiast
Enthusiast

Here is patch for Workstation 6.5.2 on Linux 2.6.29 kernel

Here we go again, with VMware Workstation 6.5.2 (including VMware Player 2.5.2).

Here is a patch to get their modules to cleanly build on Linux kernel version 2.6.29.

It's a followup from this earlier thread, that was for the earlier 6.5.1 version:

http://communities.vmware.com//thread/202340

The changes between 6.5.1 and 6.5.2 are minimal. VMware, thankfully, no longer attempts to re-define the APIC_BASE_MSR symbol, making one part of the patch no longer necessary on 2.6.29, so it has been removed. That was what was causing the earlier error: the patch was attempting to patch something that no longer existed in the code.

Here's the new 6.5.2 patch, and a shellscript to help you apply it, attached.

Make sure your /usr/lib/vmware/modules/source directory is pristine. Reinstall 6.5.2 if you have to, in order to return this directory to its unchanged settings, if you had trouble applying the patch earlier.

Use the bash command to run the script:

bash ./vmware-6.5.2-modules-2.6.29-fix.sh

It should now apply cleanly, and there should be no errors.

Hope this helps!

Josh

0 Kudos
90 Replies
Krellan
Enthusiast
Enthusiast

fw114: It does feel weird to be doing VMware's job for them.

You're right, VMware should be aware of the latest Linux kernels and at least try to keep up. It usually takes fewer than one day of effort to make a patch, and probably less if one is already familiar with the VMware code. 2.6.30 is right around the corner Smiley Happy

0 Kudos
birdie
Expert
Expert

It sucks not to get the direct support from VMWare on that matter, anyway your help is highly appreciated.

Thank you very much for the excellent script (I really liked your bash programming style - it's clear and easily comprehensible) and patches, everything worked just fine!

Keep up your great work. I suppose once 2.6.30 is out new incompatibilities appear and you'll have to slightly rework your patches.

0 Kudos
maestrodata
Contributor
Contributor

I just installed your patch on my Ubuntu 9.04 System with the 2.6.29.1 Kernel and it's working!!

( It wouldn't be working without it )

THANK YOU!!

Tim

0 Kudos
barraski
Contributor
Contributor

Have anyone produced a patch for 2.6.30 yet?

I know it's still on RC2 state, but I've just upgrade to Ubuntu 9.04 and had to install 2.6.30-020630rc2 in order to get any decent i910 graphics performance and, of course, vmware modules compilation does not work (using vmware workstation 6.5.1).

Has anyone tried the patch for 6.5.2/2.6.29 on 2.6.30-rc2?

I'm willing to beta test any patch provided.

Thanks a lot

0 Kudos
dimedroli4
Contributor
Contributor

Hi,

I am try to compile VMware-Workstation-6.5.2 buil 156735 with your patch as you have specified, and result is not fair:

  1. ls -al

total 3356

drwxr-xr-x 2 root root 4096 Apr 29 09:24 .

drwxr-xr-x 4 root root 4096 Apr 29 09:21 ..

-rw-rr 1 root root 317440 Apr 29 09:21 vmblock.tar

-rw-rr 1 root root 655360 Apr 29 09:21 vmci.tar

-rw-rr 1 root root 1034240 Apr 29 09:21 vmmon.tar

-rw-rr 1 root root 798720 Apr 29 09:21 vmnet.tar

-rw-rr 1 root root 51200 Apr 29 09:21 vmppuser.tar

-rw-rr 1 root root 9307 Apr 29 09:24 vmware-6.5.2-modules-2.6.29-fix.patch

-rw-rr 1 root root 3495 Apr 29 09:24 vmware-6.5.2-modules-2.6.29-fix.sh

-rw-rr 1 root root 522240 Apr 29 09:21 vsock.tar

  1. sh vmware-6.5.2-modules-2.6.29-fix.sh

Found tar file for vmppuser module

Found tar file for vmnet module

Found tar file for vmci module

Found tar file for vsock module

Found tar file for vmmon module

Found tar file for vmblock module

Using patch file: /usr/lib/vmware/modules/source/vmware-6.5.2-modules-2.6.29-fix.patch

Using module directory: /usr/lib/vmware/modules/source

Using backup directory: /usr/lib/vmware/modules/source-backup

Backing up ./vmppuser.tar to /usr/lib/vmware/modules/source-backup/./vmppuser.tar

Backing up ./vmnet.tar to /usr/lib/vmware/modules/source-backup/./vmnet.tar

Backing up ./vmci.tar to /usr/lib/vmware/modules/source-backup/./vmci.tar

Backing up ./vsock.tar to /usr/lib/vmware/modules/source-backup/./vsock.tar

Backing up ./vmmon.tar to /usr/lib/vmware/modules/source-backup/./vmmon.tar

Backing up ./vmblock.tar to /usr/lib/vmware/modules/source-backup/./vmblock.tar

Untarring vmppuser.tar

Untarring vmnet.tar

Untarring vmci.tar

Untarring vsock.tar

Untarring vmmon.tar

Untarring vmblock.tar

Testing patch

patching file vmblock-only/Makefile

patching file vmci-only/Makefile

patching file vmmon-only/include/x86apic.h

patching file vmmon-only/linux/driver.c

patching file vmmon-only/linux/hostif.c

patching file vmmon-only/Makefile

patching file vmnet-only/Makefile

patching file vmnet-only/netif.c

patching file vsock-only/Makefile

Applying patch!

patching file vmblock-only/Makefile

patching file vmci-only/Makefile

patching file vmmon-only/include/x86apic.h

patching file vmmon-only/linux/driver.c

patching file vmmon-only/linux/hostif.c

patching file vmmon-only/Makefile

patching file vmnet-only/Makefile

patching file vmnet-only/netif.c

patching file vsock-only/Makefile

Preparing new tar file for vmppuser module

Preparing new tar file for vmnet module

Preparing new tar file for vmci module

Preparing new tar file for vsock module

Preparing new tar file for vmmon module

Preparing new tar file for vmblock module

Trying to compile vmnet module to see if it works

Using 2.6.x kernel build system.

make -C /lib/modules/2.6.29.1/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules

make[1]: Entering directory `/home/dimedrol/kernels/linux-2.6.29'

CC /usr/lib/vmware/modules/source/vmnet-only/driver.o

CC /usr/lib/vmware/modules/source/vmnet-only/hub.o

CC /usr/lib/vmware/modules/source/vmnet-only/userif.o

CC /usr/lib/vmware/modules/source/vmnet-only/netif.o

CC /usr/lib/vmware/modules/source/vmnet-only/bridge.o

CC /usr/lib/vmware/modules/source/vmnet-only/filter.o

CC /usr/lib/vmware/modules/source/vmnet-only/procfs.o

CC /usr/lib/vmware/modules/source/vmnet-only/smac_compat.o

CC /usr/lib/vmware/modules/source/vmnet-only/smac.o

CC /usr/lib/vmware/modules/source/vmnet-only/vnetEvent.o

CC /usr/lib/vmware/modules/source/vmnet-only/vnetUserListener.o

LD /usr/lib/vmware/modules/source/vmnet-only/vmnet.o

Building modules, stage 2.

MODPOST 1 modules

CC /usr/lib/vmware/modules/source/vmnet-only/vmnet.mod.o

LD /usr/lib/vmware/modules/source/vmnet-only/vmnet.ko

make[1]: Leaving directory `/home/dimedrol/kernels/linux-2.6.29'

make -C $PWD SRCROOT=$PWD/. postbuild

make[1]: Entering directory `/usr/lib/vmware/modules/source/vmnet-only'

make[1]: `postbuild' is up to date.

make[1]: Leaving directory `/usr/lib/vmware/modules/source/vmnet-only'

cp -f vmnet.ko ./../vmnet.o

Trying to compile vmci module to see if it works

Using 2.6.x kernel build system.

make -C /lib/modules/2.6.29.1/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules

make[1]: Entering directory `/home/dimedrol/kernels/linux-2.6.29'

CC /usr/lib/vmware/modules/source/vmci-only/linux/driver.o

CC /usr/lib/vmware/modules/source/vmci-only/linux/driverLog.o

CC /usr/lib/vmware/modules/source/vmci-only/linux/vmciKernelIf.o

CC /usr/lib/vmware/modules/source/vmci-only/common/vmciContext.o

CC /usr/lib/vmware/modules/source/vmci-only/common/vmciDatagram.o

CC /usr/lib/vmware/modules/source/vmci-only/common/vmciDriver.o

CC /usr/lib/vmware/modules/source/vmci-only/common/vmciDs.o

CC /usr/lib/vmware/modules/source/vmci-only/common/vmciEvent.o

CC /usr/lib/vmware/modules/source/vmci-only/common/vmciGroup.o

CC /usr/lib/vmware/modules/source/vmci-only/common/vmciHashtable.o

CC /usr/lib/vmware/modules/source/vmci-only/common/vmciProcess.o

CC /usr/lib/vmware/modules/source/vmci-only/common/vmciQueuePair.o

CC /usr/lib/vmware/modules/source/vmci-only/common/vmciResource.o

LD /usr/lib/vmware/modules/source/vmci-only/vmci.o

Building modules, stage 2.

MODPOST 1 modules

CC /usr/lib/vmware/modules/source/vmci-only/vmci.mod.o

LD /usr/lib/vmware/modules/source/vmci-only/vmci.ko

make[1]: Leaving directory `/home/dimedrol/kernels/linux-2.6.29'

make -C $PWD SRCROOT=$PWD/. postbuild

make[1]: Entering directory `/usr/lib/vmware/modules/source/vmci-only'

cp -f /usr/lib/vmware/modules/source/vmci-only/./Module.symvers /tmp/VMwareVMCIModule.symvers

make[1]: Leaving directory `/usr/lib/vmware/modules/source/vmci-only'

cp -f vmci.ko ./../vmci.o

Trying to compile vsock module to see if it works

Using 2.6.x kernel build system.

Building VMCI Sockets with VMCI module symbols.

cp -f /tmp/VMwareVMCIModule.symvers ./Module.symvers

make -C /lib/modules/2.6.29.1/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules

make[1]: Entering directory `/home/dimedrol/kernels/linux-2.6.29'

CC /usr/lib/vmware/modules/source/vsock-only/linux/af_vsock.o

CC /usr/lib/vmware/modules/source/vsock-only/linux/driverLog.o

CC /usr/lib/vmware/modules/source/vsock-only/linux/util.o

CC /usr/lib/vmware/modules/source/vsock-only/linux/vsockAddr.o

LD /usr/lib/vmware/modules/source/vsock-only/vsock.o

Building modules, stage 2.

MODPOST 1 modules

CC /usr/lib/vmware/modules/source/vsock-only/vsock.mod.o

LD /usr/lib/vmware/modules/source/vsock-only/vsock.ko

make[1]: Leaving directory `/home/dimedrol/kernels/linux-2.6.29'

make -C $PWD SRCROOT=$PWD/. postbuild

make[1]: Entering directory `/usr/lib/vmware/modules/source/vsock-only'

make[1]: `postbuild' is up to date.

make[1]: Leaving directory `/usr/lib/vmware/modules/source/vsock-only'

cp -f vsock.ko ./../vsock.o

Trying to compile vmmon module to see if it works

Using 2.6.x kernel build system.

make -C /lib/modules/2.6.29.1/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules

make[1]: Entering directory `/home/dimedrol/kernels/linux-2.6.29'

CC /usr/lib/vmware/modules/source/vmmon-only/linux/driver.o

CC /usr/lib/vmware/modules/source/vmmon-only/linux/driverLog.o

CC /usr/lib/vmware/modules/source/vmmon-only/linux/hostif.o

CC /usr/lib/vmware/modules/source/vmmon-only/common/comport.o

CC /usr/lib/vmware/modules/source/vmmon-only/common/cpuid.o

CC /usr/lib/vmware/modules/source/vmmon-only/common/hashFunc.o

CC /usr/lib/vmware/modules/source/vmmon-only/common/memtrack.o

CC /usr/lib/vmware/modules/source/vmmon-only/common/phystrack.o

CC /usr/lib/vmware/modules/source/vmmon-only/common/task.o

CC /usr/lib/vmware/modules/source/vmmon-only/common/vmx86.o

CC /usr/lib/vmware/modules/source/vmmon-only/vmcore/moduleloop.o

LD /usr/lib/vmware/modules/source/vmmon-only/vmmon.o

Building modules, stage 2.

MODPOST 1 modules

CC /usr/lib/vmware/modules/source/vmmon-only/vmmon.mod.o

LD /usr/lib/vmware/modules/source/vmmon-only/vmmon.ko

make[1]: Leaving directory `/home/dimedrol/kernels/linux-2.6.29'

make -C $PWD SRCROOT=$PWD/. postbuild

make[1]: Entering directory `/usr/lib/vmware/modules/source/vmmon-only'

make[1]: `postbuild' is up to date.

make[1]: Leaving directory `/usr/lib/vmware/modules/source/vmmon-only'

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

Trying to compile vmblock module to see if it works

Using 2.6.x kernel build system.

make -C /lib/modules/2.6.29.1/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules

make[1]: Entering directory `/home/dimedrol/kernels/linux-2.6.29'

CC /usr/lib/vmware/modules/source/vmblock-only/linux/block.o

CC /usr/lib/vmware/modules/source/vmblock-only/linux/control.o

CC /usr/lib/vmware/modules/source/vmblock-only/linux/dbllnklst.o

CC /usr/lib/vmware/modules/source/vmblock-only/linux/dentry.o

CC /usr/lib/vmware/modules/source/vmblock-only/linux/file.o

CC /usr/lib/vmware/modules/source/vmblock-only/linux/filesystem.o

CC /usr/lib/vmware/modules/source/vmblock-only/linux/inode.o

CC /usr/lib/vmware/modules/source/vmblock-only/linux/module.o

CC /usr/lib/vmware/modules/source/vmblock-only/linux/stubs.o

CC /usr/lib/vmware/modules/source/vmblock-only/linux/super.o

LD /usr/lib/vmware/modules/source/vmblock-only/vmblock.o

Building modules, stage 2.

MODPOST 1 modules

CC /usr/lib/vmware/modules/source/vmblock-only/vmblock.mod.o

LD /usr/lib/vmware/modules/source/vmblock-only/vmblock.ko

make[1]: Leaving directory `/home/dimedrol/kernels/linux-2.6.29'

make -C $PWD SRCROOT=$PWD/. postbuild

make[1]: Entering directory `/usr/lib/vmware/modules/source/vmblock-only'

make[1]: `postbuild' is up to date.

make[1]: Leaving directory `/usr/lib/vmware/modules/source/vmblock-only'

cp -f vmblock.ko ./../vmblock.o

Replacing original file vmppuser.tar with patched file

Replacing original file vmnet.tar with patched file

Replacing original file vmci.tar with patched file

Replacing original file vsock.tar with patched file

Replacing original file vmmon.tar with patched file

Replacing original file vmblock.tar with patched file

Done!

I have changed the files in here:

/usr/lib/vmware/modules/source

I have placed a backup of the original files in here:

/usr/lib/vmware/modules/source-backup

The original VMware modules directory is still in the way.

Please move this directory somewhere else, because it confuses VMware:

/usr/lib/vmware/modules/binary

This command should work now, to install the modules:

vmware-modconfig --console --install-all

  1. mv /usr/lib/vmware/modules/binary /usr/lib/vmware/modules/binary.old

  2. vmware-modconfig --console --install-all

gcc and kernel headers must be installed

I use 2.6.29.1 linux kernel

Can you help me?

0 Kudos
Krellan
Enthusiast
Enthusiast

dimedroli4: That's a strange error you're getting from vmware-modconfig. I don't know what the problem would be. For some reason, it thinks your gcc and kernel headers aren't installed. That's not true, of course, because otherwise you wouldn't have been able to compile the VMware modules with the patch at all. Strange. Hopefully somebody else knows how to fix the problem with vmware-modconfig.

0 Kudos
penshi
Contributor
Contributor

Thanks a lot for this patch !

0 Kudos
fluxbox
Contributor
Contributor

man this patch just perfect, saved us a lot of time. U should be the director of that company u so own!

argos66
Contributor
Contributor

Hello,

If the VMware Player has no difference with Workstation, here is a source directory for compile on 2.6.30 :

http://communities.vmware.com/thread/208478

Bye,

0 Kudos
Krellan
Enthusiast
Enthusiast

I recently had some time to work on VMware again.

Here is the patch for the Linux 2.6.30 kernel:

http://communities.vmware.com/thread/208963

I tested this on Linux 2.6.30-rc4 and it works.

Hope this helps all the people who have been asking for a 2.6.30 patch!

Josh

0 Kudos
rootkit85
Contributor
Contributor

Nice one

0 Kudos
techlive
Contributor
Contributor

Does anyone notice that there are many 'Undefined' Warnnings when 'Using 2.6.x kernel build system. Building VMCI Sockets with VMCI module symbols.' . Enven throuth it doesn't matter at all,but i think it not so perfect,can it be fixed?

it says:

__FreeBSD__

MSCVER

undifined

0 Kudos
Emsi
Contributor
Contributor

I'm using ESX and it provides only vmware-tools 3.5.0. Where I can find the proper tools I could patch for 2.6.29?

0 Kudos
Implaer
Contributor
Contributor

Krellan[/b]

great personal pleasure. The patch works on kernel 2.6.29.4 amd64

0 Kudos
hamannboy
Contributor
Contributor

I'm trying the latest Workstation 6.5.2 on Fedora 11 (2.6.29.4-167.fc11.x86_64) but I get this errors several times when running your script (vmware-6.5.2-modules-2.6.29-fix.sh):

warning: "_MSC_VER" is not defined

warning: "__FreeBSD__" is not defined

As a result the script doesn't do the magic.

Searching on google did me believe it has something to do with (non) installed packages, so I did this command "yum list * kernel *" and got this:

Loaded plugins: refresh-packagekit

Installed Packages

kernel.x86_64 2.6.29.4-167.fc11 installed

kernel-debug.x86_64 2.6.29.4-167.fc11 installed

kernel-debug-devel.x86_64 2.6.29.4-167.fc11 installed

kernel-devel.x86_64 2.6.29.4-167.fc11 installed

kernel-doc.noarch 2.6.29.4-167.fc11 installed

kernel-firmware.noarch 2.6.29.4-167.fc11 installed

kernel-headers.x86_64 2.6.29.4-167.fc11 installed

kerneloops.x86_64 0.12-5.fc11 installed

Available Packages

abrt-plugin-kerneloops.x86_64 0.0.3-1.fc11 fedora

abrt-plugin-kerneloopsreporter.x86_64 0.0.3-1.fc11 fedora

arm-gp2x-linux-kernel-headers.noarch 2.6.12.0-3.fc11 fedora

What should I do?

Thanks!

UPDATE : rebooted and did the command "vmware-modconfig --console --install-all" which DID work now! I'm such a newbie! Thanks a lot!

UPDATE2 : VMware itself seems to work, but my virtual machine doesn 't start up anymore.

Unable to change virtual machine power state: VMware Workstation cannot connect to the virtual machine. Make sure you have rights to run the program and to access all directories it uses and rights to access all directories for temporary files..

UPDATE3 : I did a complete uninstall, rebooted and dit it all over again. Now it works like a charm. Smiley Wink

0 Kudos
lancerus
Contributor
Contributor

I'm also running this (testing) on fedora11, 64bit 2.6.29.4-167.fc11.x86_64 ... it works great for running machines. The problem I'm having however is stopping (or pausing) machines. When I try to shutdown or pause a machine, workstation will hang for a while (minute or so unresponsive), then it will crash. However if I do a ps, sure enough the vmx of that machine is still left running.

Anyone else experiencing this? Any ideas ?? I typically run multiple machines at the same time so this is a show-stopper for my planned upgrade to fed11.

Thanks!

0 Kudos
sidvdhc
Contributor
Contributor

I had the same observations. Fresh install of VMware Workstation 6.5.2, Krellan's patches (wow, lots of updates!), vmware-modconfig... Running a i686 kernel on a Pentium with hyperthreading.

Ran vmware from a terminal session. After a very long minute, it crashed, printed

terminate called after throwing an instance of 'vmdb::Error'

what(): Internal error

and exited with 0 status.

While vmware was busy hanging, the rest of the system was running normally. Top showed no abnormal usage from any vmware processes.

Tried again, but instead of waiting a very long minute, kill the vmware-vmx process. My vmware process went away immediately.

0 Kudos
aertsb
Contributor
Contributor

When I installed "acr38u" and "beid" in Mandriva 2009.1 x86_64 PowerPack with kernel 2.6.29, VMware Workstation 6.5.2 with patches crashes on shutdown of Windows Vista virtual machine. These are modules to connect a smart card device and read Belgian electronic identity cards. From a fresh install, VMware workstation works perfectly. After installation of these modules, when Vista is shutting down, the VMware workstation seems frozen for a minute and then suddenly disappears. Restarting VMware workstation does not help: Vista can not be started anymore. I already tried to turn off sharing of smart card, as described in the workstation manual on page 343 by adding usb.ccid.useSharedMode = "FALSE" in /etc/vmware/config. It did not help. Does anyone see a solution?

0 Kudos
forums
Contributor
Contributor

Any patch for Workstation 6.5.2 64-bit on Linus 2.6.30 kernel?

0 Kudos
argos66
Contributor
Contributor

Hello,

Yes I have release a patch.

A minor fix from the patch available on this post.

You can download on -> http://communities.vmware.com/message/1243821#1243821

I work on VMWare Player (kernel 2.6.30 stable release), there are no reason for don't work on Workstation version but you can test and report please Smiley Happy ...

Bye,

0 Kudos