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 7 (with kernel 5.1.14 up to 5.4.6).
The details below explain how to apply work-arounds to enable the default VMware 12.5.9 bundle work in Mageia 7

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 (30 day) 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 non-root):

 /bin/sudo urpmi task-c++-devel

# (end copy & paste)


Install libcanberra package

Is libcanberra already installed?

We need to have "libcanberra.so.0" installed. On 64-bit, this is in /usr/lib64/libcanberra.so.0 and is part of the package:

$ rpm -q --whatprovides /usr/lib64/libcanberra.so.0
lib64canberra0-0.30-12.mga7

This is the 64bit version:

package="lib64canberra-gtk0"; rpm -q ${package} > /dev/null && echo ${package} is installed || echo ${package} NOT installed

Example:

[user@localhost ~]$ package="lib64canberra-gtk0"; rpm -q ${package} > /dev/null && echo ${package} is installed || echo ${package} NOT installed
lib64canberra-gtk0 is installed

If not already installed, install with:

 # Install lib64canberra0 package
 # (copy & paste, run as non-root):

 /bin/sudo urpmi lib64canberra0

 # (end copy & paste)


Install lib64ncursesw5 package

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

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

  /bin/sudo urpmi lib64ncursesw5

  # (end copy & paste)


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
5.1.14-desktop-1.mga7

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-5.1.14-1.mga7


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-5.1.14-1.mga7


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)


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 7, 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 7 with kernel 5.1.14
  # (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 workstation 12.5.9 - VMware host modules - to work with kernel 4.9 or newer

Both VMware workstation 12.56.9's kernel modules vmmon and vmnet need to be patched to work properly in Mageia 7.

Note also, that these modules are available for different versions of VMware workstation (up to version 15 at time of writing this) but we are going to focus here on 12.5.9.

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


Start by looking at the latest commits for 12.5.9 here: https://github.com/mkubecek/vmware-host-modules/commits/workstation-12.5.9

If you find a more recent commit that you have already then follow these steps to configure the latest commit into your VMware workstation configuration.

Clone the current version using git

cd ~/Downloads
git clone https://github.com/mkubecek/vmware-host-modules.git


Example:

[user@localhost ~]$ cd ~/Downloads
[user@localhost Downloads]$ git clone https://github.com/mkubecek/vmware-host-modules.git
Cloning into 'vmware-host-modules'...
remote: Enumerating objects: 175, done.
remote: Counting objects: 100% (175/175), done.
remote: Compressing objects: 100% (113/113), done.
remote: Total 1853 (delta 131), reused 99 (delta 62), pack-reused 1678
Receiving objects: 100% (1853/1853), 974.76 KiB | 370.00 KiB/s, done.
Resolving deltas: 100% (1513/1513), done.

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

[mpb@z600-mageia7 vmware-host-modules (master)]$ ls -l
total 36
-rw-r--r-- 1 user user  7605 Apr 16 16:38 INSTALL
-rw-r--r-- 1 user user 18046 Apr 16 16:38 LICENSE
-rw-r--r-- 1 user user  1279 Apr 16 16:38 Makefile
-rw-r--r-- 1 user user  1548 Apr 16 16:38 README

Checkout the modules for workstation 12.5.9

git checkout workstation-12.5.9


Example:

[user@localhost vmware-host-modules (master)]$ git checkout workstation-12.5.9
Branch 'workstation-12.5.9' set up to track remote branch 'workstation-12.5.9' from 'origin'.
Switched to a new branch 'workstation-12.5.9'

[user@zlocalhost vmware-host-modules (workstation-12.5.9)]$ ls -l
total 44
-rw-r--r-- 1 user user  7605 Apr 16 16:38 INSTALL
-rw-r--r-- 1 user user 18046 Apr 16 16:38 LICENSE
-rw-r--r-- 1 user user  1279 Apr 16 16:38 Makefile
-rw-r--r-- 1 user user  1548 Apr 16 16:38 README
drwxr-xr-x 7 user user  4096 Apr 16 16:41 vmmon-only/
drwxr-xr-x 2 user user  4096 Apr 16 16:41 vmnet-only/

Run a make to build the modules

make

Example:

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

