What is VMware?

VMware provides cloud computing and virtualization software and services, their most important products are:

  • VMware Workstation Player, is a virtualization software package and can run existing virtual appliances and create its own virtual machines (which require an operating system to be installed to be functional). VMware Player is available for personal non-commercial use.

  • VMware Workstation Pro, it enables users to set up virtual machines (VMs) on a single physical machine, and use them simultaneously along with the actual machine. Each virtual machine can execute its own operating system, including versions of Microsoft Windows, Linux, BSD, and MS-DOS.

You should have a valid license to work with VMware Workstation Pro.

How to Resolve Issues for WORKSTATION and PLAYER (ANY KERNEL + ANY VERSION)

Installation

Player

  1. $ sudo ./VMware-Player-x.y.z-nn.x86_64.bundle
  2. $ sudo chmod +x ./VMware-Player-x.y.z-nn.x86_64.bundle
  3. $ sudo ./VMware-Workstation-Full-x.y.z-nn.x86_64.bundle

Workstation

  1. $ sudo ./VMware-Workstation-Full-x.y.z-nn.x86_64.bundle
  2. $ sudo chmod +x ./VMware-Workstation-Full-x.y.z-nn.x86_64.bundle
  3. $ sudo ./VMware-Workstation-Full-x.y.z-nn.x86_64.bundle

Resolving Conflict with Kernel

The problem here is always the same vmnet and vmmon doesn’t start well or doesn’t start at all, You should find a PATCH deal with changes in vmmon.c and vmnet.c because something breaks or add some parameters to these files, you can found the following:

  • know what is your kernel version?: uname -r.

  • know your Vmware version or install the latest. /usr/bin/vmware -v

  • Try to find the PATCH for a specific KERNEL version and Vmware.

  • You have to deal with sources ( vmnet and vmmon ) and apply fixed in both of them.

  • Try to find the fix for the specific product Vmware and Kernel version.

This guide try to help with all this boring stuff.

Prerequisite

  1. $ sudo dnf install kernel-devel kernel-headers gcc gcc-c++ make git

Installation

This repository tracks patches needed to build VMware (Player and Workstation) host modules against recent kernels.

For Example, I would like to Patch Workstation:

  1. wget https://github.com/mkubecek/vmware-host-modules/archive/workstation-x.y.z.tar.gz
  2. tar -xzf workstation-x.y.z.tar.gz
  3. cd vmware-host-modules-workstation-x.y.z
  4. make
  5. sudo make install
Based on your VMware product, replace “x.y.z” with your installed version and/or “workstation” with “player”.

Deal with Kernel Updates

You can create a script to take of this after a kernel update. Save it as /etc/kernel/install.d/99-vmmodules.install:

  1. #!/usr/bin/bash
  2. export LANG=C
  3. COMMAND="$1"
  4. KERNEL_VERSION="$2"
  5. BOOT_DIR_ABS="$3"
  6. KERNEL_IMAGE="$4"
  7. ret=0
  8. case "$COMMAND" in
  9. add)
  10. VMWARE_VERSION=$(cat /etc/vmware/config | grep player.product.version | sed '/.*\"\(.*\)\".*/ s//\1/g')
  11. [ -z VMWARE_VERSION ] && exit 0
  12. mkdir -p /tmp/git; cd /tmp/git
  13. git clone -b workstation-${VMWARE_VERSION} https://github.com/mkubecek/vmware-host-modules.git
  14. cd vmware-host-modules
  15. make VM_UNAME=${KERNEL_VERSION}
  16. make install VM_UNAME=${KERNEL_VERSION}
  17. ((ret+=$?))
  18. ;;
  19. remove)
  20. exit 0
  21. ;;
  22. *)
  23. usage
  24. ret=1;;
  25. esac
  26. exit $ret

Additional Resources