Installation de VMware sur 18.04: échec de la création de vmmon

10

J'essaie d'installer VMware avec les instructions sur https://help.ubuntu.com/community/VMware/Player

J'obtiens une erreur qui me dit de regarder dans un fichier journal, qui contient:

Extracting the vmmon source from "/usr/lib/vmware/modules/source/vmmon.tar".
Successfully extracted the vmmon source.
Building module with command "/usr/bin/make -j4 -C /tmp/modconfig-GoVdrH/vmmon-only auto-build HEADER_DIR=/lib/modules/4.15.0-22-generic/build/include CC=/usr/bin/gcc IS_GCC_3=no"
Failed to build vmmon.  Failed to execute the build command.

Pour comprendre ce qui n'allait pas exactement, j'ai couru vmware-modconfig --console --install-allsur la ligne de commande, et cela a révélé ces erreurs:

./arch/x86/include/asm/processor-flags.h:39:0: note: this is the location of the previous definition
 #define CR3_PCID_MASK 0xFFFull

                      ^
/tmp/modconfig-3S1CBa/vmmon-only/linux/driver.c:256:12: error: ‘struct timer_list’ has no member named ‘data’
    tscTimer.data     = 0;
    unsigned int lockedPages = global_page_state(NR_PAGETABLE) +
                               ^~~~~~~~~~~~~~~~~
                               global_numa_state
/tmp/modconfig-3S1CBa/vmmon-only/linux/driver.c: In function ‘init_module’:
/tmp/modconfig-3S1CBa/vmmon-only/linux/driver.c:338:4: error: implicit declaration of function ‘init_timer’; did you mean ‘init_timers’? [-Werror=implicit-function-declaration]
    init_timer(&tscTimer);
    ^~~~~~~~~~
    init_timers
/tmp/modconfig-3S1CBa/vmmon-only/linux/hostif.c: In function ‘HostIF_InitUptime’:
    init_timers
/tmp/modconfig-3S1CBa/vmmon-only/linux/hostif.c:1754:31: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
    uptimeState.timer.function = HostIFUptimeResyncMono;
 LinuxDriverSyncReadTSCs(uint64 *delta) // OUT: TSC max - TSC min
 ^~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
cc1: some warnings being treated as errors
scripts/Makefile.build:332: recipe for target '/tmp/modconfig-3S1CBa/vmmon-only/linux/hostif.o' failed
make[2]: *** [/tmp/modconfig-3S1CBa/vmmon-only/linux/hostif.o] Error 1
Makefile:110: recipe for target 'vmmon.ko' failed
make: *** [vmmon.ko] Error 2

Comment y remédier ou faire en sorte que la déclaration de fonction implicite et les types de pointeurs incompatibles ne soient pas considérés comme des erreurs?
Ou une méthode plus simple pour installer la dernière version de VMware le 18.04?

Remarque: une erreur différente de VMWare Workstation Pro 12 sur Ubuntu 16.04 ne peut pas compiler vmmon

Nicolas Raoul
la source
vous pouvez essayer les solutions ici
ptetteh227

Réponses:

6

Installez la dernière version 14.1.2 . Le bug a été corrigé. Voyez ici . Voici le lien de téléchargement.

Michael
la source
15

J'ai trouvé une solution et créé un fichier de script basé sur les sources github de mkucebek .

Vous devez créer un fichier avec ce contenu et l'exécuter à chaque fois que cela est nécessaire (généralement lorsque vous installez un nouveau noyau):

#!/bin/bash
VMWARE_VERSION=workstation-12.5.9
TMP_FOLDER=/tmp/patch-vmware
rm -fdr $TMP_FOLDER
mkdir -p $TMP_FOLDER
cd $TMP_FOLDER
git clone https://github.com/mkubecek/vmware-host-modules.git
cd $TMP_FOLDER/vmware-host-modules
git checkout $VMWARE_VERSION
git fetch
make
sudo make install
sudo rm /usr/lib/vmware/lib/libz.so.1/libz.so.1
sudo ln -s /lib/x86_64-linux-gnu/libz.so.1 
/usr/lib/vmware/lib/libz.so.1/libz.so.1
sudo /etc/init.d/vmware restart

Ensuite, il vous suffit de lancer VMware Workstation sans créer de modules.

Charly
la source
Salut Charly, bienvenue sur askubuntu! Veuillez ajouter les liens dans votre prochain message.
abu_bua
Non-concordance de version avec le module vmmon: attendait 329.0, a obtenu 309.0. Vous avez une version incorrecte du module de noyau «vmmon». Essayez de réinstaller VMware Workstation.
altagir
1
Cette solution a parfaitement fonctionné pour moi sur Ubuntu 19.04 et Workstation 15.0.4
Lukas Bradley
J'ai eu le même problème avec 'VMware Workstation 15.0.4', résolu avec la compilation et l'installation de 'vmware-host-modules' Si vous utilisez une autre version de VMWare, trouvez la version appropriée avec git branch -aet passez à la caisse avec git checkout. supprimer et lier libz.so.1et redémarrer le service vmware n'est pas requis pour moi.
soroosh
3
#!/bin/bash
VMWARE_VERSION=`vmware-installer -l |grep workstat|awk '{print $2}' |awk 'BEGIN {FS="."}{print "workstation-"$1"."$2"."$3}'`
echo $VMWARE_VERSION
TMP_FOLDER=/tmp/patch-vmware
rm -fdr $TMP_FOLDER
mkdir -p $TMP_FOLDER
cd $TMP_FOLDER
git clone https://github.com/mkubecek/vmware-host-modules.git
cd $TMP_FOLDER/vmware-host-modules
git checkout $VMWARE_VERSION
git fetch
make
sudo make install
sudo rm /usr/lib/vmware/lib/libz.so.1/libz.so.1
sudo ln -s /lib/x86_64-linux-gnu/libz.so.1 
/usr/lib/vmware/lib/libz.so.1/libz.so.1
sudo /etc/init.d/vmware restart

Cela fonctionne pour mon sur Fedora 30 et Workstation 15.1.0

Raul Peñaloza
la source
1
Pouvez-vous ajouter plus de détails sur ce que fait et comment le script?
Simon Sudler
il s'agit de la même version du script montrée ci-dessus, mais "détectez" la version installée de la station de travail vmware
Raul Peñaloza
a travaillé pour openSuSE Tumbleweed
blissini