web-dev-qa-db-fra.com

Mise à niveau Ubuntu 17.10 VMware VMware Workstation 12.5

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

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 et je tente de les appliquer et de les recompiler. J'ai couru de la solution à https://communities.vmware.com/thread/57137 :

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 à cause d'une dépendance qui semble se trouver sur une version particulière de gcc. Suis-je sur la bonne voie? Toute aide concernant ce problème serait grandement appréciée.

EDIT Merci Steve, la version ci-dessous a redémarré vmware. J'ai inclus une correction mineure. Testé et confirmé, je peux 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
8
user1330734

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

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

  1. Extraire vmmon.tar and vmnet.tar

    Sudo tar -xf vmmon.tar
    Sudo tar -xf vmnet.tar
    

    Cela créera les répertoires vmmon-only et vmnet-only.

  2. Récupère le hostif.c corrigé

    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/57137 - contient également un correctif similaire pour VMWare Workstation 14)

  3. Éditer 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 d'exécuter vmware-modconfig)

12
Stephen Wassell

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

4
john

Le correctif décrit par: Stephen mène pour beaucoup à un autre bogue: "Échec d'obtention des informations gcc."

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

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

Pour le faire, il suffit de courir

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 du programme d'installation graphique.

2
tokam

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

Vous pouvez voir cette erreur: ( Format de module invalide )

# 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 garder les modules du noyau pour les distributions ubuntu -avor-mises à jour après un correctif pour le noyau.

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

J'ai également inclus un simple wrapper.sh que vous pouvez utiliser un remplacement pour lancer vmware workstation afin de pouvoir vous assurer qu'il charge correctement les modules du noyau vm-network et vm-mon à chaque fois.

Remarque: ce script ne développera pas les fichiers source "tar" ou "correctifs". Il sert à la recompilation automatique des modules du noyau après un correctif du noyau après les étapes initiales de Stephen Wassell.

2
shadowbq