在18.04上安装VMware:无法构建vmmon

我正在尝试使用https://help.ubuntu.com/community/VMware/Player上的说明安装VMware

我收到一个错误,告诉我查看一个日志文件,其中包含:

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. 

为了弄清楚到底出了什么问题,我在命令行上运行了vmware-modconfig --console --install-all ,它显示了以下错误:

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

如何解决它,或使隐式函数声明和不兼容指针类型不被视为错误?
或者更简单的方法在18.04上安装最新的VMware?

注意: Ubuntu 16.04上VMWare Workstation Pro 12的不同错误无法编译vmmon

安装最新版本14.1.2 。 该错误已得到修复。 看到这里 。 这是下载链接。

我找到了一个解决方案,并根据mkucebek的github源创建了一个脚本文件。

您必须使用此内容创建一个文件,并在每次需要时运行它(通常在安装新内核时):

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

然后,您只需在不构建模块的情况下启动VMware Workstation。