无法运行 VMware - 无法构建 vmnet

har*_*ayz 26 64-bit vmware 13.10

我无法运行 vmware,下面是有关原因的错误日志。

任何想法,虽然和建议表示赞赏。谢谢你。

2014-02-03T16:32:00.904+08:00| vthread-3| I120: Log for VMware Workstation pid=5707 version=10.0.1 build=build-1379776 option=Release
2014-02-03T16:32:00.904+08:00| vthread-3| I120: The process is 64-bit.
2014-02-03T16:32:00.904+08:00| vthread-3| I120: Host codepage=UTF-8 encoding=UTF-8
2014-02-03T16:32:00.904+08:00| vthread-3| I120: Host is Linux 3.13.0-031300-generic Ubuntu 13.10
2014-02-03T16:32:00.903+08:00| vthread-3| I120: Msg_Reset:
2014-02-03T16:32:00.903+08:00| vthread-3| I120: [msg.dictionary.load.openFailed] Cannot open file "/usr/lib/vmware/settings": No such file or directory.
2014-02-03T16:32:00.903+08:00| vthread-3| I120: ----------------------------------------
2014-02-03T16:32:00.903+08:00| vthread-3| I120: PREF Optional preferences file not found at /usr/lib/vmware/settings. Using default values.
2014-02-03T16:32:00.904+08:00| vthread-3| I120: Msg_Reset:
2014-02-03T16:32:00.904+08:00| vthread-3| I120: [msg.dictionary.load.openFailed] Cannot open file "/root/.vmware/config": No such file or directory.
2014-02-03T16:32:00.904+08:00| vthread-3| I120: ----------------------------------------
2014-02-03T16:32:00.904+08:00| vthread-3| I120: PREF Optional preferences file not found at /root/.vmware/config. Using default values.
2014-02-03T16:32:00.904+08:00| vthread-3| I120: PREF Unable to check permissions for preferences file.
2014-02-03T16:32:00.904+08:00| vthread-3| I120: Msg_Reset:
2014-02-03T16:32:00.904+08:00| vthread-3| I120: [msg.dictionary.load.openFailed] Cannot open file "/root/.vmware/preferences": No such file or directory.
2014-02-03T16:32:00.904+08:00| vthread-3| I120: ----------------------------------------
2014-02-03T16:32:00.904+08:00| vthread-3| I120: PREF Failed to load user preferences.
2014-02-03T16:32:00.904+08:00| vthread-3| W110: Logging to /tmp/vmware-root/vmware-modconfig-5707.log
2014-02-03T16:32:00.935+08:00| vthread-3| I120: Obtaining info using the running kernel.
2014-02-03T16:32:00.935+08:00| vthread-3| I120: Created new pathsHash.
2014-02-03T16:32:00.935+08:00| vthread-3| I120: Setting header path for 3.13.0-031300-generic to "/lib/modules/3.13.0-031300-generic/build/include".
2014-02-03T16:32:00.935+08:00| vthread-3| I120: Validating path "/lib/modules/3.13.0-031300-generic/build/include" for kernel release "3.13.0-031300-generic".
2014-02-03T16:32:00.935+08:00| vthread-3| I120: using /usr/bin/gcc for preprocess check
2014-02-03T16:32:00.950+08:00| vthread-3| I120: Preprocessed UTS_RELEASE, got value "3.13.0-031300-generic".
2014-02-03T16:32:00.950+08:00| vthread-3| I120: The header path "/lib/modules/3.13.0-031300-generic/build/include" for the kernel "3.13.0-031300-generic" is valid.  Whoohoo!
2014-02-03T16:32:01.198+08:00| vthread-3| I120: Reading in info for the vmmon module.
2014-02-03T16:32:01.198+08:00| vthread-3| I120: Reading in info for the vmnet module.
2014-02-03T16:32:01.198+08:00| vthread-3| I120: Reading in info for the vmblock module.
2014-02-03T16:32:01.198+08:00| vthread-3| I120: Reading in info for the vmci module.
2014-02-03T16:32:01.198+08:00| vthread-3| I120: Reading in info for the vsock module.
2014-02-03T16:32:01.198+08:00| vthread-3| I120: Setting vsock to depend on vmci.
2014-02-03T16:32:01.198+08:00| vthread-3| I120: Invoking modinfo on "vmmon".
2014-02-03T16:32:01.203+08:00| vthread-3| I120: "/sbin/modinfo" exited with status 0.
2014-02-03T16:32:01.203+08:00| vthread-3| I120: Invoking modinfo on "vmnet".
2014-02-03T16:32:01.210+08:00| vthread-3| I120: "/sbin/modinfo" exited with status 256.
2014-02-03T16:32:01.210+08:00| vthread-3| I120: Invoking modinfo on "vmblock".
2014-02-03T16:32:01.214+08:00| vthread-3| I120: "/sbin/modinfo" exited with status 256.
2014-02-03T16:32:01.215+08:00| vthread-3| I120: Invoking modinfo on "vmci".
2014-02-03T16:32:01.220+08:00| vthread-3| I120: "/sbin/modinfo" exited with status 256.
2014-02-03T16:32:01.220+08:00| vthread-3| I120: Invoking modinfo on "vsock".
2014-02-03T16:32:01.225+08:00| vthread-3| I120: "/sbin/modinfo" exited with status 0.
2014-02-03T16:32:01.252+08:00| vthread-3| I120: to be installed: vmnet status: 0
2014-02-03T16:32:01.273+08:00| vthread-3| I120: Obtaining info using the running kernel.
2014-02-03T16:32:01.273+08:00| vthread-3| I120: Setting header path for 3.13.0-031300-generic to "/lib/modules/3.13.0-031300-generic/build/include".
2014-02-03T16:32:01.273+08:00| vthread-3| I120: Validating path "/lib/modules/3.13.0-031300-generic/build/include" for kernel release "3.13.0-031300-generic".
2014-02-03T16:32:01.273+08:00| vthread-3| I120: using /usr/bin/gcc for preprocess check
2014-02-03T16:32:01.289+08:00| vthread-3| I120: Preprocessed UTS_RELEASE, got value "3.13.0-031300-generic".
2014-02-03T16:32:01.289+08:00| vthread-3| I120: The header path "/lib/modules/3.13.0-031300-generic/build/include" for the kernel "3.13.0-031300-generic" is valid.  Whoohoo!
2014-02-03T16:32:01.528+08:00| vthread-3| I120: Kernel header path retrieved from FileEntry: /lib/modules/3.13.0-031300-generic/build/include
2014-02-03T16:32:01.528+08:00| vthread-3| I120: Update kernel header path to /lib/modules/3.13.0-031300-generic/build/include
2014-02-03T16:32:01.528+08:00| vthread-3| I120: Validating path "/lib/modules/3.13.0-031300-generic/build/include" for kernel release "3.13.0-031300-generic".
2014-02-03T16:32:01.528+08:00| vthread-3| I120: using /usr/bin/gcc for preprocess check
2014-02-03T16:32:01.542+08:00| vthread-3| I120: Preprocessed UTS_RELEASE, got value "3.13.0-031300-generic".
2014-02-03T16:32:01.542+08:00| vthread-3| I120: The header path "/lib/modules/3.13.0-031300-generic/build/include" for the kernel "3.13.0-031300-generic" is valid.  Whoohoo!
2014-02-03T16:32:01.546+08:00| vthread-3| I120: Found compiler at "/usr/bin/gcc"
2014-02-03T16:32:01.553+08:00| vthread-3| I120: Got gcc version "4.8".
2014-02-03T16:32:01.553+08:00| vthread-3| I120: GCC minor version 4 does not match Kernel GCC minor version 4.  But that is ok.
2014-02-03T16:32:01.553+08:00| vthread-3| I120: Using user supplied compiler "/usr/bin/gcc".
2014-02-03T16:32:01.562+08:00| vthread-3| I120: Got gcc version "4.8".
2014-02-03T16:32:01.563+08:00| vthread-3| I120: GCC minor version 4 does not match Kernel GCC minor version 4.  But that is ok.
2014-02-03T16:32:01.572+08:00| vthread-3| I120: Trying to find a suitable PBM set for kernel "3.13.0-031300-generic".
2014-02-03T16:32:01.572+08:00| vthread-3| I120: No matching PBM set was found for kernel "3.13.0-031300-generic".
2014-02-03T16:32:01.573+08:00| vthread-3| I120: GCC minor version 4 does not match Kernel GCC minor version 4.  But that is ok.
2014-02-03T16:32:01.573+08:00| vthread-3| I120: Validating path "/lib/modules/3.13.0-031300-generic/build/include" for kernel release "3.13.0-031300-generic".
2014-02-03T16:32:01.573+08:00| vthread-3| I120: using /usr/bin/gcc for preprocess check
2014-02-03T16:32:01.587+08:00| vthread-3| I120: Preprocessed UTS_RELEASE, got value "3.13.0-031300-generic".
2014-02-03T16:32:01.588+08:00| vthread-3| I120: The header path "/lib/modules/3.13.0-031300-generic/build/include" for the kernel "3.13.0-031300-generic" is valid.  Whoohoo!
2014-02-03T16:32:02.909+08:00| vthread-3| I120: GCC minor version 4 does not match Kernel GCC minor version 4.  But that is ok.
2014-02-03T16:32:02.910+08:00| vthread-3| I120: Validating path "/lib/modules/3.13.0-031300-generic/build/include" for kernel release "3.13.0-031300-generic".
2014-02-03T16:32:02.910+08:00| vthread-3| I120: using /usr/bin/gcc for preprocess check
2014-02-03T16:32:02.929+08:00| vthread-3| I120: Preprocessed UTS_RELEASE, got value "3.13.0-031300-generic".
2014-02-03T16:32:02.929+08:00| vthread-3| I120: The header path "/lib/modules/3.13.0-031300-generic/build/include" for the kernel "3.13.0-031300-generic" is valid.  Whoohoo!
2014-02-03T16:32:02.929+08:00| vthread-3| I120: Using temp dir "/tmp".
2014-02-03T16:32:02.974+08:00| vthread-3| I120: Obtaining info using the running kernel.
2014-02-03T16:32:02.974+08:00| vthread-3| I120: Setting header path for 3.13.0-031300-generic to "/lib/modules/3.13.0-031300-generic/build/include".
2014-02-03T16:32:02.974+08:00| vthread-3| I120: Validating path "/lib/modules/3.13.0-031300-generic/build/include" for kernel release "3.13.0-031300-generic".
2014-02-03T16:32:02.974+08:00| vthread-3| I120: using /usr/bin/gcc for preprocess check
2014-02-03T16:32:02.995+08:00| vthread-3| I120: Preprocessed UTS_RELEASE, got value "3.13.0-031300-generic".
2014-02-03T16:32:02.995+08:00| vthread-3| I120: The header path "/lib/modules/3.13.0-031300-generic/build/include" for the kernel "3.13.0-031300-generic" is valid.  Whoohoo!
2014-02-03T16:32:03.237+08:00| vthread-3| I120: Invoking modinfo on "vmnet".
2014-02-03T16:32:03.245+08:00| vthread-3| I120: "/sbin/modinfo" exited with status 256.
2014-02-03T16:32:06.212+08:00| vthread-3| I120: Setting destination path for vmnet to "/lib/modules/3.13.0-031300-generic/misc/vmnet.ko".
2014-02-03T16:32:06.241+08:00| vthread-3| I120: Extracting the vmnet source from "/usr/lib/vmware/modules/source/vmnet.tar".
2014-02-03T16:32:06.370+08:00| vthread-3| I120: Successfully extracted the vmnet source.
2014-02-03T16:32:06.370+08:00| vthread-3| I120: Building module with command "/usr/bin/make -j2 -C /tmp/modconfig-mjoI0c/vmnet-only auto-build HEADER_DIR=/lib/modules/3.13.0-031300-generic/build/include CC=/usr/bin/gcc IS_GCC_3=no"
2014-02-03T16:32:19.531+08:00| vthread-3| W110: Failed to build vmnet.  Failed to execute the build command.
Run Code Online (Sandbox Code Playgroud)

