web-dev-qa-db-fra.com

VMWare Workstation Pro 12 sur Ubuntu 16.04 ne peut pas compiler vmmon

J'ai installé le bundle VMware sans problèmes dans mon Ubuntu 16.04 (double cabine). Lorsque j'essaie de l'exécuter et qu'il essaie de compiler, il génère le journal suivant, il ne peut pas compiler vmmon:

...
2016-08-15T16:13:39.909+02:00| vthread-4| I125: Successfully extracted the vmmon source.
2016-08-15T16:13:39.910+02:00| vthread-4| I125: Building module with command "/usr/bin/make -j8 -C /tmp/modconfig-SUMBLV/vmmon-only auto-build HEADER_DIR=/lib/modules/4.4.0-34-generic/build/include CC=/usr/bin/gcc IS_GCC_3=no"
2016-08-15T16:13:40.934+02:00| vthread-4| W115: Failed to build vmmon.  Failed to execute the build command.

J'ai commencé à résoudre le problème en effectuant une recherche sur le Web et j'ai changé le nom de la méthode get_user_pages en get_user_pages_remote dans vmnet.tar et vmmon.tar dans leur répertoire, mais le problème n’a pas été résolu, vmmon ne compilera toujours pas.

Lors du démarrage de VMware avec gksudo via le terminal, les messages d'erreur suivants sont générés:

Starting VMware services:
   Virtual machine monitor                                            failed
   Virtual machine communication interface                             done
   VM communication interface socket family                            done
   Blocking file system                                                done
   Virtual ethernet                                                    done
   VMware Authentication Daemon                                        done

Pensant qu’il s’agissait d’un problème lié à la carte graphique, j’ai installé avec succès les pilotes NVidia pour ma carte graphique, et désactivé le démarrage sécurisé à l’aide de l’utilitaire de gestion MOK lors du démarrage après les avoir installées. J'ai également désactivé Secure Boot dans mon BIOS, c'est un ordinateur portable Asus.

J'ai oublié d'installer VMWare à l'aide de gksudo. Je pensais que la source du problème était improbable, mais je le signalerai simplement pour des raisons de précision.

La version du noyau est 4.4.0-34-generic. J'ai lu qu'il devrait incomber à l'équipe VMWare de corriger cette version du noyau. Existe-t-il une solution rapide pour résoudre ce problème ou dois-je utiliser pour Virtualbox et en finir?

J'ai quelques images de machine virtuelle que je voudrais importer ailleurs.

Merci d'avoir lu.

5
uncanny_valley

J'ai eu le même problème. Voici le correctif Allez dans le dossier

cd /usr/lib/vmware/modules/source

Décompressez le fichier vmmon.tar en utilisant (vous aurez peut-être besoin de su/Sudo pour le faire)

tar xf vmmon.tar

Editez le fichier ./vmmon-only/linux/driver.c

nano ./vmmon-only/linux/driver.c

Appliquez ces modifications, avec l'aimable autorisation de https://forums.gentoo.org/viewtopic-p-7841306.html#7841306 À peu près à la ligne 400, supprimez les lignes commençant par un - et ajoutez-en commençant par un + (ne mettez pas réellement le +). Il existe un moyen de faire cela en utilisant la commande patch mais peu importe. Si vous savez lire les fichiers de correctif, vous verrez que l'utilisateur de ce formulaire inclut une autre modification dans un autre fichier, mais tout fonctionne sans que je le fasse.

#ifdef VMX86_DEVEL 
    unregister_chrdev(linuxState.major, linuxState.deviceName); 
 #else 
-   if (misc_deregister(&linuxState.misc)) { 
-      Warning("Module %s: error unregistering\n", linuxState.deviceName); 
-   } 
+   misc_deregister(&linuxState.misc); 

Sauvegarder l'original

mv vmmon.tar vmmon.tarbackup

Retar les fichiers

tar cf vmmon.tar ./vmmon-only

Je suis un peu sceptique à partir de ce moment, puisque j'ai fait quelques choses et que je n'ai pas testé après chaque étape. Donc, les deux ne sont peut-être pas strictement nécessaires. Recompiler les bibliothèques en utilisant le driver.c que vous venez d'éditer

Sudo vmware-modconfig --console --install-all

Exécutez VMWare en lui disant d'utiliser les bibliothèques que vous venez de compiler

Sudo VMWARE_USE_SHIPPED_LIBS=yes vmwarex:
7
m3k3r1