Ubuntu 17.10 Upgrade Broke VMWare Workstation 12.5

10

Bonjour, après la mise à niveau vers Ubuntu 17.10, vmware ne démarre plus.

Je reçois le message:

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

Je suis conscient qu'il existe des correctifs disponibles et j'essaie de les appliquer et de les recompiler. J'ai exécuté la solution sur 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 ...

Malheureusement, vmware-modconfig échoue en raison d'une dépendance qu'il semble sur une version particulière de gcc. Suis-je sur la bonne voie? Toute aide à ce sujet serait très appréciée.

EDIT Merci Steve, ce qui suit a fait redémarrer vmware. J'ai inclus une correction mineure. Testé et confirmé que je pouvais exécuter une machine virtuelle.

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
la source
2
En général, la virtualisation tierce va être un peu en retard avec les nouveaux noyaux et les nouvelles versions. Cela semble affecter vmware plus que virtualbox. Comme vmware est une source fermée, vous devrez leur demander. En tant qu'alternative potentielle - c'est pourquoi j'essaie autant que possible d'utiliser KVM ou LXC (même si je pense toujours que LXC n'est pas prêt pour les serveurs de production). KVM + spice est très rapide (FWIW). Avec vmware, je suppose qu'il y aura un travail autour de 1-3 jours ou 3-4 semaines selon la complexité du problème.
Panther
Le correctif que vous essayez d'appliquer est pour résoudre un bogue avec la gestion de la mémoire, pas pour le problème lié au message d'erreur que vous avez mentionné. AFAIK il n'y a pas encore de solution à ce problème. Il y a un rapport de bug sur le tableau de bord: bugs.launchpad.net/ubuntu/+source/linux/+bug/1715552
user749720
avez-vous réussi à résoudre le problème «Échec d'obtention des informations gcc»?
Oğuzhan Topçu,
Malheureusement non, j'exécute actuellement un script que sudo exécute insmodet vmware-networkscommande, puis vmware binary en tant qu'utilisateur normal.
user1330734
J'ai Lubuntu 18.04 - la méthode de Stephen Wassell n'a pas fonctionné. La solution de tokam - la mise à niveau vers VMWare 14 ne fonctionnait pas trop - en raison de la politique de VMWare de prendre uniquement en charge le matériel le plus récent. La méthode de John a fonctionné - mais seulement si je démarre le vmplayer en tant que su. Sinon, j'obtiendrai un message fiable: Ligne 106: Erreur de mémoire 29487 (vidage de mémoire écrit) "$ BINDIR" / vmware-modconfig --appname = "VMWaer Player! --Ivon =" vmware-player "
Tobias Trappe

Réponses:

12

J'ai réussi à faire fonctionner VMWare Workstation 12.5.7 sur Kubuntu 17.10.

Dans /usr/lib/vmware/modules/source:

  1. Extraire vmmon.taretvmnet.tar

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

    Cela va créer vmmon-onlyet vmnet-onlyrépertoires.

  2. Récupérez le patch hostif.c

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

    (Remarque: https://communities.vmware.com/thread/571370 - contient également un correctif similaire pour VMWare Workstation 14)

  3. Modifier vmnet-only/bridge.c:

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

    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. En tant qu'utilisateur:

    /usr/lib/vmware/bin/vmware
    

    (pour l'empêcher de fonctionner vmware-modconfig)

Stephen Wassell
la source
Génial, excellent travail Stephen, votre réponse était extrêmement facile à suivre. J'ai répété les étapes explicitement, ainsi que la correction mineure ajoutée pour l'étape 8 dans ma question éditer ci-dessus. À votre santé!
user1330734
Heureux que cela ait fonctionné pour vous! J'ai aussi corrigé mon pas 8, merci pour la correction. J'espère que tout cela persistera pendant le redémarrage ...
Stephen Wassell
1
Merci encore Stephen, je vais bien à condition de commencer /usr/lib/vmware/bin/vmware, sinon vmware signale ne pas pouvoir trouver GCC.
user1330734
Merci beaucoup d'avoir posté! Cela m'a fait courir à nouveau. Y a-t-il un endroit où nous pouvons aller pour voir où VMWare fournit un correctif?
Eric
4
Workstation 14.1.0 est maintenant disponible, ce qui résout ce problème. my.vmware.com/group/vmware/…
Stephen Wassell
6

J'ai essayé à peu près toutes les autres solutions mais rien n'a fonctionné. Mais ces étapes ont fonctionné pour moi sur 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

Référence:

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

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

John
la source
2
cela fonctionne très bien, merci beaucoup! Je cherchais une solution à cela pour Ubuntu 18.04 depuis sa sortie!
Stam Kaly
1
Peut confirmer que cela fonctionne pour Ubuntu 18.10, avec VMWare Workstation Pro 12.5.9.
anonnoir
Cette solution a fonctionné pour moi sur Linux Mint 19.2 64bit avec vmware workstation pro 12.5.9.
Lexib0y
2

Le correctif décrit par: Stephen conduit pour beaucoup à un autre bogue: "Impossible d'obtenir les informations gcc."

La solution la plus simple consiste à télécharger la station de travail vmware player 14.1 .

L'installer à la place de la version 12.5 résout les problèmes décrits ci-dessus.

Pour ce faire, il suffit d'exécuter

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

Et suivez les instructions de l'installateur graphique.

Tokam
la source
2
qui nécessite une mise à niveau de licence
shadowbq
lancer en utilisant à la /usr/lib/vmware/bin/vmwareplace pour résoudre «Impossible d'obtenir les informations gcc»
shadowbq
2
Je pense que non commercialement, cela fonctionne également sans cette mise à niveau de la licence
tokam
2

En plus de la réponse de Stephen Wassell , si vous utilisez toujours la version VM Workstation 12.5.x, vous devrez recompiler votre .kopour chaque patch du noyau .. ce qui est beaucoup ..

Vous pouvez voir cette erreur: ( format de module non valide )

# 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

Voici un outil pour mettre à jour les modules du noyau pour les distributions ubuntu-flavour-distros après un correctif du noyau.

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

J'ai également inclus un simple wrapper .shque vous pouvez utiliser pour remplacer le lancement de vmware workstation afin que vous puissiez être sûr qu'il charge correctement les modules vm-network et vm-mon kernel à chaque fois.

Remarque: ce script ne développera pas le «tar» ou le «patch» des fichiers source, il s'agit de recompiler automatiquement les modules du noyau après un patch du noyau en suivant les étapes d'origine de Stephen Wassell.

shadowbq
la source