10

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

1
  • you could try the solutions here
    – ptetteh227
    May 31, 2018 at 0:48

3 Answers 3

23

I found a solution and create a script file based on mkucebek's github sources .

You must create a file with this content and run it each time it's needed (Usually when you install a new kernel) :

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

Then, you just have to launch VMware Workstation without building modules.

4
  • Hi Charly, welcome to askubuntu! Please add the links in your next post.
    – abu_bua
    Jul 4, 2018 at 13:16
  • Version mismatch with vmmon module: expecting 329.0, got 309.0. You have an incorrect version of the 'vmmon' kernel module. Try reinstalling VMware Workstation.
    – altagir
    Nov 1, 2018 at 2:33
  • 1
    This solution worked perfectly for me on Ubuntu 19.04 and Workstation 15.0.4 Apr 19, 2019 at 22:08
  • I got the same issue with 'VMware Workstation 15.0.4 ', solved with compile and install 'vmware-host-modules' If you using another version of VMWare, find out the appropriate version with git branch -a, and checkout with git checkout. remove and link of libz.so.1 and restart the vmware service is not required for me.
    – soroosh
    Dec 8, 2019 at 7:03
6

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

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

This works for my on Fedora 30 and Workstation 15.1.0

3
  • 1
    Can you add some more details on what the script is doing and way? Jun 10, 2019 at 16:09
  • it is the same version of the script showed obove, but "detect" the installed version of vmware workstation Jul 3, 2019 at 16:46
  • worked for openSuSE Tumbleweed
    – blissini
    Sep 16, 2019 at 9:44

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .