From Mageia wiki
Jump to: navigation, search

Vmware-workstation.png

Introduction

This page documents how to install VMware Workstation version 12.5.9 in Mageia 6 (with kernel 4.14.65). The details below explain how to apply work-arounds to enable the default VMware 12.5.9 bundle work in Mageia 6.


What is VMware?

VMware is virtualization software that enables the creation of one or more "virtual machines".

For example, it is possible to install a different operating system such as Ubuntu, Windows, etc as a "guest" virtual machine.

One of the benefits of this is to be able to run different operating systems at the same time on the same physical hardware. For example, you may prefer using Mageia Linux but need to run Windows to keep your satnav device up-to-date. In this case, Mageia is installed on the physical hardware and Windows can be installed as a guest virtual machine allowing the satnav windows application software to run.

VMware is commercial virtualization software which is not available in the Mageia URPMI sources. In order to download the install image it is necessary to register and login on http://vmware.com .

A license key (purchased from VMware) is needed to run VMware beyond the free trial period.


Preparation

sudo

This page documents the installation of VMware using sudo where needed.

Check that you have sudo installed and configured as described here: Configuring_sudo

Install C++ development package

The C++ development package needs to be installed to enable compilation of some kernel modules used by VMware workstation.

# Install C++ development package
# (copy & paste, run as root):

 urpmi task-c++-devel

# (end copy & paste)

Install libcanberra-gtk0 package

/bin/sudo urpmi libcanberra-gtk0

Install required kernel packages

Kernel modules have to be compiled for VMware workstation. The latest kernel-devel package needs to be installed. Check which kernel you have with the following command:

$ uname -r
4.14.65-desktop-1.mga6

The above example shows a "desktop" kernel. Another kernel type would be: "server". Open a root shell and set a shell variable for the kernel type:

# Define shell variable "kernel_type"
# (copy & paste, run as root):

  kernel_type=$(uname -r | awk -F- '{print$2}')

# (end copy & paste)

Now, check that kernel-desktop-latest installed (NB: if it is "server" then check for kernel-server-latest):

$ rpm -qa | grep "^kernel-${kernel_type}-latest"
kernel-desktop-latest-4.14.65-1.mga6

We do have kernel-desktop-latest installed. That is good. If you don't see that installed, you can install it:

  # Install kernel "latest" meta rpm
  # (copy & paste, run as root)

  /sbin/urpmi kernel-${kernel_type}-latest

  # (end copy & paste)

Next, check the matching devel kernel rpm is installed:

$ rpm -qa | grep "^kernel-${kernel_type}-devel-latest"
kernel-desktop-devel-latest-4.14.65-1.mga6

We see kernel-desktop-devel-latest and that is good. If kernel-desktop-devel-latest was not installed, install it with:

  # Install kernel "devel" latest meta rpm
  # (copy & paste, run as root)

  /sbin/urpmi kernel-${kernel_type}-devel-latest

  # (end copy & paste)

Install other required packages

A library needed by the VMware installer when running in console (non-GUI) mode is "lib64ncursesw5":

  # Install "lib64ncursesw5"
  # (copy & paste, run as root)

  /sbin/urpmi lib64ncursesw5

  # (end copy & paste)


Download the VMware workstation 12.5.9 install image

A 30 day trial copy of the VMware workstation install image is available from http://vmware.com after free registration.

The VMware workstation 12 image can be found by searching for "VMware-Workstation-Full-12.5.9-7535481.x86_64.bundle" on the http://vmware.com page.

Example: https://my.vmware.com/group/vmware/details?downloadGroup=WKST-1259-LX&productId=524&rPId=20841

Verify download

In the VMware download page, click on "Read More" to display the checksums for the install image file. Copy the MD5 checksum to a local file like this:

  # Copy MD5 checksum to local file same name but with .md5 name extension
  # (copy&paste run as non-root)

  f=VMware-Workstation-Full-12.5.9-7535481.x86_64.bundle

  echo "e5624d5ce1e82f16551d82d7c2e54bb8  ${f}" > ${f}.md5

  # Verify MD5 checksum
  md5sum -c ${f}.md5

  # (end copy & paste)

