Nov 092011

UPDATE3: If you are looking for patches for 8.0.2+ and 4.0.2+ you might have a look at this post instead as VMware did several changes to their module sources

UPDATE2: I’ve changed the patch to support the weird versioning in the fedora kernels.

UPDATE: I’ve added in the list of supported versions 8.0.1 and 4.0.1 for vmware player, so the script will run with no modifications but remember that when vmware releases a new minor most probably changing the version at the top of the script (or applying the patch manually) will work fine.

New kernel version new issues.

This time can’t blame vmware a lot as some changes were a bit unannounced but I’m not expecting a fix for a long while even after the final release of 3.2.

Anyway this time it was a bit weird iommu api change which changed the iommu_found() to iommu_present(..) with an argument which is a global constant (that’s why it’s weird, maybe the point is making a transition to something more flexible in the future) and the same thing, but without name change, for iommu_domain_alloc(). As a side note this little change can fix also virtualbox builds, which are broken too for the same exact reason. I’m sure they will fix it soon themselves so there is no need of a specific patch, but you could just copy this piece near the top of the file failing to build to fix it:

#include <linux/pci.h>
#define iommu_found() iommu_present(&pci_bus_type)
#define iommu_domain_alloc() iommu_domain_alloc(&pci_bus_type)

The others, instead are specific only to vmware modules: still the network one from the 3.1 patch, some change to the placement of macros for modules, a removed entry in the net device struct and finally something which was described, by who did the change to the kernel, as a way to force people to use an api to access some data (instead of direct access).

You can find the package with the patch and the classic script attached to this post.

For 3.x/7.5.x users probably the patch is similar (provided the 2.6.39 one is applied) but I don’t have the sources right now to compare.

A last remind: you need to apply this to clean sources, so not to patched sources with the linux 3.1 fix (else just remove the part which was patched in 3.1 from this patch).


vmware workstation 8 / player 4 linux 3.2 fix

Attached Files:

  62 Responses to “vmware workstation 8.x / player 4.x / virtualbox fix for linux 3.2”

  1. Where do you run the shell script from? I get this error when I run the script:

    [: 26: workstation8.0.0: unexpected operator
    [: 27: workstation8.0.0: unexpected operator
    Sorry, this script is only for VMWare WorkStation 8.0.0 or VMWare Player 4.0.0. Exiting

    • from any place but as root and it takes for granted your install uses default paths.
      if you don’t you can always manually apply the patches

  2. using 3.1.0-1-amd64 and Player 4.0.1 build-528992
    i get:
    $ sudo ./
    patching file vmmon-only/linux/iommu.c
    patching file vmnet-only/compat_netdevice.h
    patching file vmnet-only/filter.c
    Hunk #1 succeeded at 41 (offset 1 line).
    patching file vmnet-only/netif.c
    Hunk #3 succeeded at 625 (offset -4 lines).
    patching file vmnet-only/userif.c
    Hunk #1 succeeded at 572 (offset 55 lines).
    Stopping VMware services:
    VMware Authentication Daemon done
    VM communication interface socket family done
    Virtual machine communication interface done
    Virtual machine monitor done
    Blocking file system done
    Using 2.6.x kernel build system.
    make: Entering directory `/run/shm/vmware-root/modules/vmmon-only’
    make -C /lib/modules/3.1.0-1-amd64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
    make[1]: Entering directory `/usr/src/linux-headers-3.1.0-1-amd64′
    CC [M] /run/shm/vmware-root/modules/vmmon-only/linux/driverLog.o
    CC [M] /run/shm/vmware-root/modules/vmmon-only/linux/hostif.o
    CC [M] /run/shm/vmware-root/modules/vmmon-only/linux/driver.o
    CC [M] /run/shm/vmware-root/modules/vmmon-only/linux/iommu.o
    CC [M] /run/shm/vmware-root/modules/vmmon-only/common/apic.o
    CC [M] /run/shm/vmware-root/modules/vmmon-only/common/comport.o
    CC [M] /run/shm/vmware-root/modules/vmmon-only/common/cpuid.o
    CC [M] /run/shm/vmware-root/modules/vmmon-only/common/hashFunc.o
    CC [M] /run/shm/vmware-root/modules/vmmon-only/common/memtrack.o
    CC [M] /run/shm/vmware-root/modules/vmmon-only/common/phystrack.o
    CC [M] /run/shm/vmware-root/modules/vmmon-only/common/task.o
    CC [M] /run/shm/vmware-root/modules/vmmon-only/common/vmx86.o
    CC [M] /run/shm/vmware-root/modules/vmmon-only/vmcore/moduleloop.o
    LD [M] /run/shm/vmware-root/modules/vmmon-only/vmmon.o
    Building modules, stage 2.
    MODPOST 1 modules
    CC /run/shm/vmware-root/modules/vmmon-only/vmmon.mod.o
    LD [M] /run/shm/vmware-root/modules/vmmon-only/vmmon.ko
    make[1]: Leaving directory `/usr/src/linux-headers-3.1.0-1-amd64′
    make -C $PWD SRCROOT=$PWD/. \
    MODULEBUILDDIR= postbuild
    make[1]: Entering directory `/run/shm/vmware-root/modules/vmmon-only’
    make[1]: `postbuild’ is up to date.
    make[1]: Leaving directory `/run/shm/vmware-root/modules/vmmon-only’
    cp -f vmmon.ko ./../vmmon.o
    make: Leaving directory `/run/shm/vmware-root/modules/vmmon-only’
    Built vmmon module
    Using 2.6.x kernel build system.
    make: Entering directory `/run/shm/vmware-root/modules/vmnet-only’
    make -C /lib/modules/3.1.0-1-amd64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
    make[1]: Entering directory `/usr/src/linux-headers-3.1.0-1-amd64′
    CC [M] /run/shm/vmware-root/modules/vmnet-only/driver.o
    CC [M] /run/shm/vmware-root/modules/vmnet-only/hub.o
    CC [M] /run/shm/vmware-root/modules/vmnet-only/userif.o
    CC [M] /run/shm/vmware-root/modules/vmnet-only/netif.o
    CC [M] /run/shm/vmware-root/modules/vmnet-only/bridge.o
    CC [M] /run/shm/vmware-root/modules/vmnet-only/filter.o
    CC [M] /run/shm/vmware-root/modules/vmnet-only/procfs.o
    CC [M] /run/shm/vmware-root/modules/vmnet-only/smac_compat.o
    CC [M] /run/shm/vmware-root/modules/vmnet-only/smac.o
    CC [M] /run/shm/vmware-root/modules/vmnet-only/vnetEvent.o
    CC [M] /run/shm/vmware-root/modules/vmnet-only/vnetUserListener.o
    /run/shm/vmware-root/modules/vmnet-only/driver.c:31:28: fatal error: linux/smp_lock.h: No such file or directory
    compilation terminated.
    /run/shm/vmware-root/modules/vmnet-only/filter.c:92:29: error: ‘SPIN_LOCK_UNLOCKED’ undeclared here (not in a function)
    make[4]: *** [/run/shm/vmware-root/modules/vmnet-only/filter.o] Error 1
    make[4]: *** Waiting for unfinished jobs….
    /run/shm/vmware-root/modules/vmnet-only/hub.c:84:57: error: ‘SPIN_LOCK_UNLOCKED’ undeclared here (not in a function)
    make[4]: *** [/run/shm/vmware-root/modules/vmnet-only/hub.o] Error 1
    make[4]: *** [/run/shm/vmware-root/modules/vmnet-only/driver.o] Error 1
    make[3]: *** [_module_/run/shm/vmware-root/modules/vmnet-only] Error 2
    make[2]: *** [sub-make] Error 2
    make[1]: *** [all] Error 2
    make[1]: Leaving directory `/usr/src/linux-headers-3.1.0-1-amd64′
    make: *** [vmnet.ko] Error 2
    make: Leaving directory `/run/shm/vmware-root/modules/vmnet-only’
    Unable to install vmnet

    All done, you can now run VMWare Player.
    Modules sources backup can be found in the ‘/usr/lib/vmware/modules/source-player4.0.1-2011-11-27-21:17:32-backup’ directory

    However, after restarting vmware services its running fine!

    Thank you!

  3. Hi,

    Thanks for the 3.1 fix. It ran fine until I upgraded to kernel 3.2. Any help on running 7.1.5 with kernel 3.2 would be appreciated.

    • just get the 8.x.x patch and copy the relevant code in the same section of the 7.1.5 modules code.

      • wish I was that good with coding…I’m not. Just like Linux and the great work from the developers. If you have a chance to look at it and package the patch I would really appreciate it.


        • Unfortunately, I don’t have the sources for the previous version anymore so the maximum I could do is explaining you how to do it.
          You need an archiver supporting in place substitution of files (to do things easily), as far as I know only graphical ones like file-roller do it. Depending on your distribution you might also need to run it as root or to move files temporarily in order to be able to edit them through your account. they are in /usr/lib/vmware/modules/source
          First of all open vmmon-only.tar and go to linux/ inside it and open iommu.c
          search #define PCI_BDF_BUS(bdf) (((bdf) >> 8) & 0xff)
          and add after it
          #include #define iommu_found() iommu_present(&pci_bus_type)
          #define iommu_domain_alloc() iommu_domain_alloc(&pci_bus_type)

          then save the file and update it on the archiver (file roller asks immediately after you save the file if it has to update it), you’ll have to do this for all file so I won’t repeat it

          next one is vmnet-only.tar open filter.c and after #include “vmnetInt.h” add
          #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)
          #include #endif

          then open netif.c
          search static int VNetNetifSetMAC(struct net_device *dev, void *addr);
          and wrap the next line( static void VNetNetifSetMulticast(struct net_device *dev);) in
          above and
          under it

          search then for .ndo_set_mac_address = VNetNetifSetMAC,
          and do the same thing for
          .ndo_set_multicast_list = VNetNetifSetMulticast,
          and also for VNetNetifSetMulticast(struct net_device *dev) // IN: unused a bit under it

          finally open userif.c
          and replace

          vaddr = kmap(frag->page);
          tmpCsum = csum_and_copy_to_user(vaddr + frag->page_offset,
          curr, frag->size, 0, &err);


          vaddr = kmap(skb_frag_page(frag));
          vaddr = kmap(frag->page);
          tmpCsum = csum_and_copy_to_user(vaddr + frag->page_offset,
          curr, frag->size, 0, &err);

          • Hello,

            Thanks for your post but i have followed the instructions on it with no success.

            I have a problem executing vmware player 3.1.5 on fedora 16 (3.2.5-3.fc16.i686). The details can be seen at

            Would you please check it out? I would appreciate so much your suggestions.

            Beforehand Thanks. Best Regards,

            Nestor Waldyd

          • Looks like you are still trying to use the infrastructure for the 8.x/4.x patches on 3.x unfortunately that cannot be done. You’ve to extract the sources by hand and change the code which causes errors by using the changes in the patch file as a base.

  4. Fedora 16 working.

    I love you man (in a manly way)

  5. new release 2 days ago (8.0.2) and vmnet is broken again with kernel 3.2

    /tmp/vmware-root/modules/vmnet-only/userif.c: In function ‘VNetCsumCopyDatagram’:
    /tmp/vmware-root/modules/vmnet-only/userif.c:520:3: error: incompatible type for argument 1 of ‘kmap’
    /usr/src/linux-headers-3.2.0-1-common/include/linux/highmem.h:48:21: note: expected ‘struct page *’ but argument is of type ‘const struct ’
    /tmp/vmware-root/modules/vmnet-only/userif.c:523:3: error: incompatible type for argument 1 of ‘kunmap’
    /usr/src/linux-headers-3.2.0-1-common/include/linux/highmem.h:54:20: note: expected ‘struct page *’ but argument is of type ‘const struct ’
    /tmp/vmware-root/modules/vmnet-only/filter.c:60:16: error: ‘THIS_MODULE’ undeclared here (not in a function)

    I’m starting to think they do that on purpose

  6. how i got VMplayer 4.0.2 to work with core 16
    how i got mine to work. (it’s absurd you have to do this to get it to work, i’d echo a comment I saw posted on a site that linked here about linux as a desktop but it’s been said before)

    distro: fedora core 16
    kernel version: 3.2.1-3.fc16.x86_64
    vmplayer version: 4.0.2

    in the change plreqver2=4.0.1 to plreqver2=4.0.2
    in the vmware3.2.0.patch file remove the first diff entirely. ie the first 15 lines or so. apparently iommu.c doesn’t exist in 4.0.2

    without the above i was getting this error:

    # ./
    can’t find file to patch at input line 4
    Perhaps you used the wrong -p or –strip option?
    The text leading up to this was:
    |diff -u -r source30//vmmon-only/linux/iommu.c source/vmmon-only/linux/iommu.c
    |— source30//vmmon-only/linux/iommu.c 2011-08-23 02:11:45.000000000 +0200
    |+++ source/vmmon-only/linux/iommu.c 2011-11-09 15:19:36.000000000 +0100
    File to patch:

    hope this helps someone.

  7. The manual patching instructions for VMware Workstation 7.1.5 dated above as “January 17, 2012 at 05:08″ seem to be garbled and will fail. The code lines to be patched manually has to be copied from the vmware3.2.0.patch file in stead. Now 7.1.5 works for me on Fedora 16 with kernel 3.2.2-1.fc16.x86_64.
    Thanks again for these wonderful patches!

    weltall: Would you like a copy of the 7.1.5 files so that you can prepare a patch for kernel 3.2?

    • i would need someone who tests too…

    • Ole Holm Nielsen, you’re saying that you were able to compile using some mods. Can you explain what you did ? Still can get VM 7.5.1 to work under OpenSuse 12.1.


    • Thx Ole!
      Never thought I would make it that way, but adding the code suggested in the patch for 3.2.0 directly to source files, and then restarting vmware worked. (Fedora 15, kernel 2.6.42-2_x64). VmWare WS 7.1.5

      Many thx to you as well weltall for keeping me productive!


  8. Thanks a lot!

  9. Hello,

    Is there any patch for 3.2 kernel in order to fix VMware player 3.1.5? I must use this vmware player version because the (32) processor of my machine is not x64 capable.

    Best Regards,

    Nestor Waldyd

  10. Thank you for the patch!

  11. Worked like a charm! Thanx for the patch and the solution!
    Fixed 8.0.0 build-471780 on Fedora 15 with kernel

  12. […] 경우 발생하는 오류임을 알게 되었고, 구글링 덕분에 한 블로그에서 이를 해결할 수 있는 패치를 찾을 수 […]

  13. thanks it worked for me

  14. Sadly, script ends with error:
    sudo ./vmware3.2.0.patch
    diff: source30//vmmon-only/linux/iommu.c: No such file or directory
    diff: source/vmmon-only/linux/iommu.c: No such file or directory
    ./vmware3.2.0.patch: 2: ./vmware3.2.0.patch: —: not found
    ./vmware3.2.0.patch: 3: ./vmware3.2.0.patch: +++: not found
    ./vmware3.2.0.patch: 4: ./vmware3.2.0.patch: @@: not found
    ./vmware3.2.0.patch: 8: ./vmware3.2.0.patch: Syntax error: word unexpected (expecting “)”)

    Can you help debug it?

  15. thx, this script worked for me on Ubuntu 12.04

  16. The vmnet compiles fine w/ the patch, however when i startup a guest VM i get the below.

    This is on Linux 3.3.2-1.fc16.x86_64 #1 SMP x86_64 x86_64 x86_64 GNU/Linux

    it’s an amd x4.

    [ 190.546245] ————[ cut here ]————
    [ 190.546250] kernel BUG at include/linux/mm.h:402!
    [ 190.546252] invalid opcode: 0000 [#1] SMP
    [ 190.546254] CPU 1
    [ 190.546255] Modules linked in: vmnet(O) ppdev parport_pc parport fuse vsock(O) vmci(O) vmmon(O) ip6t_REJECT nf_conntrack_ipv6 nf_conntrack_ipv4 nf_defrag_ipv6 nf_defrag_ipv4 xt_state nf_conntrack ip6table_filter ip6_tables hwmon_vid binfmt_misc joydev snd_hda_codec_hdmi nvidia(PO) snd_hda_codec_realtek snd_hda_intel snd_hda_codec snd_hwdep snd_seq snd_seq_device snd_pcm sp5100_tco i2c_piix4 edac_core edac_mce_amd i2c_core asus_atk0110 snd_timer snd soundcore snd_page_alloc r8169 mii k10temp serio_raw microcode uinput firewire_ohci ata_generic firewire_core pata_acpi crc_itu_t pata_atiixp wmi [last unloaded: scsi_wait_scan]
    [ 190.546281]
    [ 190.546283] Pid: 3341, comm: vmware-vmx Tainted: P O 3.3.2-1.fc16.x86_64 #1 System manufacturer System Product Name/M4A88T-V EVO/USB3
    [ 190.546287] RIP: 0010:[] [] get_page.part.0+0x4/0xd2c [vmmon]
    [ 190.546294] RSP: 0018:ffff8803da263d38 EFLAGS: 00010246
    [ 190.546296] RAX: 0000000000000000 RBX: ffffea000f687d00 RCX: 0000000000000000
    [ 190.546298] RDX: ffffea000f687d40 RSI: ffffea000f687d00 RDI: ffff8803da1f5000
    [ 190.546299] RBP: ffff8803da263d38 R08: 0000000000430000 R09: 00000000002d2c1a
    [ 190.546301] R10: 0000000000000003 R11: ffff8803da2dfbb0 R12: ffff8803da109138
    [ 190.546302] R13: 0000000000000004 R14: 0000000000000003 R15: 0000000000000001
    [ 190.546305] FS: 00007f7714880740(0000) GS:ffff88042fc40000(0000) knlGS:0000000000000000
    [ 190.546306] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [ 190.546308] CR2: 0000000000987510 CR3: 00000003da195000 CR4: 00000000000006e0
    [ 190.546310] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [ 190.546311] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    [ 190.546313] Process vmware-vmx (pid: 3341, threadinfo ffff8803da262000, task ffff8803f3cc2e60)
    [ 190.546315] Stack:
    [ 190.546316] ffff8803da263dc8 ffffffffa0d86c28 ffff88041ec27000 0000000513def09d
    [ 190.546319] ffff8803da120370 ffff8803da109110 0000000000000003 0000000000000004
    [ 190.546322] 0000000400000003 ffff8803da109100 00000002000200d2 0000000000000000
    [ 190.546324] Call Trace:
    [ 190.546328] [] LinuxDriverMmap+0x2a8/0x2d0 [vmmon]
    [ 190.546332] [] mmap_region+0x369/0x510
    [ 190.546335] [] ? handle_mm_fault+0x1f8/0x350
    [ 190.546338] [] do_mmap_pgoff+0x348/0x360
    [ 190.546340] [] sys_mmap_pgoff+0xc6/0x230
    [ 190.546343] [] ? sys_setresuid+0x140/0x160
    [ 190.546346] [] sys_mmap+0x22/0x30
    [ 190.546349] [] system_call_fastpath+0x16/0x1b
    [ 190.546351] Code: c7 c7 f3 1e d9 a0 e8 58 5e ff ff 31 c0 e9 82 fc ff ff c7 83 78 04 00 00 00 00 00 00 66 b8 00 e0 e9 eb fb ff ff 00 00 55 48 89 e5 0b bf f2 ff ff ff e9 f4 9f ff ff 00 00 00 00 00 00 00 00 00
    [ 190.546370] RIP [] get_page.part.0+0x4/0xd2c [vmmon]
    [ 190.546374] RSP
    [ 190.546376] —[ end trace 2f6ab5e684db058f ]—

  17. Same problem with 3.3.1-3.fc16.x86_64 and 3.3.1-5.fc16.x86_64

    • Are we sure the problem doesn’t lie in fedora patches, as there are no problems on vanilla kernels? Also i miss to see a call to get_page from LinuxDriverMMap.
      this seems to be the code causing the BUG display, it’s not really an invalid access but a check on a variable, which probably doesn’t get initialized and as such getting an invalid value
      * Getting a normal page or the head of a compound page
      * requires to already have an elevated page->_count.
      VM_BUG_ON(atomic_read(&page->_count) <= 0);

      • the problem seems to be in the fedora kernel specifically – there is a bug open on it: it also may be somewhat hardware dependent though it’s not clear. i have this working find in a F16 install on a dell m4600 w/ 32g of memory, a dell d830 w/ 8 gb of memory (both intel) a home-grown w/ a asus board and an amd w/ 8 gb of memory but if fails on a box w/ an asus board and amd cpu w/ 16g of memory. very perplexing and frustrating.

  18. […] kernel means new patch for VMWare and i have confirmed that a patch from Weltal’s Blog is working like charm. All you need is to apply the patch included and it should go just fine. […]

  19. Thanks a lot.. It worked for 8.0.0 version with Ubuntu 12.04 upgrade for me. I just commented out lines from 26 to 32 as they were causing some “unexpected operator” errors. It failed again after this because I did not have “patch” installed on my machine. Installed it using “sudo apt-get install patch” command and it worked like a charm after that.

    Thanks again for the patch.

  20. […] indispensable para mi en el trabajo, pero es tema del nuevo kernel y vmware más que de ubuntu, solución aplicar un […]

  21. Thanks a lot, really helpfull!!!
    Kind regards,
    Arnhem, Netherlands

  22. Just wanted to let people know, this patch allows vmplayer 4.0.2 run on opensuse 12.1. Thanks!

  23. For some reason it kept saying I had the wrong version but I was sure it was correct. So I removed the check and just ran it.
    Worked perfectly on ubuntu 12.04
    Thank you!

  24. Thanks it worked for me

  25. Good Job thanks man! Worked perfectly for me too, Ubuntu 12.04 VMware 8.0.1

  26. Works perfectfully

  27. Good Job thanks man! Worked perfectly for me too, Ubuntu 12.10 VMware 8.0.1

  28. Worked like a charm on a Gentoo box running 3.3.4! Thank you very much!

  29. Fails on Workstation 8.0.4 with kernel 3.2.0 28: [: workstation8.0.4: unexpected operator 29: [: workstation8.0.4: unexpected operator 30: [: workstation8.0.4: unexpected operator 31: [: workstation8.0.4: unexpected operator
    Sorry, this script is only for VMWare WorkStation 8.0.0 or VMWare Player 4.0.0. Exiting

  30. Are there any instructions on how to apply this patch, and, is there any way I can be sure it’s what I need?

    I have vmware workstation 8.0.4 with ubuntu 12.04 server as the host. I was able to install vmware but when I try to install the kernel modules the networking one won’t take (I think) – it has an exclamation mark next to that item in the list. Then it says something about being unable to start the service (vmware in general I think). I’ve never had to deal with anything like this before and not sure I’d know how.

    You know, it’s kinda ironic. I started wtih KVM but a lot of little things don’t work in it. I got vmware workstation because I though (I hoped) that it would JUST WORK. Just work, that’s all. No screwing around wtih things like this. I guess that was too much to hope for.

    Anyhow, can anyone help me understand what needs to happen for me to get the stupid thing working? I would really appreciate it.


    • extract it and run sudo ./ from a terminal from the folder where you’ve extracted it.
      If you want a painless virtualization experience and don’t have particular requirements (the only reason I’m still using vmware) use virtualbox. It works better out of the box and they maintain the software, even for free.

  31. Ok, thanks, but when I do it, it says

    "Sorry, this scrept is only for VMWare WorkSTation 8.0.0 or VMWare Player 4.0.0. Exiting"

    Can this patch even work for vmware 8.0.4?


  32. I’m sorry. I found out some more information, plus I’m wondering about something. I found out what my kernel version is – it’s 3.2.0-23-generic. Then, I was looking in one of tne files that comes with the patch (I think it’s one ending in .sh). I see this place (approximately line 7 (nano doesn’t give you line numbers that I know of) where it says “vmreq=8.0.0″. If I just changed that line to say “vmreq=8.0.4 could it work for me than? Or could I end up with something half baked or break something if it didn’t go through all the way when I run it later?

    Thanks so much for your help. I really do want to get vmware working. I have had some C programming in college recently so I understand a little bit. Just that we really didn’t cover much and this is kinda different. It’s on thing to write some dumb little game scoring program, or pig latin, or whatever (you know everything about it cause you’re the only one who worked on it – beginning to end). It seems different digging into the middle of something I know nothing about (like this).

    Anyhow. Thanks


  33. Just thought I should let you know I got it working. Here’s what I did in case it helps anyone else in the future:

    Host o/s: Ubuntu 12.04 server (fully updated as of a couple days ago)
    Kernel version: 3.2.0-23-generic
    vmware version: VMware-Workstation-Full-8.0.4-744019.x86_64 (acquired roughly 06/29/2012)

    After trying a modification to the .sh file in the patch on this page ( I was getting the same error as the guy in post #6. There’s a link in that post to another patch that takes care of what Jeff says he did in that post (the whole deleting lines [or commenting out] thing). I got that file from the link in that post.

    File name: vmware802fixlinux320.tar.gz

    Everything done from within the directory the patch was in

    (I’m not for sure about this part; but, I think the two files in the patch tarball have to be in the same directory as the VMware software is):

    Extracted the tarball

    Made a backup of the file I was about to modify using: cp

    Changed the line that says: “vmreqver=8.0.2″ to say: “vmreqver=8.0.4″ in file

    Then ran the patch by running sudo ./

    Everything appears to have worked perfectly.

    vmware workstation launches up fine. I was able to enter my licence. I was able to launch the feature to create a new vm but haven’t had a chance to actually follow throught with that process all the way.

    Thanks so much for what you’re doing weltall. Doing these patches is helping a whole lot of people.

    • Changing the line that says: “vmreqver=8.0.2″ to say: “vmreqver=8.0.4″ in file also worked for me with Linux 3.2.0-27-generic #43-Ubuntu SMP x86_64. Thanks to Jake for trying before I was brave enough.

      A big thanks to weltall for the patch to start with :)

  34. I an also having the same problem. I was running Ubuntu 12.04 and vmplayer 4.02 successfully, however I did the recommended security update to v4.04 of player. Player failed to start Virtual Ethernet in VMware services – In the log it had the following

    2012-07-03T23:55:49.916+10:00| vthread-3| I120: Building module vmnet.
    2012-07-03T23:55:49.916+10:00| vthread-3| I120: Extracting the sources of the vmnet module.
    2012-07-03T23:55:49.961+10:00| vthread-3| I120: Building module with command: /usr/bin/make -j -C /tmp/vmware-root/modules/vmnet-only auto-build SUPPORT_SMP=1 HEADER_DIR=/lib/modules/3.2.0-25-generic/build/include CC=/usr/bin/gcc GREP=/usr/bin/make IS_GCC_3=no VMCCVER=4.6
    2012-07-03T23:55:53.709+10:00| vthread-3| I120: Failed to compile module vmnet!

    The kernel is 3.2.0-25-generic.

    I tried Jakes (23) solution without success.

    I am very new to Linux and VMware. Any help would be very much appreciated.


  35. Hi!

    I changed the header to “plreqver=4.0.4″ but there is also this error:

    michael@computer:~/Downloads$ sudo sh 27: [: player4.0.4: unexpected operator 28: [: player4.0.4: unexpected operator
    Sorry, this script is only for VMWare WorkStation 8.0.2 or VMWare Player 4.0.4. Exiting

    I installed VMware player 4.0.4 744019 x86_64 on a ubuntu 12.04 distribution.

    Thanks for help!

    • Do not run the script with sh. For anything just don’t use sh just launch any script with sudo ./

      • Thanks a lot!

        I had to install additionally the “patch”-package. Then it worked with:

        sudo apt-get install patch
        sudo ./

  36. Below are changes to this patch to fix the vmblock d_alloc_root issue described in detail at: The error being generated is below:
    make: Entering directory `/tmp/vmware-root/modules/vmblock-only’
    make -C /lib/modules/3.4.8-1-ARCH/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
    make[1]: Entering directory `/usr/src/linux-3.4.8-1-ARCH’
    CC [M] /tmp/vmware-root/modules/vmblock-only/linux/filesystem.o
    CC [M] /tmp/vmware-root/modules/vmblock-only/linux/stubs.o
    CC [M] /tmp/vmware-root/modules/vmblock-only/linux/block.o
    CC [M] /tmp/vmware-root/modules/vmblock-only/linux/dbllnklst.o
    CC [M] /tmp/vmware-root/modules/vmblock-only/linux/super.o
    CC [M] /tmp/vmware-root/modules/vmblock-only/linux/file.o
    CC [M] /tmp/vmware-root/modules/vmblock-only/linux/control.o
    CC [M] /tmp/vmware-root/modules/vmblock-only/linux/inode.o
    CC [M] /tmp/vmware-root/modules/vmblock-only/linux/dentry.o
    CC [M] /tmp/vmware-root/modules/vmblock-only/linux/module.o
    /tmp/vmware-root/modules/vmblock-only/linux/filesystem.c: In function ‘FsOpReadSuper’:
    /tmp/vmware-root/modules/vmblock-only/linux/filesystem.c:528:4: error: implicit declaration of function ‘d_alloc_root’ [-Werror=implicit-function-declaration]
    /tmp/vmware-root/modules/vmblock-only/linux/filesystem.c:528:15: warning: assignment makes pointer from integer without a cast [enabled by default]
    cc1: some warnings being treated as errors
    make[2]: *** [/tmp/vmware-root/modules/vmblock-only/linux/filesystem.o] Error 1
    make[2]: *** Waiting for unfinished jobs….
    make[1]: *** [_module_/tmp/vmware-root/modules/vmblock-only] Error 2
    make[1]: Leaving directory `/usr/src/linux-3.4.8-1-ARCH’
    make: *** [vmblock.ko] Error 2
    make: Leaving directory `/tmp/vmware-root/modules/vmblock-only’
    Unable to install vmblock

    To use, download and extract the zip file on this page, then edit the vmware3.2.0.patch file. The necessary additions can be found at the bottom of the following pastebin link.

    For redundancy, the specific section that needs to be added to the patch file is as follows:

    diff -u -r source30//vmblock-only/linux/filesystem.c source/vmblock-only/linux/filesystem.c
    — source30//vmblock-only/linux/filesystem.c 2011-08-23 02:11:46.000000000 +0200
    +++ source/vmblock-only/linux/filesystem.c 2012-08-14 19:05:34.000000000 -0500
    @@ -525,7 +525,7 @@
    return -EINVAL;

    – rootDentry = d_alloc_root(rootInode);
    + rootDentry = d_make_root(rootInode);
    if (!rootDentry) {
    return -ENOMEM;

  37. Question!

    Does this patch work kernel 3.6 fedora 16 with ?

 Leave a Reply



You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>