[user@localhost vmware-host-modules (workstation-12.5.9)]$ ls -altr
total 356
drwxr-xr-x 143 user user  36864 Apr 16 16:38 ../
-rw-r--r--   1 user user   1548 Apr 16 16:38 README
-rw-r--r--   1 user user   1279 Apr 16 16:38 Makefile
-rw-r--r--   1 user user  18046 Apr 16 16:38 LICENSE
-rw-r--r--   1 user user   7605 Apr 16 16:38 INSTALL
-rw-r--r--   1 user user     93 Apr 16 16:38 .gitignore
drwxr-xr-x   8 user user   4096 Apr 16 16:41 .git/
drwxr-xr-x   7 user user   4096 Apr 16 16:44 vmmon-only/
-rw-r--r--   1 user user 150584 Apr 16 16:44 vmmon.o
drwxr-xr-x   2 user user   4096 Apr 16 16:44 vmnet-only/
-rw-r--r--   1 user user 116096 Apr 16 16:44 vmnet.o
drwxr-xr-x   5 user user   4096 Apr 16 16:44 ./

Run a make install

/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/5.5.15-desktop-3.mga7/misc vmmon-only/vmmon.ko vmnet-only/vmnet.ko
strip --strip-debug /lib/modules/5.5.15-desktop-3.mga7/misc/vmmon.ko /lib/modules/5.5.15-desktop-3.mga7/misc/vmnet.ko
if test -z ""; then /sbin/depmod -a 5.5.15-desktop-3.mga7; 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]$ tar -cf vmmon.tar vmmon-only
[user@localhost vmware-host-modules]$ tar -cf vmnet.tar vmnet-only

[user@localhost vmware-host-modules (workstation-12.5.9)]$ ls -ltr
total 4100
-rw-r--r-- 1 user user    1548 Apr 16 16:38 README
-rw-r--r-- 1 user user    1279 Apr 16 16:38 Makefile
-rw-r--r-- 1 user user   18046 Apr 16 16:38 LICENSE
-rw-r--r-- 1 user user    7605 Apr 16 16:38 INSTALL
drwxr-xr-x 7 user user    4096 Apr 16 16:44 vmmon-only/
-rw-r--r-- 1 user user  150584 Apr 16 16:44 vmmon.o
drwxr-xr-x 2 user user    4096 Apr 16 16:44 vmnet-only/
-rw-r--r-- 1 user user  116096 Apr 16 16:44 vmnet.o
-rw-r--r-- 1 user user 2160640 Apr 16 16:49 vmmon.tar
-rw-r--r-- 1 user user 1720320 Apr 16 16:49 vmnet.tar

Backup previous vmmon and vmnet modules (if they exist)

d=/usr/lib/vmware/modules/source
for m in vmmon vmnet; do
    if [ -s ${d}/${m}.tar ]; then
        echo /bin/sudo mv ${d}/${m}.tar ${d}/${m}.tar.bak_$(date +%Y_%m_%d_%H%M)
        /bin/sudo mv ${d}/${m}.tar ${d}/${m}.tar.bak_$(date +%Y_%m_%d_%H%M)
    else
        echo does not exist: ${d}/${m}.tar
    fi
done

Install newly compiled vmmon and vmnet modules

/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 vmware-host-modules (workstation-12.5.9)]$ /bin/sudo vmware-modconfig --console --install-all
Stopping vmware (via systemctl):                           [  OK  ]
make: Entering directory '/tmp/modconfig-pe6jb4/vmmon-only'
Using kernel build system.
/bin/make -C /lib/modules/5.5.15-desktop-3.mga7/build/include/.. M=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory '/usr/src/kernel-5.5.15-desktop-3.mga7'
  CC [M]  /tmp/modconfig-pe6jb4/vmmon-only/linux/driverLog.o
  CC [M]  /tmp/modconfig-pe6jb4/vmmon-only/linux/driver.o
  CC [M]  /tmp/modconfig-pe6jb4/vmmon-only/linux/hostif.o
  CC [M]  /tmp/modconfig-pe6jb4/vmmon-only/common/memtrack.o
  CC [M]  /tmp/modconfig-pe6jb4/vmmon-only/common/apic.o
  CC [M]  /tmp/modconfig-pe6jb4/vmmon-only/common/hashFunc.o
  CC [M]  /tmp/modconfig-pe6jb4/vmmon-only/common/vmx86.o
  CC [M]  /tmp/modconfig-pe6jb4/vmmon-only/common/cpuid.o
  CC [M]  /tmp/modconfig-pe6jb4/vmmon-only/common/task.o
  CC [M]  /tmp/modconfig-pe6jb4/vmmon-only/common/comport.o
  CC [M]  /tmp/modconfig-pe6jb4/vmmon-only/common/phystrack.o
  CC [M]  /tmp/modconfig-pe6jb4/vmmon-only/vmcore/moduleloop.o
  LD [M]  /tmp/modconfig-pe6jb4/vmmon-only/vmmon.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC [M]  /tmp/modconfig-pe6jb4/vmmon-only/vmmon.mod.o
  LD [M]  /tmp/modconfig-pe6jb4/vmmon-only/vmmon.ko