小智 30

我能够使用此解决方案修复 3.13 内核的问题。

作者建议修补 vmnet 源:

vmnet313.patch使用以下内容在您的主目录中创建文件:

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
Run Code Online (Sandbox Code Playgroud)

或者将此补丁下载到您的主目录并将其重命名为vmnet313.patch. 例如:

wget "http://pastebin.com/raw.php?i=p3bkbAMu" -O vmnet313.patch
Run Code Online (Sandbox Code Playgroud)

接下来,执行以下命令:

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
Run Code Online (Sandbox Code Playgroud)

最后一个命令(或vmplayer)现在应该可以成功运行。

  • http://askubuntu.com/questions/414783/unable-to-run-vmware-failed-to-build-vmnet/491687#491687 中列出的补丁以及拼写错误的更新对我有用。 (5认同)
  • `/usr/lib/vmware/bin/vmware-modconfig --console --install-all` 说我不支持 `--console`。`无法解析选项。未知选项 --console`。我只是运行 vmware 来完成构建。 (2认同)

小智 9

使用这个 vmnet313.patch 包括几个错字更正(参见@nonsleepr 的回答),解决了我在 Ubuntu 14.04.4 LTS 64 位桌面上升级 9.0.2 到 9.02.4 的问题。

这个片段是pastebin.com/raw.php?i=p3bkbAMu的内容;但最后有 2 个更正的错别字。