Example:

[user@localhost vmware]$   # Copy MD5 checksum to local file same name but with .md5 name extension
[user@localhost vmware]$   # (copy&paste run as non-root)
[user@localhost vmware]$ 
[user@localhost vmware]$   f=VMware-Workstation-Full-12.5.9-7535481.x86_64.bundle
[user@localhost vmware]$ 
[user@localhost vmware]$   echo "e5624d5ce1e82f16551d82d7c2e54bb8  ${f}" > ${f}.md5
[user@localhost vmware]$ 
[user@localhost vmware]$   # Verify MD5 checksum
[user@localhost vmware]$   md5sum -c ${f}.md5
VMware-Workstation-Full-12.5.9-7535481.x86_64.bundle: OK

In this example (above) the "OK" indicates the MD5 checksum matches correctly indicating that the download completed with no errors.

Install

Execute the install image

If you have a license key for VMware workstation 12 then have this ready to copy and paste.

Run the downloaded install file. Example:

If we do not have a VMware license number we can install like this for 30-day free trial:

/bin/sudo /bin/sh ./VMware-Workstation-Full-12.5.9-7535481.x86_64.bundle --console --eulas-agreed

If you have a VMware license, use this:

/bin/sudo /bin/sh ./VMware-Workstation-Full-12.5.9-7535481.x86_64.bundle --console --eulas-agreed \
  --set-setting=vmware-workstation serialNumber 12345-YOUR2-KEY00-GOES0-HERE0

Without the "--eulas-agreed" option then the install will display two EULAs:

  1. VMware Workstation End User License Agreement
  2. VMware OVF Tool component for Linux End User

If you respond that you agree then you should see something like the following:

 [ text of EULA deleted for brevity ]

If You have any questions concerning this
EULA, please send an email to info@vmware.com.

Do you agree? [yes/no]: yes

Would you like to check for product updates on startup? [yes]: 

Would you like to help make VMware software better by sending
anonymous system data and usage statistics to VMware? [yes]: 

Please enter the user that will initially connect to Workstation
Server. Without setting this correctly, you will not be able to share
VMs with other users. Additional users and administrators can be
configured later in Workstation by selecting "Shared VMs" and clicking
"Permissions".  [user]: 

Please choose a directory for your shared virtual machines.
[/var/lib/vmware/Shared VMs]: 

Please enter the port to use for https access to Workstation Server.
(HTTPS port:) [443]: 

Enter license key. (optional) You can enter this information later.: 

The product is ready to be installed.  Press Enter to begin
installation or Ctrl-C to cancel.

Installing VMware Workstation 12.5.9
    Configuring...
[######################################################################] 100%
Installation was successful.


Workaround #1 for VMware 12.5.9 to work with kernel 4.9 or newer

In order to run VMware on 64-bit Mageia 6, it is important to apply the following workaround.

ref: https://communities.vmware.com/thread/564602 (Hint: search for "palko Jun 8, 2017 11:34 PM". )

  # workaround for VMware workstation 12.5.9 on Mageia 6 with kernel 4.14.65
  # (copy & paste, run as root)

  (cd /usr/lib/vmware/lib/libz.so.1 && mv libz.so.1 libz.so.1.old && ln -s /usr/lib64/libz.so.1 .)

  # (end copy & paste)


Workaround #2 for VMware 12.5.9 to work with kernel 4.9 or newer

Both vmware modules vmmon and vmnet need to be patched to work properly in Mageia 6.

Reference: https://github.com/mkubecek/vmware-host-modules/blob/master/INSTALL


download patched vmmon and vmnet code

Download a copy of the vmware host modules to match the version of VMware we are using:

wget https://github.com/mkubecek/vmware-host-modules/archive/workstation-12.5.9.tar.gz

Example:

[user@localhost Downloads]$ wget https://github.com/mkubecek/vmware-host-modules/archive/workstation-12.5.9.tar.gz
--2018-09-06 10:56:09--  https://github.com/mkubecek/vmware-host-modules/archive/workstation-12.5.9.tar.gz
Resolving github.com... 192.30.253.112, 192.30.253.113
Connecting to github.com|192.30.253.112|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://codeload.github.com/mkubecek/vmware-host-modules/tar.gz/workstation-12.5.9 [following]
--2018-09-06 10:56:10--  https://codeload.github.com/mkubecek/vmware-host-modules/tar.gz/workstation-12.5.9
Resolving codeload.github.com... 192.30.253.121, 192.30.253.120
Connecting to codeload.github.com|192.30.253.121|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/x-gzip]
Saving to: ‘workstation-12.5.9.tar.gz’

