Não é possível executar o VMware - Falha ao construir vmnet

24

Não consigo executar o vmware e abaixo está o log de erros.

Qualquer ideia e sugestões são bem-vindas. Obrigado.

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.
    
por harayz 03.02.2014 / 09:45

10 respostas

28

Consegui corrigir o problema do kernel 3.13 usando esta solução .

O autor aconselha a corrigir fontes da vmnet:

Crie o arquivo vmnet313.patch em seu diretório pessoal com o seguinte conteúdo:

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

Se preferir, faça o download do este patch em seu diretório pessoal e renomeie-o para vmnet313.patch . Por exemplo:

wget "http://pastebin.com/raw.php?i=p3bkbAMu" -O vmnet313.patch

Em seguida, execute os seguintes comandos:

#Change directory into the vmware module source directory
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 < ~/vmnet313.patch
# re-tar the modules
tar -uvf vmnet.tar vmnet-only
#delete the previous working directory
rm -r vmnet-only
# run the vmware module build program. (alternatively just run the GUI app)
/usr/lib/vmware/bin/vmware-modconfig --console --install-all

O último comando (ou vmplayer ) deve agora ser executado com sucesso.

    
por nonsleepr 07.04.2014 / 10:01
10

Usando esse vmnet313.patch incluindo algumas correções de erros de digitação (veja a resposta do @nonsleepr), resolvi meu problema com a atualização com a atualização 9.0.2 para 9.02.4 no Ubuntu 14.04.4 LTS Desktop de 64 bits.

Este snippet é o conteúdo de pastebin.com/raw.php?i=p3bkbAMu ; mas com 2 erros corrigidos no final.

--- 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;
    
por user298928 04.07.2014 / 15:37
5

Eu encontrei exatamente o mesmo problema (Linux Mint 17, kernel 3.17 )

A solução encontrada é:

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

Em seguida, execute o vmplayer novamente.

source

    
por Kirill Feoktistov 08.02.2015 / 14:25
4

O VMware precisa criar alguns módulos porque o instalador nem sempre tem a versão correta para o seu sistema.

Instale o essencial da construção.

sudo apt-get install build-essential

Isso instalará um compilador e todas as outras necessidades. Reinicie e tente iniciar o vmware novamente, isso deve resolvê-lo.

    
por HTDutchy 03.02.2014 / 10:06
3

Se você atualizar a Pilha de Ativação de Hardware 12.04 para a versão 14.04 sem fazer upgrade completo de todo o sistema, o módulo vmnet poderá falhar na compilação para o vmplayer 6.0.1. Minha solução foi atualizar para o mais recente 6.0.3 vmplayer. Não teve problemas depois disso.

    
por Dow Hurst 18.07.2014 / 21:03
1

Eu atualizei a imagem do kernel para "linux-image-3.13.0-43-generic" para a versão 3.13.0 em SMP x86 de 64 bits durante a execução do Ubuntu Precise 12.04 com "linux-image-3.8.0-44-generic" (... mas não atualizou o Ubuntu!)

Depois disso, ao iniciar o VMPlayer 6.0, uma das mensagens de erro registradas pelo VMPLayer exibiu "Falha ao construir o vmnet.Failed para executar o comando de compilação." e o VMPlayer falhou ao iniciar.

Retrocedi a imagem do kernel removendo a imagem atualizada.

apt-get remove 3.13.0-43-generic

Também removemos os cabeçalhos linux atualizados.

sudo apt-get autoremove

Agora, a imagem do kernel está de volta para a anterior:

  

cat / proc / version: Linux versão 3.8.0-44-generic (buildd @ tipua) (gcc versão 4.6.3 (Ubuntu / Linaro 4.6.3-1ubuntu5)) # 66 ~ preciso1-Ubuntu SMP Ter 15 de julho 04:01:04 UTC de 2014

Depois disso, o VMPlayer 6.0 volta ao normal e agora funciona corretamente.

    
por Mohan Sukumar 20.12.2014 / 10:03
1

Outra solução é substituir /usr/lib/vmware/modules/source/vmnet.tar por um trabalho retirado de VMware-Player-7.1.bundle . Você nem precisa esperar que o instalador termine, basta copiar o arquivo para outro lugar e abortar. Próxima execução VMware-Workstation10.bundle (no meu caso) substitua vmnet.tar e execute sua estação de trabalho em funcionamento

    
por mendras 10.06.2015 / 11:45
1

Minha versão do vmware não inclui filter.c; Descobri que precisava corrigir o vmnet usando o patch listado aqui:

link

diff -ur vmnet-only.a/driver.c vmnet-only/driver.c
--- vmnet-only.a/driver.c    2014-11-20 20:13:56.000000000 -0500
+++ vmnet-only/driver.c    2015-02-09 15:40:10.916640592 -0500
@@ -265,10 +265,17 @@
 {
    int ret = -ENOTTY;

+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
    if (filp && filp->f_op && filp->f_op->ioctl == VNetFileOpIoctl) {
       ret = VNetFileOpIoctl(filp->f_dentry->d_inode, filp, iocmd, ioarg);
    }
    return ret;
+#else
+   if (filp && filp->f_op && filp->f_op->ioctl == VNetFileOpIoctl) {
+      ret = VNetFileOpIoctl(filp->f_path.dentry->d_inode, filp, iocmd, ioarg);
+   }
+   return ret;
+#endif
 }


@@ -1191,11 +1198,19 @@
    struct inode *inode = NULL;
    long err;

+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
    if (filp && filp->f_dentry) {
       inode = filp->f_dentry->d_inode;
    }
    err = VNetFileOpIoctl(inode, filp, iocmd, ioarg);
    return err;
+#else
+   if (filp && filp->f_path.dentry) {
+      inode = filp->f_path.dentry->d_inode;
+   }
+   err = VNetFileOpIoctl(inode, filp, iocmd, ioarg);
+   return err;
+#endif
 }
 #endif

diff -ur vmnet-only.a/userif.c vmnet-only/userif.c
--- vmnet-only.a/userif.c    2014-11-20 20:13:56.000000000 -0500
+++ vmnet-only/userif.c    2015-02-09 15:41:02.150847338 -0500
@@ -523,7 +523,13 @@
       .iov_base = buf,
       .iov_len  = len,
    };
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
    return skb_copy_datagram_iovec(skb, 0, &iov, len);
+#else
+   struct iov_iter to;
+   iov_iter_init(&to, READ, &iov, 1, len);
+   return skb_copy_datagram_iter(skb, 0, &to, len);
+#endif
 }
    
por David Bau 29.09.2015 / 14:18
1

Para mim, essas soluções não funcionaram. Eu estou usando o Ubuntu 14, então eu fui em uma missão e encontrei a solução aqui .

Os comandos são os seguintes:

sudo apt-get install build-essential linux-headers-'uname -r'

Em um sistema de 32 bits, você pode instalar o VMware Player com os seguintes comandos:

mkdir ~/VMware && cd ~/VMware 
wget -c http://goo.gl/kkfRJg -O VMware-Player-i386.bundle.tar 
tar -xvf VMware-Player-i386.bundle.tar 
chmod +x VMware-Player-6.0.1-1379776.i386.bundle  
sudo sh VMware-Player-6.0.1-1379776.i386.bundle
mkdir ~/VMware && cd ~/VMware 
wget -c http://goo.gl/Uxia2s -O VMware-Player-x86_64.bundle.tar 
tar -xvf VMware-Player-x86_64.bundle.tar 
chmod +x VMware-Player-6.0.1-1379776.x86_64.bundle 
sudo sh VMware-Player-6.0.1-1379776.x86_64.bundle

Após a instalação, tudo funcionou bem e consegui montar uma VM do Windows XP com problemas mínimos. Eu tive que atualizar alguns drivers mais, mas sem problemas. O VMWare Player 6 parece ser o que funciona melhor com a minha versão do Ubuntu.

    
por user273601 07.07.2014 / 00:25
0

Isso funcionou para mim no lubuntu 18.04 LTS. Eu estou usando vmware-player-14.0.0-6661328.x86_64.bundle. Depois de baixar e instalar o vmplayer, quando eu lys trys construindo os módulos, mas falhou. Para corrigi-lo Você tem que baixar os patches deste braunch: link . não baixe o master porque:

  

O ramo "mestre" não pode ser usado para construir módulos, ele contém apenas   arquivos para que as alterações neles possam ser facilmente mesclados em todas as outras ramificações.   Para obter fontes reais, confira um branch "real"

depois de baixar, descompactar e cd no diretório extra e fazer

make
sudo make install

Agora inicie o vmplayer e ele deve funcionar

    
por ptetteh227 22.05.2018 / 00:55