A atualização do Ubuntu 17.10 quebrou o VMWare Workstation 12.5

10

Olá, depois de atualizar para o Ubuntu 17.10, o vmware agora não está sendo iniciado.

Eu recebo a mensagem:

/usr/lib/vmware/bin/vmware-modconfig: Relink `/lib/x86_64-linux-gnu/libbsd.so.0' with `/lib/x86_64-linux-gnu/librt.so.1' for IFUNC symbol `clock_gettime'

Estou ciente de que existem patches disponíveis e estou tentando aplicá-los e recompilar. Eu executei a solução em https://communities.vmware.com/thread/571370 :

cd ~  
#Copy the vmmon source tar ball to your temporary location
cp /usr/lib/vmware/modules/source/vmmon.tar .   
#Extract the tar ball
tar xf vmmon.tar  

#Download the modified file that mkubecek posted and overwrite the one from the tar ball for VMware Workstation 12.5:
wget -O ./vmmon-only/linux/hostif.c https://raw.githubusercontent.com/mkubecek/vmware-host-modules/b50848c985f1a6c0a341187346d77f0119d0a835/vmmon-only/linux/hostif.c   

#Wrap up the newly modified files into a tar ball replacing the original one
sudo tar cf /usr/lib/vmware/modules/source/vmmon.tar vmmon-only  

#Rebuild the VMware kernel modules
sudo vmware-modconfig --console --install-all  
Failed to get gcc information. 
gcc --version
gcc (Ubuntu 7.2.0-8ubuntu3) 7.2.0 ...

Infelizmente, o vmware-modconfig está falhando devido a uma dependência que parece em uma versão específica do gcc. Estou no caminho certo? Qualquer ajuda com esse problema seria muito apreciada.

EDIT Obrigado Steve, o abaixo tem vmware indo novamente. Eu incluí uma correção menor. Testado e confirmado, eu poderia executar uma máquina virtual.

sudo su
# do all below as root
cd /usr/lib/vmware/modules/source
tar xvf vmmon.tar 
tar xvf vmnet.tar
wget -O ./vmmon-only/linux/hostif.c https://raw.githubusercontent.com/mkubecek/vmware-host-modules/b50848c985f1a6c0a341187346d77f0119d0a835/vmmon-only/linux/hostif.c
vim vmnet-only/bridge.c
cd vmmon-only/
make
cd ../vmnet-only/
make
cd ..
mkdir /lib/modules/4.13.0-16-generic/misc
cp *.o /lib/modules/4.13.0-16-generic/misc
insmod /lib/modules/4.13.0-16-generic/misc/vmmon.o
insmod /lib/modules/4.13.0-16-generic/misc/vmnet.o
rm /usr/lib/vmware/lib/libz.so.1/libz.so.1
ln -s /lib/x86_64-linux-gnu/libz.so.1 /usr/lib/vmware/lib/libz.so.1/libz.so.1
vmware-networks --start
exit

# run vmware as normal user
/usr/lib/vmware/bin/vmware
user1330734
fonte
2
Em geral, a virtualização de terceiros ficará um pouco atrasada com novos kernels e novos lançamentos. Isso parece afetar mais o vmware do que o virtualbox. Como o vmware é de código fechado, você terá que perguntar a eles. Como uma alternativa alternativa - é por isso que tento, tanto quanto possível, usar o KVM ou o LXC (embora ainda sinta que o LXC não está pronto para servidores de produção). O tempero KVM + é muito rápido (FWIW). Com o vmware, acho que haverá um trabalho em torno de 1 a 3 dias ou 3 a 4 semanas, dependendo da complexidade do problema.
Pantera
O patch que você está tentando aplicar é para solucionar um erro no processamento de memória, não para o problema relacionado à mensagem de erro que você mencionou. AFAIK ainda não há solução para esse problema. Há um relatório de bug no Launchpad: bugs.launchpad.net/ubuntu/+source/linux/+bug/1715552
user749720
você conseguiu resolver o problema "Falha ao obter informações do gcc"?
Oğuzhan Topçu 10/11
Infelizmente, não, atualmente eu executo um script que sudo executa insmode vmware-networkscomanda e depois vmware binário como usuário normal.
user1330734
Eu tenho o Lubuntu 18.04 - o método de Stephen Wassell não funcionou. A solução do tokam - atualizar para o VMWare 14 também não funcionou - por causa da política do VMWare apenas para oferecer suporte ao hardware mais recente. O método de John funcionou - mas somente se eu iniciar o vmplayer como su. Caso contrário, receberei uma mensagem confiável: Linha 106: 29487 erro de memória (despejo de memória gravado) "$ BINDIR" / vmware-modconfig --appname = "VMWaer Player! --Ivon =" vmware-player "
Tobias Trappe

Respostas:

12

Eu consegui fazer o VMWare Workstation 12.5.7 funcionar no Kubuntu 17.10.

