Ubuntu – Installing VMware on 18.04: Failed to build vmmon

18.04vmware

I am trying to install VMware with the instructions at https://help.ubuntu.com/community/VMware/Player

I get an error that tells me to look into a log file, which contains:

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.

To figure out what was wrong exactly, I ran vmware-modconfig --console --install-all on the command line, and it revealed these errors:

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

How to fix it, or make implicit-function-declaration and incompatible-pointer-types be not considered as errros?
Or any easier method to install the latest VMware on 18.04?

Note: Different error from VMWare Workstation Pro 12 on Ubuntu 16.04 cannot compile vmmon

Best Answer

Install the latest version 14.1.2. The bug has been fixed. See here. Here is the download link.