在Ubuntu上安装Vmware工作站时出错


14

我试图在Ubuntu 14.04上安装vmware工作站10.1,但出现以下错误。

我如何解决它 ?

在此处输入图片说明

在此处输入图片说明

   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

这是我遇到的这种解决方法的最清晰的实现,谢谢。对我来说,最后一行“ sudo chown -R $ USER:$ USER .vmware”会产生此错误。使用〜/解决了root @ me:/ usr / lib / vmware / modules / source#sudo chown -R $ USER:$ USER .vmware chown:无法访问'.vmware':没有这样的文件或目录root @ me: / usr / lib / vmware / modules / source#sudo chown -R $ USER:$ USER〜/ .vmware
user298928

Answers:


21

要解决此问题,我们需要将此修补程序应用于VMware Player模块源中的filter.c。

步骤1

在tmp目录名称filter.c.diff中创建一个文件,然后复制粘贴以下代码init。

纳米/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

步骤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/

之后,只需运行vmware,它将正常运行。

   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

注意:您还需要添加.vmware目录,否则您的vmware更改将不会保存

sudo chown -R one:one .vmware

其中一个是我的用户名,一个是我的组。sudo chown -R $USER:$USER .vmware

救命


但是在我的32位ubuntu 14.04 LTS上不起作用
Vasu Dev Garg,2016年

不适用于ubuntu 15.04
ubuntico '16

1
@ubuntico,这是非常老的,请在archlinux上查看vmware工作站上的wiki。希望对您有帮助
-Qasim

2
tar:仅限vmnet / filter.c:在存档中找不到tar:由于先前的错误而以失败状态退出
Mahdi Rashidi

2
filter.c对我而言不存在tar: vmnet-only/filter.c: Not found in archive tar: Exiting with failure status due to previous errors
Katz

4

解决Ubuntu 14.10内核3.17.2上的问题

步骤1

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

步骤2

重建模块,提取模块源:

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

第三步

应用补丁:

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

步骤4

重新创建档案:

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

步骤5

删除剩菜:

rm -r *-only

步骤6

重建模块:

vmware-modconfig --console --install-all

救命


1
令人惊叹的答案在3.18.0中完全有效
Trevor Rudolph


3

要解决Ubuntu 14.x内核3.19.x上的问题,请以Root身份(在终端中)运行以下步骤:

  1. 以root身份登录(例如sudo -s)

  2. 输入您的root密码。

  3. 输入以下命令:

curl http://pastie.org/pastes/9934018/download -o /tmp/vmnet-3.19.patch
cd / usr / lib / vmware / modules / source
焦油-xf vmnet.tar
补丁-p0 -i /tmp/vmnet-3.19.patch
mv vmnet.tar vmnet.tar。已保存
tar -cf vmnet.tar仅限vmnet
rm -r仅限vmnet
vmware-modconfig --console --install-all

在Ubuntu 15.04上运行良好
ubuntico '16

在Ubuntu 16.04上有相同的问题,并尝试应用该补丁,但是失败了。事实证明,最新的VM Workstation Pro(版本12.1.1)已经对中实现的补丁进行了更改userif.c,并且driver.c没有与补丁代码匹配的任何内容。然后,我下载了最新的安装程序并运行了该安装程序,最后显示一条消息,说明所有内容均已更新。但这确实停止了服务,然后我就可以启动它并编译模块了。
iisisrael

2

我只是有同样的问题。您也可以只创建一个包含以下内容的脚本:

#!/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

只要确保您以root身份运行即可。然后再次启动VMWARE,它应该编译并再次运行。

感谢http://fazlearefin.blogspot.ca/2014/03/vmware-workstation-10-not-working-on.html创建此脚本。


1

在Linux 3.3.13上运行时,VMware Player 6.0.1随附的内核模块源代码中也存在此问题。

VMware已于4月17日在VMware Player 6.0.2中修复了该问题( https://www.vmware.com/support/player60/doc/player-602-release-notes.html)和VMware Workstation 10.02(https:// www.vmware.com/support/ws10/doc/workstation-1002-release-notes.html)。

升级到上述发行版将为VMware添加对Ubuntu 14.04的支持。

米克尔

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.