14

I am trying to install vmware workstation 10.1 on Ubuntu 14.04 and I got following errors.

How do i fix it ?

enter image description here

enter image description here

   Virtual machine monitor                                             done
   Virtual machine communication interface                             done
   VM communication interface socket family                            done
   Blocking file system                                                done
   Virtual ethernet                                                   failed
   VMware Authentication Daemon                                        done
1
  • This is the clearest implementation of this workaround I have come across, thanks. For me the last line ¨sudo chown -R $USER:$USER .vmware¨ would create this error. Using the ~/ resolved that root@me:/usr/lib/vmware/modules/source# sudo chown -R $USER:$USER .vmware chown: cannot access ‘.vmware’: No such file or directory root@me:/usr/lib/vmware/modules/source# sudo chown -R $USER:$USER ~/.vmware
    – user298928
    Jun 29, 2014 at 16:02

5 Answers 5

21

To fix this we will need to apply this patch to filter.c in VMware Player module sources.

Step No 1

create a file in tmp directory name filter.c.diff and copy paste the following code init.

nano /tmp/filter.c.diff

205a206
> #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
206a208,210
> #else
> VNetFilterHookFn(const struct nf_hook_ops *ops,        // IN:
> #endif
255c259,263
<    transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
---
>    #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
>       transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
>    #else
>       transmit = (ops->hooknum == VMW_NF_INET_POST_ROUTING);
>    #endif

Step No 2

sudo -E -s

cd /usr/lib/vmware/modules/source/ 

cp vmnet.tar vmnet.tar.original

tar xvf vmnet.tar vmnet-only/filter.c

patch vmnet-only/filter.c < /tmp/filter.c.diff

tar -uvf vmnet.tar vmnet-only/filter.c

rm -rf vmnet-only/

After that just run vmware and it will work fine.

   Starting VMware services:
   Virtual machine monitor                                             done
   Virtual machine communication interface                             done
   VM communication interface socket family                            done
   Blocking file system                                                done
   Virtual ethernet                                                    done
   VMware Authentication Daemon                                        done
   Shared Memory Available                                             done

Note : You also need to chown the .vmware directory otherwise your vmware changes will not save

example

sudo chown -R one:one .vmware

Where one is my username and one is my group. sudo chown -R $USER:$USER .vmware

HELP

5
  • but it doesn't work on my 32 bit ubuntu 14.04 LTS Jan 2, 2016 at 7:11
  • will not work on ubuntu 15.04
    – ubuntico
    Jan 29, 2016 at 15:48
  • 1
    @ubuntico this is very old, check wiki on archlinux for vmware workstation. I hope it will help you
    – Qasim
    Jan 29, 2016 at 15:52
  • 2
    tar: vmnet-only/filter.c: Not found in archive tar: Exiting with failure status due to previous errors May 19, 2016 at 15:49
  • 2
    filter.c doesn't exist for me tar: vmnet-only/filter.c: Not found in archive tar: Exiting with failure status due to previous errors
    – Katz
    Dec 14, 2017 at 0:55
4

To fix the issue on Ubuntu 14.10 kernel 3.17.2

Step No 1

curl http://pastie.org/pastes/9636106/download -o /tmp/vmware-3.17.patch

Step No 2

Rebuilding modules, Extract module sources:

cd /usr/lib/vmware/modules/source
for i in vmci vmmon vmnet vsock; do tar -xf $i.tar; done

Step No 3

Apply the patch:

 patch -p1 -i /tmp/vmware-3.17.patch

Step No 4

Recreate the archives:

for i in *-only; do tar -cf ${i/-only}.tar $i; done

Step No 5

Remove leftovers:

rm -r *-only

Step No 6

Rebuild modules:

vmware-modconfig --console --install-all

HELP

2
3

To fix the issue on Ubuntu 14.x kernel 3.19.x, run the following steps as Root (in a terminal):

  1. log in as root (e.g. sudo -s)

  2. Enter your Root password.

  3. Enter these commands:

curl http://pastie.org/pastes/9934018/download -o /tmp/vmnet-3.19.patch
cd /usr/lib/vmware/modules/source
tar -xf vmnet.tar
patch -p0 -i /tmp/vmnet-3.19.patch
mv vmnet.tar vmnet.tar.SAVED
tar -cf vmnet.tar vmnet-only
rm -r vmnet-only
vmware-modconfig --console --install-all
2
  • Works great on Ubuntu 15.04
    – ubuntico
    Jan 29, 2016 at 15:48
  • Had the same issue on Ubuntu 16.04, and tried to apply the patch, but that failed. As it turns out, the latest VM Workstation Pro (version 12.1.1) already has the changes from the patch implemented in userif.c, and driver.c doesn't have anything matching the patched code. I then downloaded the latest installer and ran it, which just ended with a message that everything was already up to date. That did, however, stop the services, and I was then able to start it up and have the modules compile.
    – iisisrael
    Jul 15, 2016 at 15:59
2

I just had this same problem. You can also just create a script containing this:

#!/bin/bash

cat << EOF > /tmp/filter.c.patch
--- vmnet-only/filter.c 2013-10-18 15:11:55.000000000 -0400
+++ vmnet-only/filter.c 2013-12-21 20:15:15.000000000 -0500
@@ -27,6 +27,7 @@
 #include "compat_module.h"
 #include <linux/mutex.h>
 #include <linux/netdevice.h>
 +#include <linux/version.h>
 #if COMPAT_LINUX_VERSION_CHECK_LT(3, 2, 0)
 #   include <linux/module.h>
 #else
@@ -203,7 +204,11 @@
 #endif

 static unsigned int
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
 VNetFilterHookFn(unsigned int hooknum,                 // IN:
+#else
+VNetFilterHookFn(const struct nf_hook_ops *ops,        // IN:
+#endif
 #ifdef VMW_NFHOOK_USES_SKB
                  struct sk_buff *skb,                  // IN:
 #else
@@ -252,7 +257,12 @@

     /* When the host transmits, hooknum is VMW_NF_INET_POST_ROUTING. */
    /* When the host receives, hooknum is VMW_NF_INET_LOCAL_IN. */
 -   transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
 +   
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
+    transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
+#else
+    transmit = (ops->hooknum == VMW_NF_INET_POST_ROUTING);
+#endif

    packetHeader = compat_skb_network_header(skb);
    ip = (struct iphdr*)packetHeader;
EOF

cd /usr/lib/vmware/modules/source
# untar the vmnet modules
tar -xvf vmnet.tar
#run a the patch you should have just saved earlier
 patch vmnet-only/filter.c < /tmp/filter.c.patch
# re-tar the modules
tar -uvf vmnet.tar vmnet-only
#delete the previous working directory
rm -rf vmnet-only

Just make sure you run it as root. Then start VMWARE again and it should compile and run again.

Thanks to http://fazlearefin.blogspot.ca/2014/03/vmware-workstation-10-not-working-on.html for creating this script.

1

This was also an issue in the kernel module source code delivered with VMware Player 6.0.1 when running on Linux 3.3.13.

VMware has fixed the issue on april 17th in VMware Player 6.0.2 (https://www.vmware.com/support/player60/doc/player-602-release-notes.html) and VMware Workstation 10.02 (https://www.vmware.com/support/ws10/doc/workstation-1002-release-notes.html).

Upgrading to the above releases will add support for Ubuntu 14.04 to VMware.

Mikkel

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .