VMware Workstation 12 vmmon não encontrado ou não carregado

10

No Ubuntu 12.04, eu uso alegremente a VMware Workstation 6. Então, um belo dia, esse erro ocorreu ao iniciar uma VM:

Could not open /dev/vmmon: No such file or directory.
Please make sure that the kernel module `vmmon' is loaded.
Failed to initialize monitor device.

Não tenho certeza do motivo, mas pode ser, puramente especulativo, devido à atualização do driver da Nvidia (era semelhante a uma visita ao consultório do dentista, portanto, não me diga para mexer novamente com o driver gráfico. )
Em busca de uma resolução, atualizei para o VMware Workstation 12 usando o instalador da GUI.

gksudo bash xxxxx.bundle  

Suponho que foi inteligente o suficiente para desinstalar a versão anterior antes de prosseguir com a instalação da nova versão. Tudo está bom, exceto pelo mesmo problema acima quando tentei iniciar uma máquina virtual. De fato, como aconselhado, não consegui encontrar o arquivo ou diretório / dev / vmmon no meu sistema (isso também é verdade antes de reinstalar a versão mais recente).
Seguindo outro conselho sensato, tentei:

sudo vmware-modconfig --console --install-all

O resultado completo (para que eu não seja votado por falta de detalhes) é o seguinte:

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 kernel build system.
make: Entering directory `/tmp/modconfig-ha12A3/vmmon-only'
/usr/bin/make -C /lib/modules/3.13.0-49-generic/build/include/..    SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/linux-headers-3.13.0-49-generic'
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/linux/driver.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/linux/driverLog.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/linux/hostif.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/apic.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/comport.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/cpuid.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/hashFunc.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/memtrack.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/phystrack.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/task.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/vmx86.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/vmcore/moduleloop.o
/tmp/modconfig-ha12A3/vmmon-only/linux/driver.c: In function   ‘LinuxDriver_Ioctl’:
/tmp/modconfig-ha12A3/vmmon-only/linux/driver.c:1983: warning: the frame size of 1280 bytes is larger than 1024 bytes
  LD [M]  /tmp/modconfig-ha12A3/vmmon-only/vmmon.o
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: "mcount" [/tmp/modconfig-ha12A3/vmmon-only/vmmon.ko] undefined!
  CC      /tmp/modconfig-ha12A3/vmmon-only/vmmon.mod.o
  LD [M]  /tmp/modconfig-ha12A3/vmmon-only/vmmon.ko
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-49-generic'
/usr/bin/make -C $PWD SRCROOT=$PWD/. \
      MODULEBUILDDIR= postbuild
