Instalación de VMware en 18.04: no se pudo compilar vmmon


10

Estoy tratando de instalar VMware con las instrucciones en https://help.ubuntu.com/community/VMware/Player

Recibo un error que me dice que busque en un archivo de registro, que contiene:

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.

Para averiguar exactamente qué estaba mal, ejecuté vmware-modconfig --console --install-allla línea de comando y reveló estos errores:

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

¿Cómo solucionarlo o hacer que la declaración de función implícita y los tipos de puntero incompatibles no se consideren errros?
¿O algún método más fácil para instalar el último VMware en 18.04?

Nota: Un error diferente de VMWare Workstation Pro 12 en Ubuntu 16.04 no puede compilar vmmon


podría probar las soluciones aquí
ptetteh227

Respuestas:


6

Instale la última versión 14.1.2 . El error ha sido corregido. Ver aquí . Aquí está el enlace de descarga.


15

Encontré una solución y creé un archivo de script basado en las fuentes github de mkucebek .

Debe crear un archivo con este contenido y ejecutarlo cada vez que sea necesario (por lo general, cuando instala un nuevo núcleo):

#!/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

Luego, solo tiene que iniciar VMware Workstation sin crear módulos.


Hola Charly, bienvenido a askubuntu! Agregue los enlaces en su próxima publicación.
abu_bua

La versión no coincide con el módulo vmmon: esperando 329.0, obtuvo 309.0. Tiene una versión incorrecta del módulo del núcleo 'vmmon'. Intente reinstalar VMware Workstation.
altagir 01 de

1
Esta solución funcionó perfectamente para mí en Ubuntu 19.04 y Workstation 15.0.4
Lukas Bradley

Tengo el mismo problema con 'VMware Workstation 15.0.4', resuelto con la compilación e instalación de 'vmware-host-modules'. Si usa otra versión de VMWare, encuentre la versión adecuada con git branch -ay pague con git checkout. eliminar y vincular libz.so.1y reiniciar el servicio vmware no es necesario para mí.
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

Esto funciona para mi en Fedora 30 y Workstation 15.1.0


1
¿Puedes agregar más detalles sobre lo que el script está haciendo y cómo?
Simon Sudler

es la misma versión del script que se mostró obove, pero "detecta" la versión instalada de la estación de trabajo vmware
Raul Peñaloza

trabajó para openSuSE Tumbleweed
blissini
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.