Rocky Linux / VMWare Player

I was trying to post a question/topic in Forums more or less on this topic but on VMWare Player – I’ve posted in the past but seem to forgotten how. There is nothing that says “New Topic” or something – there might well be but I could not find it.

Basically, it is a question / suggestion. Yes I know Rocky Linux is a bug-for-bug copy of RHEL 8.x, but this seems to be an OLD bug: I have been trying to install VMware Player 16.1.2 in Rocky Linux 8.4. It Blows up. So I then tried installing VMware Player 15.5.7, it too blew up with the same problem, so I dropped back to 15.5.0, it too blew up, so I dropped back to 15.1.0, and I at last got to the point where I got the lic. agreement, and the rest of the install, but then when it came to the actual start up of the program it too blew up; same with 15.0.4, and 15.0.0. VMware Player 14.1.7 gives you an error right out the gate.

What do I mean by “Blows up”? You do the install, you get a whole lot of chafe, it then says “Installing VMware Player 16.1.2, followed by “Configuring”, followed by a lot of RailRoad tracks (#####), then it says “Installation was Successful”. “GREAT” you think. You then go and start up VMware. You click on the icon, and you get the familiar, “Before you can run VMware, several modules must be complied and loaded into the running kernel”. It then asks you if you wish to install. You click on install, and then it says it needs " Authentication is needed” and to “please enter your Root Password”, you do so and then… BOOM!! You then get this cheery message:

" Unable to install all modules. See log /tmp/vmware-[user]/vmware-[number].log for details. (Exit code 1)"

Everything from 15.5.0 and above you get this message. Everything from 15.0.0 to 15.1.0 gives you the lic. agreement etc., but then terminates in the “(Exit code 1)” message.

I did enough research and this seems​ to be a specific bug that is restricted to RHEL 8.x, CentOS 8.x, and of course, Rocky Linux 8.4. The bug *does not" affect RHEL 7.9, or affect CentOS 7.9 (I have VMWare Player 16.1.2 running on CentOS 7.9). The bug also does not affect openSUSE 15.3 Leap which I am running on a separate drive.

Is there any way someone could fix this bug, and/or in the alternative come up with a work-around?
One last thing: I would be greatly appreciate it if someone can tell me HOW to post a New topic. I can not find anything that says “New Topic” or something to that effect.

Thank you,

D’Cat

@desercat the issue with VMware is fixable quite easy. I just did this now, and with a bit of googling found a fix:

First, we ensure we have all appropriate dependencies installed:

dnf install dkms kernel-headers kernel-devel

Then we install VMware Player. I downloaded and installed 16.1.2. After it was installed, I tried running it, and it failed to compile vmmon. So obviously wouldn’t run any further. However, I then found some info and a git repository for the fixes for the kernel versions that don’t seem to play well with VMware Player. Under the Variables section, you need to put the correct version number for what you downloaded. This can be found by doing:

[ian@rocky ~]$ vmplayer -v
[AppLoader] Use shipped PC/SC Lite smart card framework.
An up-to-date "pcsc-lite-libs" or "libpcsclite1" package from your system is preferred.
I/O warning : failed to load external entity "/etc/vmware/hostd/proxy.xml"
VMware Player 16.1.2 build-17966106

as you can see, it’s version 16.1.2 of VMware Player. So in the script you set the product and version to download the appropriate branch from the git repo for the fixes. If you have a different version, change the number 16.1.2 to the version number you have from running the command above. If using VMware Workstation, change the word player to workstation for VMPRODUCT and set VMVERSION appropriately

You can run this script below as root, and it will get it running for you. Copy and paste it into a file called vmware-fix.sh and then do:

chmod +x vmware-fix.sh
./vmware-fix.sh

content below:

#!/bin/bash
#
# Fixes VMware kernel module build issues

# Change your version number appropriately
# for VMware Player or Workstation

VMPRODUCT=player
VMVERSION=16.1.2

###############################
# DO NOT EDIT BELOW THIS LINE #
###############################

#############
# Functions #
#############

# Set required variables
set_variables() {
  echo -e "\nSetting required variables..."
  TMPDIR=/tmp/fix-vmware
}

# Install dependencies
check_deps_installed() {
  echo "Installing dependencies..."
  dnf install -y dkms kernel-headers kernel-devel git > /dev/null
}

# Apply fix
apply_fix() {
  echo -e "Applying fix...\n"
  mkdir $TMPDIR
  cd $TMPDIR
  git clone -b ${VMPRODUCT}-${VMVERSION} --quiet https://github.com/mkubecek/vmware-host-modules
  cd $TMPDIR/vmware-host-modules
  make
  make install
  rm -rf $TMPDIR
}

# Fix symlink for zlib, restart vmware service
fix_zlib() {
  echo -e "\nFixing zlib symlink..."
  rm /usr/lib/vmware/lib/libz.so.1/libz.so.1
  ln -s /lib/x86_64-linux-gnu/libz.so.1 /usr/lib/vmware/lib/libz.so.1/libz.so.1
}

restart_vmware() {
  echo -e "Restarting vmware service..."
  systemctl restart vmware
  echo -e "VMware fix complete...\n"
}

# Run functions
set_variables
check_deps_installed
apply_fix
fix_zlib
restart_vmware

and then run VMware Player as usual, accept the license agreements, etc. Technically dkms isn’t required. Also, after each new kernel install, it will be required to run the vmware-fix.sh script.

Unfortunately because VMWare requires pretty sophisticated kernel modules and because of kernel ABI compatibility related issues, it can be difficult to keep such a program functioning. With kernel headers it can rebuild the modules on-the-fly but I think long term reliability would necessitate that the vendor provide updates for the various kernels.

Another issue with VMWare Player is that I think a lot of people just use ESXi because its faster and more widely used (and because its free to some extent). Although it requires a dedicated machine with specific hardware so that could be a limitation for you.

1 Like

I long ago gave up on vmware (even the paid version!) in favor of VirtualBox.

Even VirtualBox has its flaws – I’m looking carefully at KVM/QEMU.

I strongly encourage anyone contemplating vmware to look elsewhere.

I’ve used only KVM/QEMU since that hypervisor is offered by base repos (CentOS 5, 6, 7, 8 …).

1 Like

I agree with @jlehtone KVM is natively available in the kernel, and other than the GUI tools to install, not much else is really needed. It’s far less invasive than installing VirtualBox or VMware to be honest. And just simply works. Prior to that I preferred Xen Virtualisation even if it was quirky, but KVM even beats that now as well and far less effort required to get VM’s up and running.

Use KVM on my laptop, as well as on a server in the office and my desktop computer at home has it on as well.