Em /usr/lib/vmware/modules/source:

  1. Extrair vmmon.tarevmnet.tar

    sudo tar -xf vmmon.tar
    sudo tar -xf vmnet.tar
    

    Isto irá criar vmmon-onlye vmnet-onlydiretórios.

  2. Buscar o remendado hostif.c

    sudo wget -O vmmon-only/linux/hostif.c https://raw.githubusercontent.com/mkubecek/vmware-host-modules/b50848c985f1a6c0a341187346d77f0119d0a835/vmmon-only/linux/hostif.c
    

    (observação: https://communities.vmware.com/thread/571370 - também contém uma correção semelhante para o VMWare Workstation 14)

  3. Editar vmnet-only/bridge.c:

    639c639
    <        atomic_inc(&clone->users);
    ---
    >        atomic_inc((atomic_t*)&clone->users);
    
  4. Corre

    make -C vmmon-only
    make -C vmnet-only
    cp -t /lib/modules/4.13.0-16-generic/misc *.ko
    modprobe -r vmmon
    insmod /lib/modules/4.13.0-16-generic/misc/vmmon.ko
    rm /usr/lib/vmware/lib/libz.so.1/libz.so.1
    ln -s /lib/x86_64-linux-gnu/libz.so.1 /usr/lib/vmware/lib/libz.so.1/libz.so.1  # see https://communities.vmware.com/thread/572259
    vmware-networks --start  # see https://forum.chakralinux.org/viewtopic.php?id=8579
  5. Como usuário:

    /usr/lib/vmware/bin/vmware
    

    (para impedir que funcione vmware-modconfig)

Stephen Wassell
fonte
Impressionante, ótimo trabalho Stephen, sua resposta foi extremamente fácil de seguir. Repeti as etapas explicitamente, bem como adicionei pequenas correções para a etapa 8 na minha pergunta acima. Felicidades!
user1330734
Que bom que funcionou para você! Corrigi meu passo 8 também, obrigado pela correção. Espero que tudo isto persiste ao longo de reiniciar ...
Stephen Wassell
11
Mais uma vez obrigado Stephen, estou bem desde que comece /usr/lib/vmware/bin/vmware, caso contrário, o vmware relata que não foi possível encontrar o GCC.
user1330734
Muito obrigado por postar! Isso me fez correr de novo. Existe algum lugar para ver onde o VMWare está fornecendo uma correção?
Eric Eric
4
A estação de trabalho 14.1.0 foi lançada, corrigindo esse problema. my.vmware.com/group/vmware/…
Stephen Wassell
6

Eu tentei aproximadamente todas as outras soluções, mas nada funcionou. Mas essas etapas funcionaram para mim no Ubuntu 18.04, VMware 12.5.9

git clone https://github.com/mkubecek/vmware-host-modules.git
cd vmware-host-modules
git checkout workstation-12.5.9 (change it to your version. it's important)
make && sudo make install
cd /usr/lib/vmware/lib/libz.so.1
sudo mv libz.so.1 libz.so.1.old
sudo ln -s /lib/x86_64-linux-gnu/libz.so.1 .
sudo depmod -a
sudo /etc/init.d/vmware restart

Referência:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1715552

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1715552/comments/29

John
fonte
2
isso funciona muito bem, muito obrigado! Eu estive procurando uma solução para isso para o ubuntu 18.04 desde que saiu!
precisa
11
Pode confirmar que isso funciona no Ubuntu 18.10, com o VMWare Workstation Pro 12.5.9.
Anonnoir 06/02/19
Esta solução funcionou para mim no Linux Mint 19.2 64bit com vmware workstation pro 12.5.9.
precisa saber é o seguinte
2

A correção de bug descrita por: Stephen leva muitos a outros erros: "Falha ao obter informações do gcc."

A solução mais simples é baixar o vmware player workstation 14.1 .

Instalá-lo em vez da versão 12.5 resolve os problemas descritos acima.

Para fazer isso, basta executar

chmod +x VMware-Player-14.1.1-7528167.x86_64.bundle
sudo ./VMware-Player-14.1.1-7528167.x86_64.bundle

E siga as instruções no instalador gráfico.

tokam
fonte
2
que requer uma atualização de licença
shadowbq 31/01
inicie usando /usr/lib/vmware/bin/vmwarepara resolver "Falha ao obter informações do gcc"
shadowbq 31/01
2
Acho noncomercially ele também funciona sem essa atualização de licença
tokam
2

Além da resposta de Stephen Wassell , se você ainda estiver executando a versão VM Workstation 12.5.x, precisará compilar novamente o seu .kopara cada patch do kernel.

Você pode ver este erro: ( formato de módulo inválido )

# insmod /lib/modules/4.13.0-31-generic/misc/vmnet.ko 
insmod: ERROR: could not insert module /lib/modules/4.13.0-31-generic/misc/vmnet.ko: Invalid module format

Aqui está uma ferramenta para manter os módulos do kernel do ubuntu-flavor-distros atualizados após um patch do kernel.

https://gist.github.com/shadowbq/5897002b620b093ca7578b5f13c3f3a1

Também incluí um invólucro simples .shque você pode usar para substituir a estação de trabalho vmware, para ter certeza de que carrega adequadamente os módulos de rede vm-network e vm-mon sempre.

Nota: este script não expandirá o 'tar' ou 'corrigirá' os arquivos de origem; é para recompilar automaticamente os módulos do kernel após um patch do kernel, seguindo as etapas originais de Stephen Wassell.

shadowbq
fonte