workstation-12.5.9.tar.gz                           [     <=>                             ] 412.58K   408KB/s    in 1.0s    

2018-09-06 10:56:11 (408 KB/s) - ‘workstation-12.5.9.tar.gz’ saved [422485]


un-tar the patched vmmon and vmnet code

tar zxvf workstation-12.5.9.tar.gz

Example:

[user@localhost Downloads]$ tar zxvf workstation-12.5.9.tar.gz
vmware-host-modules-workstation-12.5.9/
vmware-host-modules-workstation-12.5.9/.gitignore
vmware-host-modules-workstation-12.5.9/INSTALL
vmware-host-modules-workstation-12.5.9/LICENSE
vmware-host-modules-workstation-12.5.9/Makefile
vmware-host-modules-workstation-12.5.9/README
vmware-host-modules-workstation-12.5.9/vmmon-only/
vmware-host-modules-workstation-12.5.9/vmmon-only/COPYING
vmware-host-modules-workstation-12.5.9/vmmon-only/Makefile
vmware-host-modules-workstation-12.5.9/vmmon-only/Makefile.kernel
vmware-host-modules-workstation-12.5.9/vmmon-only/Makefile.normal
vmware-host-modules-workstation-12.5.9/vmmon-only/README
vmware-host-modules-workstation-12.5.9/vmmon-only/autoconf/
vmware-host-modules-workstation-12.5.9/vmmon-only/autoconf/geninclude.c
vmware-host-modules-workstation-12.5.9/vmmon-only/autoconf/smpcall.c
vmware-host-modules-workstation-12.5.9/vmmon-only/autoconf/tsc_khz.c
vmware-host-modules-workstation-12.5.9/vmmon-only/common/
vmware-host-modules-workstation-12.5.9/vmmon-only/common/apic.c
vmware-host-modules-workstation-12.5.9/vmmon-only/common/apic.h
vmware-host-modules-workstation-12.5.9/vmmon-only/common/comport.c
vmware-host-modules-workstation-12.5.9/vmmon-only/common/comport.h
vmware-host-modules-workstation-12.5.9/vmmon-only/common/cpuid.c
vmware-host-modules-workstation-12.5.9/vmmon-only/common/cpuid.h
vmware-host-modules-workstation-12.5.9/vmmon-only/common/hashFunc.c
vmware-host-modules-workstation-12.5.9/vmmon-only/common/hostKernel.h
vmware-host-modules-workstation-12.5.9/vmmon-only/common/hostif.h
vmware-host-modules-workstation-12.5.9/vmmon-only/common/hostifGlobalLock.h
vmware-host-modules-workstation-12.5.9/vmmon-only/common/hostifMem.h
vmware-host-modules-workstation-12.5.9/vmmon-only/common/memtrack.c
vmware-host-modules-workstation-12.5.9/vmmon-only/common/memtrack.h
vmware-host-modules-workstation-12.5.9/vmmon-only/common/phystrack.c
vmware-host-modules-workstation-12.5.9/vmmon-only/common/phystrack.h
vmware-host-modules-workstation-12.5.9/vmmon-only/common/task.c
vmware-host-modules-workstation-12.5.9/vmmon-only/common/task.h
vmware-host-modules-workstation-12.5.9/vmmon-only/common/vmx86.c
vmware-host-modules-workstation-12.5.9/vmmon-only/common/vmx86.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/
vmware-host-modules-workstation-12.5.9/vmmon-only/include/address_defs.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/basic_initblock.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/circList.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/community_source.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/compat_autoconf.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/compat_cred.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/compat_highmem.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/compat_interrupt.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/compat_ioport.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/compat_kernel.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/compat_module.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/compat_page.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/compat_pci.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/compat_pgtable.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/compat_poll.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/compat_sched.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/compat_semaphore.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/compat_spinlock.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/compat_timer.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/compat_version.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/contextinfo.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/cpu_defs.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/cpuid_info.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/crossgdt.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/driver-config.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/hashFunc.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/includeCheck.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/initblock.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/iocontrols.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/memDefaults.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/modulecall.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/modulecallstructs.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/mon_assert.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/monitorAction_exported.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/numa_defs.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/overheadmem_types.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/pageLock_defs.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/pagelist.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/pcip_defs.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/perfctr_generic.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/pgtbl.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/pshare_ext.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/ptsc.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/rateconv.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/uccostTable.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/usercalldefs.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/vcpuid.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/vcpuset.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/vcpuset_types.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/versioned_atomic.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/vm_asm.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/vm_asm_x86.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/vm_asm_x86_64.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/vm_assert.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/vm_atomic.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/vm_basic_asm.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/vm_basic_asm_x86.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/vm_basic_asm_x86_64.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/vm_basic_asm_x86_common.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/vm_basic_defs.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/vm_basic_math.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/vm_basic_types.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/vm_time.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/vmm_constants.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/vmmem_shared.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/vmware.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/vmware_pack_begin.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/vmware_pack_end.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/vmware_pack_init.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/x86_basic_defs.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/x86apic.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/x86cpuid.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/x86cpuid_asm.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/x86desc.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/x86msr.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/x86perfctr.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/x86segdescrs.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/x86sel.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/x86svm.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/x86types.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/x86vendor.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/x86vt-vmcs-fields.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/x86vt.h
vmware-host-modules-workstation-12.5.9/vmmon-only/include/x86vtinstr.h
vmware-host-modules-workstation-12.5.9/vmmon-only/linux/
vmware-host-modules-workstation-12.5.9/vmmon-only/linux/driver.c
vmware-host-modules-workstation-12.5.9/vmmon-only/linux/driver.h
vmware-host-modules-workstation-12.5.9/vmmon-only/linux/driverLog.c
vmware-host-modules-workstation-12.5.9/vmmon-only/linux/driverLog.h
vmware-host-modules-workstation-12.5.9/vmmon-only/linux/hostif.c
vmware-host-modules-workstation-12.5.9/vmmon-only/linux/hostif_priv.h
vmware-host-modules-workstation-12.5.9/vmmon-only/linux/vmhost.h
vmware-host-modules-workstation-12.5.9/vmmon-only/linux/vmmonInt.h
vmware-host-modules-workstation-12.5.9/vmmon-only/vmcore/
vmware-host-modules-workstation-12.5.9/vmmon-only/vmcore/driver_vmcore.h
vmware-host-modules-workstation-12.5.9/vmmon-only/vmcore/moduleloop.c
vmware-host-modules-workstation-12.5.9/vmnet-only/
vmware-host-modules-workstation-12.5.9/vmnet-only/COPYING
vmware-host-modules-workstation-12.5.9/vmnet-only/Makefile
vmware-host-modules-workstation-12.5.9/vmnet-only/Makefile.kernel
vmware-host-modules-workstation-12.5.9/vmnet-only/Makefile.normal
vmware-host-modules-workstation-12.5.9/vmnet-only/bridge.c
vmware-host-modules-workstation-12.5.9/vmnet-only/community_source.h
vmware-host-modules-workstation-12.5.9/vmnet-only/compat_autoconf.h
vmware-host-modules-workstation-12.5.9/vmnet-only/compat_module.h
vmware-host-modules-workstation-12.5.9/vmnet-only/compat_netdevice.h
vmware-host-modules-workstation-12.5.9/vmnet-only/compat_skbuff.h
vmware-host-modules-workstation-12.5.9/vmnet-only/compat_sock.h
vmware-host-modules-workstation-12.5.9/vmnet-only/compat_version.h
vmware-host-modules-workstation-12.5.9/vmnet-only/driver-config.h
vmware-host-modules-workstation-12.5.9/vmnet-only/driver.c
vmware-host-modules-workstation-12.5.9/vmnet-only/geninclude.c
vmware-host-modules-workstation-12.5.9/vmnet-only/hub.c
vmware-host-modules-workstation-12.5.9/vmnet-only/includeCheck.h
vmware-host-modules-workstation-12.5.9/vmnet-only/monitorAction_exported.h
vmware-host-modules-workstation-12.5.9/vmnet-only/net.h
vmware-host-modules-workstation-12.5.9/vmnet-only/netdev_has_dev_net.c
vmware-host-modules-workstation-12.5.9/vmnet-only/netdev_has_net.c
vmware-host-modules-workstation-12.5.9/vmnet-only/netif.c
vmware-host-modules-workstation-12.5.9/vmnet-only/nfhook_uses_skb.c
vmware-host-modules-workstation-12.5.9/vmnet-only/procfs.c
vmware-host-modules-workstation-12.5.9/vmnet-only/skblin.c
vmware-host-modules-workstation-12.5.9/vmnet-only/smac.c
vmware-host-modules-workstation-12.5.9/vmnet-only/smac.h
vmware-host-modules-workstation-12.5.9/vmnet-only/smac_compat.c
vmware-host-modules-workstation-12.5.9/vmnet-only/smac_compat.h
vmware-host-modules-workstation-12.5.9/vmnet-only/userif.c
vmware-host-modules-workstation-12.5.9/vmnet-only/vm_assert.h
vmware-host-modules-workstation-12.5.9/vmnet-only/vm_atomic.h
vmware-host-modules-workstation-12.5.9/vmnet-only/vm_basic_asm.h
vmware-host-modules-workstation-12.5.9/vmnet-only/vm_basic_asm_x86.h
vmware-host-modules-workstation-12.5.9/vmnet-only/vm_basic_asm_x86_64.h
vmware-host-modules-workstation-12.5.9/vmnet-only/vm_basic_asm_x86_common.h
vmware-host-modules-workstation-12.5.9/vmnet-only/vm_basic_defs.h
vmware-host-modules-workstation-12.5.9/vmnet-only/vm_basic_types.h
vmware-host-modules-workstation-12.5.9/vmnet-only/vm_device_version.h
vmware-host-modules-workstation-12.5.9/vmnet-only/vm_oui.h
vmware-host-modules-workstation-12.5.9/vmnet-only/vmnetInt.h
vmware-host-modules-workstation-12.5.9/vmnet-only/vnet.h
vmware-host-modules-workstation-12.5.9/vmnet-only/vnetEvent.c
vmware-host-modules-workstation-12.5.9/vmnet-only/vnetEvent.h
vmware-host-modules-workstation-12.5.9/vmnet-only/vnetFilter.h
vmware-host-modules-workstation-12.5.9/vmnet-only/vnetInt.h
vmware-host-modules-workstation-12.5.9/vmnet-only/vnetKernel.h
vmware-host-modules-workstation-12.5.9/vmnet-only/vnetUserListener.c