make[1]: Entering directory `/tmp/modconfig-ha12A3/vmmon-only'
make[1]: `postbuild' is up to date.
make[1]: Leaving directory `/tmp/modconfig-ha12A3/vmmon-only'
cp -f vmmon.ko ./../vmmon.o
make: Leaving directory `/tmp/modconfig-ha12A3/vmmon-only'
Using kernel build system.
make: Entering directory `/tmp/modconfig-ha12A3/vmnet-only'
/usr/bin/make -C /lib/modules/3.13.0-49-generic/build/include/..     SUBDIRS=$PWD     SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/linux-headers-3.13.0-49-generic'
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/driver.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/hub.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/userif.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/netif.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/bridge.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/procfs.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/smac_compat.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/smac.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/vnetEvent.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/vnetUserListener.o
  LD [M]  /tmp/modconfig-ha12A3/vmnet-only/vmnet.o
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: "mcount" [/tmp/modconfig-ha12A3/vmnet-only/vmnet.ko] undefined!
  CC      /tmp/modconfig-ha12A3/vmnet-only/vmnet.mod.o
  LD [M]  /tmp/modconfig-ha12A3/vmnet-only/vmnet.ko
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-49-generic'
/usr/bin/make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[1]: Entering directory `/tmp/modconfig-ha12A3/vmnet-only'
make[1]: `postbuild' is up to date.
make[1]: Leaving directory `/tmp/modconfig-ha12A3/vmnet-only'
cp -f vmnet.ko ./../vmnet.o
make: Leaving directory `/tmp/modconfig-ha12A3/vmnet-only'
Starting VMware services:
   Virtual machine monitor                                            failed
   Virtual machine communication interface                             done
   VM communication interface socket family                            done
   Blocking file system                                                done
   Virtual ethernet                                                   failed
   VMware Authentication Daemon                                        done
Unable to start services

Vejo algumas mensagens de aviso, mas nenhum erro, portanto desconcertante, de fato, o caso do vmmon ausente e não carregável .

Seguindo outros conselhos:

>> sudo /etc/init.d/vmware restart
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
Starting VMware services:
   Virtual machine monitor                                            failed
   Virtual machine communication interface                             done
   VM communication interface socket family                            done
   Blocking file system                                                done
   Virtual ethernet                                                   failed
   VMware Authentication Daemon                                        done

>> sudo modprobe vmmon
FATAL: Error inserting vmmon (/lib/modules/3.13.0-49-generic/misc/vmmon.ko): Unknown symbol in module, or unknown parameter (see dmesg)

Teu sábio conselho, busco desesperadamente.

ng0323
fonte
Tentei copiar o arquivo vmmon de outra estação de trabalho que estava indo bem com o VMware, mas não conseguiu. É um arquivo 'especial' de 0 byte. O que é esse vmmon-ster covarde ??
Ng0323
Tentei desinstalar manualmente a partir da linha de comando, reinstalei a versão mais recente (baixada hoje) e repeti os conselhos acima, mas, infelizmente, meus esforços foram em vão!
Ng0323
1
Por favor tentesudo vmware-modconfig --console --install-all
Charles Green
1
Existe uma maneira de corrigir isso com a inicialização ufi ativada?
Rafaelphp
@CharlesGreen solução funcionou para mim
TungstenX

Respostas:

12
sudo vmware-modconfig --console --install-all 

Este comando corrigiu para mim

Zack Boniphace
fonte
8

Desativar a Inicialização segura do UEFI é uma resposta ruim, mas é a resposta oficial no fórum do VMWare.

Eu tive um problema semelhante ao instalar o VirtualBox e consegui resolver meu problema do VMWare usando o mesmo método. Isso me permite manter a inicialização segura ativada e também usar o VMWare.

O problema é que o módulo do kernel do vmware não está assinado, portanto, falha ao ser carregado quando a inicialização segura está ativada. No entanto, você pode "autoassinar" o módulo, o que fiz para a estação de trabalho VMWare e o VirtualBox.

  1. Vá para esta postagem do fórum: https://forums.virtualbox.org/viewtopic.php?f=7&t=77363&start=15
  2. Ir para o post por Fayce66 em 6 de maio de 2016, 08:37
  3. Em cada comando, substitua o módulo do kernel "vboxdrv" (nome do módulo de caixa virtual) por "vmmon" (nome do módulo vmware)
  4. Pode ser necessário executar todos os comandos novamente para o módulo do kernel "vmnet" (módulo de rede vmware)

Esses passos funcionaram para mim. Consigo manter a inicialização segura ativada e usar o VMWare Workstation.

Uma aposta
fonte
vai colocar o conteúdo como um link pastebin aqui no caso de quebra de link originais (uma vez que, provavelmente, seria muito tempo para BlockQuote na resposta): pastebin.com/LyLdy3Wb
DeveloperACE
também aparentemente a pessoa nesse comentário citou um link para gorka.eguileor.com/vbox-vmware-in-secureboot-linux (versão atualizada gorka.eguileor.com/vbox-vmware-in-secureboot-linux-2016-update ) como sua fonte para a correção, pode ser útil para alguém
DeveloperACE
Também pode ser útil notar que mokmanager.efi pode ser chamado mmx64.efi acordo com rodsbooks.com/efi-bootloaders/secureboot.html
DeveloperACE
6

É possível que o seu problema com o VMware Workstation 12 seja ...

No host Linux com o modo seguro ativado, não é permitido carregar nenhum driver não assinado. Devido a isso, os drivers VMware, como vmmon e vmnet, não podem ser carregados, o que impede que a máquina virtual seja ligada.

Para corrigir isso sem desativar a inicialização segura, você pode fazer o seguinte em um terminal para assinar automaticamente os drivers:

  1. Gere um par de chaves usando o openssl para assinar os módulos vmmon e vmnet:

    openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VMware/"
    

    (Substitua MOK pelo nome do arquivo que você deseja para a chave.)

  2. Assine os módulos usando a chave gerada executando estes comandos:

    sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon)
    sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmnet)
    
  3. Importe a chave pública para a lista MOK do sistema executando este comando:

    sudo mokutil --import MOK.der
    
  4. Confirme uma senha para esta solicitação de inscrição no MOK.

  5. Reinicie sua máquina. Siga as instruções para concluir a inscrição no console UEFI.

Citado neste artigo da VMWare: https://kb.vmware.com/kb/2146460

EriC
fonte
Isso resolveu meu problema, obrigado! Basta ter a certeza de ter sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon)e sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $ (modinfo -n vmnet)de acordo com a página vinculada e adicione sudoa mokutil --import MOK.derchamar acima, com a opção de usar sudo passwd rootseguido por sudo mokutil --import MOK.der --root-pwse como acima não funciona.
precisa saber é o seguinte
1

Apenas desative a Inicialização segura das opções UEFI.

https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2103112

bilgitay
fonte
Desabilitar a inicialização segura não é uma resposta ruim. Na verdade, este é o único que funcionou em ambas as minhas máquinas (desktop e laptop) executando o ubuntu 18.04 LTS e VMPlayer 14.x. Problema ocorre no momento da abertura de um arquivo de imagem. Em vez de gastar muito tempo em várias soluções - eu recomendaria melhor desativar a inicialização segura por enquanto e depois habilitá-la quando a imagem tiver sido carregada e usada.
Ashu