Getting VMware 15 to work on Linux 5.8

After I upgraded to Fedora 33, VMware stopped working:

$ vmware
/usr/bin/vmware: line 105: 90845 Segmentation fault      (core dumped) "$BINDIR"/vmware-modconfig --appname="VMware Workstation" --icon="vmware-workstation"

This is due to two changes in kernel 5.8…

  • General kernel API changes prevent the old module from working
  • /proc/version format has changed, so vmware-modconfig doesn’t work anymore.

For the first issue, someone has a fix for a common VMware module patchset. Apply this pull request if you’re running VMware Workstation 15.5.6 (or it’s Player equivalent):

# Get the repository
$ git clone https://github.com/mkubecek/vmware-host-modules
$ cd vmware-host-modules
# Checkout this PR
$ git remote add baryonix https://github.com/baryonix/vmware-host-modules
$ git fetch -a baryonix
$ git checkout baryonix/fixes-for-5.8

If you’re not running 15.5.6, I had to check out an older version and cherry pick the commits (or rebase, whatever works for you). Otherwise, it would complain the VMware monitor version is too new. Do so like this:

$ git checkout origin/workstation-15.5.2
$ git cherry-pick c71e377
$ git cherry-pick 2da85cb

Then build and install:

$ make install
$ sudo make install
# Restart VMware so it reloads the modules (use init.d or systemctl, but init.d will wrap systemctl if needed)
$ /etc/init.d/vmware restart

Second, you might need to patch the /usr/bin/vmware (or vmplayer) script so it doesn’t try to run vmware-modconfig. This means you’ll have to keep on top of kernel and module changes! Comment out the lines like so:

#if "$BINDIR"/vmware-modconfig --appname="VMware Workstation" --icon="vmware-workstation" &&
#   vmware_module_exists $vmmon; then
   exec "$libdir"/bin/"vmware" "$@"
#fi

After this, VMware started working for me again. I should probably upgrade to 16 sometime…

Bonus: Sometimes older VMware had issues with the libz library. If so, I had these lines in a script to fix it:

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

Leave a Reply

Your email address will not be published.