compile the patched vmmon and vmnet code

Change directory into the downloaded code directory and run a "make".

cd vmware-host-modules-workstation-12.5.9
make

Example:

[user@localhost Downloads]$ cd vmware-host-modules-workstation-12.5.9/

[user@localhost vmware-host-modules-workstation-12.5.9]$ ls
INSTALL  LICENSE  Makefile  README  vmmon-only/  vmnet-only/

[user@localhost vmware-host-modules-workstation-12.5.9]$ make
make -C vmmon-only 
make[1]: Entering directory '/home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmmon-only'
Using kernel build system.
make -C /lib/modules/4.14.65-desktop-1.mga6/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[2]: Entering directory '/usr/src/kernel-4.14.65-desktop-1.mga6'
  CC [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmmon-only/linux/driverLog.o
  CC [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmmon-only/linux/driver.o
  CC [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmmon-only/linux/hostif.o
  CC [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmmon-only/common/memtrack.o
  CC [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmmon-only/common/apic.o
  CC [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmmon-only/common/vmx86.o
  CC [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmmon-only/common/cpuid.o
  CC [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmmon-only/common/task.o
  CC [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmmon-only/common/hashFunc.o
  CC [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmmon-only/common/comport.o
  CC [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmmon-only/common/phystrack.o
  CC [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmmon-only/vmcore/moduleloop.o
  LD [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmmon-only/vmmon.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmmon-only/vmmon.mod.o
  LD [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmmon-only/vmmon.ko
make[2]: Leaving directory '/usr/src/kernel-4.14.65-desktop-1.mga6'
make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[2]: Entering directory '/home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmmon-only'
make[2]: 'postbuild' is up to date.
make[2]: Leaving directory '/home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmmon-only'
cp -f vmmon.ko ./../vmmon.o
make[1]: Leaving directory '/home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmmon-only'
make -C vmnet-only 
make[1]: Entering directory '/home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmnet-only'
Using kernel build system.
make -C /lib/modules/4.14.65-desktop-1.mga6/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[2]: Entering directory '/usr/src/kernel-4.14.65-desktop-1.mga6'
  CC [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmnet-only/driver.o
  CC [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmnet-only/hub.o
  CC [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmnet-only/userif.o
  CC [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmnet-only/netif.o
  CC [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmnet-only/bridge.o
  CC [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmnet-only/procfs.o
  CC [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmnet-only/smac_compat.o
  CC [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmnet-only/smac.o
  CC [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmnet-only/vnetEvent.o
  CC [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmnet-only/vnetUserListener.o
  LD [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmnet-only/vmnet.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmnet-only/vmnet.mod.o
  LD [M]  /home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmnet-only/vmnet.ko
make[2]: Leaving directory '/usr/src/kernel-4.14.65-desktop-1.mga6'
make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[2]: Entering directory '/home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmnet-only'
make[2]: 'postbuild' is up to date.
make[2]: Leaving directory '/home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmnet-only'
cp -f vmnet.ko ./../vmnet.o
make[1]: Leaving directory '/home/user/Downloads/vmware-host-modules-workstation-12.5.9/vmnet-only'


run a "make install" for the patched vmmon and vmnet code

/bin/sudo make install

Example:

[user@localhost vmware-host-modules-workstation-12.5.9]$ /bin/sudo make install
[sudo] password for user: 
install -D -t /lib/modules/4.14.65-desktop-1.mga6/misc vmmon-only/vmmon.ko vmnet-only/vmnet.ko
strip --strip-debug /lib/modules/4.14.65-desktop-1.mga6/misc/vmmon.ko /lib/modules/4.14.65-desktop-1.mga6/misc/vmnet.ko
if test -z ""; then /sbin/depmod -a 4.14.65-desktop-1.mga6; fi


make tar-balls of patched vmmon and vnet modules

tar -cf vmmon.tar vmmon-only
tar -cf vmnet.tar vmnet-only

Example:

[user@localhost vmware-host-modules-workstation-12.5.9]$ tar -cf vmmon.tar vmmon-only
[user@localhost vmware-host-modules-workstation-12.5.9]$ tar -cf vmnet.tar vmnet-only


backup original vmmon and vmnet modules

/bin/sudo mv /usr/lib/vmware/modules/source/vmmon.tar /usr/lib/vmware/modules/source/vmmon.tar.bak_$(date +%Y_%m_%d_%H%M)
/bin/sudo mv /usr/lib/vmware/modules/source/vmnet.tar /usr/lib/vmware/modules/source/vmnet.tar.bak_$(date +%Y_%m_%d_%H%M)

replace original vmmon and vmnet modules by patches ones

/bin/sudo cp vmmon.tar /usr/lib/vmware/modules/source/vmmon.tar
/bin/sudo cp vmnet.tar /usr/lib/vmware/modules/source/vmnet.tar


rebuild modules from command line

/bin/sudo vmware-modconfig --console --install-all

Example:

[user@localhost ~]$ /bin/sudo vmware-modconfig --console --install-all
Stopping vmware (via systemctl):                                                                                                                                               [  OK  ]
make: Entering directory '/tmp/modconfig-7YvQaK/vmmon-only'
Using kernel build system.
/usr/bin/make -C /lib/modules/4.14.65-desktop-1.mga6/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory '/usr/src/kernel-4.14.65-desktop-1.mga6'
  CC [M]  /tmp/modconfig-7YvQaK/vmmon-only/linux/driver.o
  CC [M]  /tmp/modconfig-7YvQaK/vmmon-only/linux/hostif.o
  CC [M]  /tmp/modconfig-7YvQaK/vmmon-only/linux/driverLog.o
  CC [M]  /tmp/modconfig-7YvQaK/vmmon-only/common/memtrack.o
  CC [M]  /tmp/modconfig-7YvQaK/vmmon-only/common/apic.o
  CC [M]  /tmp/modconfig-7YvQaK/vmmon-only/common/hashFunc.o
  CC [M]  /tmp/modconfig-7YvQaK/vmmon-only/common/vmx86.o
  CC [M]  /tmp/modconfig-7YvQaK/vmmon-only/common/cpuid.o
  CC [M]  /tmp/modconfig-7YvQaK/vmmon-only/common/task.o
  CC [M]  /tmp/modconfig-7YvQaK/vmmon-only/common/phystrack.o
  CC [M]  /tmp/modconfig-7YvQaK/vmmon-only/common/comport.o
  CC [M]  /tmp/modconfig-7YvQaK/vmmon-only/vmcore/moduleloop.o
  LD [M]  /tmp/modconfig-7YvQaK/vmmon-only/vmmon.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /tmp/modconfig-7YvQaK/vmmon-only/vmmon.mod.o
  LD [M]  /tmp/modconfig-7YvQaK/vmmon-only/vmmon.ko
make[1]: Leaving directory '/usr/src/kernel-4.14.65-desktop-1.mga6'
/usr/bin/make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[1]: Entering directory '/tmp/modconfig-7YvQaK/vmmon-only'
make[1]: 'postbuild' is up to date.
make[1]: Leaving directory '/tmp/modconfig-7YvQaK/vmmon-only'
cp -f vmmon.ko ./../vmmon.o
make: Leaving directory '/tmp/modconfig-7YvQaK/vmmon-only'
Unable to install all modules.  See log for details.


restart vmware service

/bin/sudo systemctl restart vmware.service && systemctl status vmware.service

Example:

[root@localhost ~]# systemctl restart vmware.service && systemctl status vmware.service
● vmware.service - SYSV: This service starts and stops VMware services
   Loaded: loaded (/etc/rc.d/init.d/vmware; generated; vendor preset: enabled)
   Active: active (running) since Thu 2018-09-06 12:10:10 BST; 3ms ago
     Docs: man:systemd-sysv-generator(8)
  Process: 8960 ExecStop=/etc/rc.d/init.d/vmware stop (code=exited, status=0/SUCCESS)
  Process: 10718 ExecStart=/etc/rc.d/init.d/vmware start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/vmware.service
           ├─10812 /usr/lib/vmware/bin/vmware-vmblock-fuse -o subtype=vmware-vmblock,default_permissions,allow_other /var/run/vmblock-fuse
           ├─10851 /usr/bin/vmnet-bridge -s 6 -d /var/run/vmnet-bridge-0.pid -n 0
           ├─10861 /usr/bin/vmnet-netifup -s 6 -d /var/run/vmnet-netifup-vmnet1.pid /dev/vmnet1 vmnet1
           ├─10871 /usr/bin/vmnet-dhcpd -s 6 -cf /etc/vmware/vmnet1/dhcpd/dhcpd.conf -lf /etc/vmware/vmnet1/dhcpd/dhcpd.leases -pf /var/run/vmnet-dhcpd-vmnet1.pid vmnet1
           ├─10875 /usr/bin/vmnet-natd -s 6 -m /etc/vmware/vmnet8/nat.mac -c /etc/vmware/vmnet8/nat/nat.conf
           ├─10879 /usr/bin/vmnet-netifup -s 6 -d /var/run/vmnet-netifup-vmnet8.pid /dev/vmnet8 vmnet8
           ├─10892 /usr/bin/vmnet-dhcpd -s 6 -cf /etc/vmware/vmnet8/dhcpd/dhcpd.conf -lf /etc/vmware/vmnet8/dhcpd/dhcpd.leases -pf /var/run/vmnet-dhcpd-vmnet8.pid vmnet8
           └─10920 /usr/sbin/vmware-authdlauncher

Sep 06 12:10:10 localhost vmnet-dhcpd[10882]: Copyright 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium.
Sep 06 12:10:10 localhost vmnet-dhcpd[10882]: All rights reserved.
Sep 06 12:10:10 localhost vmnet-dhcpd[10882]: 
Sep 06 12:10:10 localhost vmnet-dhcpd[10882]: Please contribute if you find this software useful.
Sep 06 12:10:10 localhost vmnet-dhcpd[10882]: For info, please visit http://www.isc.org/dhcp-contrib.html
Sep 06 12:10:10 localhost vmnet-dhcpd[10882]: 
Sep 06 12:10:10 localhost vmware[10718]:    Virtual ethernet[  OK  ]
Sep 06 12:10:10 localhost vmware[10718]:    VMware Authentication Daemon[  OK  ]
Sep 06 12:10:10 localhost vmware[10718]:    Shared Memory Available[  OK  ]
Sep 06 12:10:10 localhost systemd[1]: Started SYSV: This service starts and stops VMware services.


Run

NB: Do not attempt to run VMware workstation without applying the workarounds (as shown above) or it will fail silently.

VMware workstation can be started from a shell with the command:

vmware

Alternatively, start via the desktop: Applications -> Systems Tools -> VMware Workstation


First time run

Note that the first time VMware workstation is run: if a license key was not entered when the install image bundle was executed then a prompt will appear:

2017 10 11 vmware workstation 12 1of2.png

Finally, you should see the VMware workstation 12 "Home" window appear:

2017 10 11 vmware workstation 12 2of2.png

This will enable the create a new virtual machine icon to be clicked to open:

2018 09 06 vmware b.png


Subsequent runs

Subsequent runs will display the VMware workstation 12 window.


Create a desktop launcher

For mate DE: Right click on the background image and select create launcher

Data for launcher:

name: VMware
command: /usr/bin/vmware
comment: VMware Workstation 12.5.9
icon: /usr/share/icons/hicolor/48x48/apps/vmware-workstation.png


When kernel gets updated

When the Mageia Linux kernel gets updated it is necessary to rebuild the vmmon and vmnet kernel modules.

What to do:

  1. Let the kernel update complete (eg when "/usr/sbin/urpmi --auto-update" is run).
  2. cd to your Downloads/vmware-host-modules-workstation-12.5.9/ directory
  3. Compile and install vmmon and vmnet kernel modules for the new kernel by repeating the steps from:
    1. compile the patched vmmon and vmnet code Installing_VMware_workstation_12.5.9_in_Mageia_6#compile_the_patched_vmmon_and_vmnet_code
    2. up to and including: restart vmware service Installing_VMware_workstation_12.5.9_in_Mageia_6#restart_vmware_service

Appendix-1: links

VMware
VMware 12.5.9 download
Arch Linux VMware page
mkubecek's page about patches for vmmod and vmnet modules