--- vmnet-only/filter.c 2013-10-18 23:11:55.000000000 +0400
+++ vmnet-only/filter.c 2013-12-03 04:16:31.751352170 +0400
@@ -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,14 @@

    /* 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;
Run Code Online (Sandbox Code Playgroud)


Kir*_*tov 5

我遇到了完全相同的问题(Linux Mint 17, kernel 3.17

找到的解决方法是:

# - as root user
$ cd /usr/lib/vmware/modules/source
$ tar -xvf vmnet.tar
# - edit the file vmnet-only/netif.c and replace the line that looks like
    dev = alloc_netdev(sizeof *netIf, deviceName, VNetNetIfSetup);
to
    dev = alloc_netdev(sizeof *netIf, deviceName, NET_NAME_UNKNOWN, VNetNetIfSetup);
$ tar -cvf vmnet.tar vmnet-only/
$ rm -rf vmnet-only/
Run Code Online (Sandbox Code Playgroud)

然后再次运行 vmplayer。

来源


HTD*_*chy 4

VMware 需要构建一些模块,因为安装程序并不总是为您的系统提供正确的版本。

安装构建必需的。

sudo apt-get install build-essential
Run Code Online (Sandbox Code Playgroud)

这将安装编译器和所有其他需求。重新启动并尝试再次启动 vmware,这应该可以解决问题。