make[1]: Leaving directory '/usr/src/kernel-5.5.15-desktop-3.mga7'
/bin/make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[1]: Entering directory '/tmp/modconfig-pe6jb4/vmmon-only'
make[1]: 'postbuild' is up to date.
make[1]: Leaving directory '/tmp/modconfig-pe6jb4/vmmon-only'
cp -f vmmon.ko ./../vmmon.o
make: Leaving directory '/tmp/modconfig-pe6jb4/vmmon-only'
make: Entering directory '/tmp/modconfig-pe6jb4/vmnet-only'
Using kernel build system.
/bin/make -C /lib/modules/5.5.15-desktop-3.mga7/build/include/.. M=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory '/usr/src/kernel-5.5.15-desktop-3.mga7'
  CC [M]  /tmp/modconfig-pe6jb4/vmnet-only/driver.o
  CC [M]  /tmp/modconfig-pe6jb4/vmnet-only/hub.o
  CC [M]  /tmp/modconfig-pe6jb4/vmnet-only/userif.o
  CC [M]  /tmp/modconfig-pe6jb4/vmnet-only/netif.o
  CC [M]  /tmp/modconfig-pe6jb4/vmnet-only/bridge.o
  CC [M]  /tmp/modconfig-pe6jb4/vmnet-only/procfs.o
  CC [M]  /tmp/modconfig-pe6jb4/vmnet-only/smac_compat.o
  CC [M]  /tmp/modconfig-pe6jb4/vmnet-only/smac.o
  CC [M]  /tmp/modconfig-pe6jb4/vmnet-only/vnetEvent.o
  CC [M]  /tmp/modconfig-pe6jb4/vmnet-only/vnetUserListener.o
  LD [M]  /tmp/modconfig-pe6jb4/vmnet-only/vmnet.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC [M]  /tmp/modconfig-pe6jb4/vmnet-only/vmnet.mod.o
  LD [M]  /tmp/modconfig-pe6jb4/vmnet-only/vmnet.ko
make[1]: Leaving directory '/usr/src/kernel-5.5.15-desktop-3.mga7'
/bin/make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[1]: Entering directory '/tmp/modconfig-pe6jb4/vmnet-only'
make[1]: 'postbuild' is up to date.
make[1]: Leaving directory '/tmp/modconfig-pe6jb4/vmnet-only'
cp -f vmnet.ko ./../vmnet.o
make: Leaving directory '/tmp/modconfig-pe6jb4/vmnet-only'
Starting vmware (via systemctl):                           [  OK  ]

Restart vmware service

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

Example:

[user@localhost vmware-host-modules (workstation-12.5.9)]$ /bin/sudo systemctl restart vmware.service && systemctl status vmware.service
[sudo] password for mpb: 
● vmware.service - SYSV: This service starts and stops VMware services
   Loaded: loaded (/etc/rc.d/init.d/vmware; generated)
   Active: active (running) since Thu 2020-04-16 18:00:22 BST; 12ms ago
     Docs: man:systemd-sysv-generator(8)
  Process: 15022 ExecStart=/etc/rc.d/init.d/vmware start (code=exited, status=0/SUCCESS)
   Memory: 25.8M
   CGroup: /system.slice/vmware.service
           ├─15141 /usr/lib/vmware/bin/vmware-vmblock-fuse -o subtype=vmware-vmblock,default_permissions,allow_other /var/run/vmblock-fuse
           ├─15173 /usr/bin/vmnet-bridge -s 6 -d /var/run/vmnet-bridge-0.pid -n 0
           ├─15186 /usr/bin/vmnet-netifup -s 6 -d /var/run/vmnet-netifup-vmnet1.pid /dev/vmnet1 vmnet1
           ├─15193 /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
           ├─15196 /usr/bin/vmnet-natd -s 6 -m /etc/vmware/vmnet8/nat.mac -c /etc/vmware/vmnet8/nat/nat.conf
           ├─15200 /usr/bin/vmnet-netifup -s 6 -d /var/run/vmnet-netifup-vmnet8.pid /dev/vmnet8 vmnet8
           ├─15210 /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
           ├─15215 bash /etc/rc.d/init.d/vmware start
           ├─15216 logger -t VMware[init] -p daemon err
           ├─15217 /usr/sbin/vmware-authdlauncher
           ├─15223 sh -c /usr/bin/lsb_release -sd 2>/dev/null
           ├─15224 /bin/sh /usr/bin/lsb_release -sd
           └─15252 basename /etc/lsb-release.d/core-4.1-amd64

Apr 16 18:00:22 z600-mageia7.home vmnet-dhcpd[15202]: For info, please visit http://www.isc.org/dhcp-contrib.html
Apr 16 18:00:22 z600-mageia7.home vmnet-dhcpd[15202]: 
Apr 16 18:00:22 z600-mageia7.home vmnet-dhcpd[15202]: Configured subnet: 172.16.42.0
Apr 16 18:00:22 z600-mageia7.home vmnet-dhcpd[15202]: Setting vmnet-dhcp IP address: 172.16.42.254
Apr 16 18:00:22 z600-mageia7.home vmnet-dhcpd[15202]: Recving on     VNet/vmnet8/172.16.42.0
Apr 16 18:00:22 z600-mageia7.home vmnet-dhcpd[15202]: Sending on     VNet/vmnet8/172.16.42.0
Apr 16 18:00:22 z600-mageia7.home vmware[15022]:    Virtual ethernet[  OK  ]
Apr 16 18:00:22 z600-mageia7.home vmware[15022]:    VMware Authentication Daemon[  OK  ]
Apr 16 18:00:22 z600-mageia7.home vmware[15022]:    Shared Memory Available[  OK  ]
Apr 16 18:00:22 z600-mageia7.home 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

WARNING: the last kernel version that VMware Workstation 12.5.9 was found to work on was 5.7.19 on Mageia 7.
Newer kernels 5.10 and above do not work with VMware 12.5.9.
To keep VMware running maintain kernel 5.7.19 and be aware of new kernel updates.
Mageia 8 will start with kernel 5.10.


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. Exit vmware workstation
  3. Review the most recent commits for the vmware host modules for 12.5.9. Start here: https://github.com/mkubecek/vmware-host-modules/commits/workstation-12.5.9
  4. cd to your ~/Downloads/vmware-host-modules/ directory.
  5. Git clone and git checkout the latest version from Installing_VMware_workstation_12.5.9_in_Mageia_7#Clone_the_current_version_using_git
  6. Compile and install vmmon and vmnet kernel modules for the new kernel by repeating the steps from:
    1. Installing_VMware_workstation_12.5.9_in_Mageia_7#Run_a_make_to_build_the_modules
    2. up to and including: Installing_VMware_workstation_12.5.9_in_Mageia_7#Restart_vmware_service

Trouble shooting

This section is for issues and ways to work around them.


Mageia system boot gets held up

Something odd noticed with recent kernel updates is that after rebuilding the kernel modules (for new version) the system may get stuck in booting up. This may be evident with a message like "waiting for job to complete" that never seems to complete.

One work around is to disable vmware.service with systemctl. But how to do this if boot gets stuck?

The answer is to power down and restart using the Mageia rescue process and once you have chrooted into root run:

systemctl disable vmware.service

then ctrl-d, ctrl-d to reboot the system

This means that the vmware service will not be automatically started at boot time but you can start it later boot with:

systemctl start vmware.service

and then start vmware workstation


VMware won't start: some error with vmmon and/or vmnet

Follow the steps for Installing_VMware_workstation_12.5.9_in_Mageia_7#When_kernel_gets_updated (above).


Appendix-1: links

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