You are here

Installing VMware Player on Linux - December 2014

The kernel headers corresponding to the installed kernel will always be necessary for any distribution as well as standard development tools for compiling and building software, such as make and gcc. There are other prerequisites that are sometimes explicitly specified by a distribution's wiki or help page, such as the fuse package indicated by the Arch wiki. Sometimes actual prerequisites that are necessary are not indicated in the documentation because they are normally installed by default or because they are widely useful to other packages and are installed as dependencies. The headers will almost always not be already installed. If anything is missing the VMware installer will stop and indicate the missing component.

    • openSUSE (13.2)
      development tools
      gcc and make were installed before I installed Vmware Player, either by default or as a dependency to some other installation
      Linux kernel headers
      Installing the package kernel-desktop-devel will automatically install the kernel headers corresponding to the kernel-desktop package. If you installed a different kernel version, for example kernel-vanilla, you will need to install the kernel-vanilla-devel to make the appropriate kernel headers available. Installing the kernel-[kernel-flavor]-devel package will also install the packages kernel-macros and kernel-devel packages as dependencies.
    • Ubuntu (14.04 LTS)
      Linux kernel headers
      Install the headers corresponding to the installed kernel with the command sudo apt-get install linux-headers-$(uname -r).
      Install the standard set of software building packages with the command sudo apt-get install linux-headers-$(uname -r)

  • Manjaro (0.8.11)
    fuse
    fuse This will make the services vmware-vmblock-fuse or vmblock services
    GTK theme
    gtkmm This will be used by the VMware GUI. This was already installed on the system before I installed VMware. There were errors relating to GTK theming despite the fact that only theme related package indicated by the Arch wiki being installed.
    Linux kernel headers
    Linux headers corresponding to the installed kernel will need to be installed. In the case of my Manjaro installation, the installed kernel was 3.16.7.1-1 so I needed to install linux316-headers. You will need to be aware of where the files in this package (the kernel header) are placed by the installer in case there is a problem or if VMware Player asks for their location. I encountered this situation because the kernel was updated from 3.16.7.1-1 to 3.16.7.2-1 during the same session as when I installed VMware. So the next time I started VMware, I was asked for the location of the headers. These are not placed in the same directory as most Linux distributions by Manjaro, but in /usr/lib/modules/.
    An error in Manjaro when the appropriate kernel headers are not found.
    The location of the kernel headers must be specified manually in Manjaro. They are in /usr/lib/modules/.
  • Sabayon (rolling, equo version 293)
    development tools
    I installed the package sys-devel/gcc-4.8.3 to meet this requirement.
    kernel headers
    I installed the package sys-kernel/sabayon-sources-3.16.7 to meet this requirement. One possible source of confusion here is that Sabayon does not provide the patch level in the kernel version, so the command uname -r will give3.16.0-sabayon, when the complete version of the installed kernel is 3.16.7. When searching for the package using equo search sabayon-sources, there will only be one result for kernel version 3.16.x which is the one corresponding to the currently available kernel, and if the system is current, this will be the correct package version for the installed kernel. The following tips regarding kernels in Sabayon may be helpful:
  • To find the kernel version, including the patch-level, use equo query installed "linux-sabayon"
  • Sabayon never updates kernels automatically except to newer versions of the patch-level. See {cms_selflink ext="https://wiki.sabayon.org/index.php?title=En:Entropy#The_kernel" text="this Sabayon wiki page"}.

The installer is started by executing the installed bundle as a shell script with

sh ~/Downloads/VMware-x.x.x-xxxx-xxxxxxx.bundle

By default this will start -- according to the VMware Player documentation -- a GUI installer in most distributions except Red Hat and CentOS. It did start a GUI installer in Ubuntu, openSUSE, Manjaro, and Sabayon, although on Manjaro and Sabayon, I had to abort the GUI installer and use the non-GUI installer which is activated with the --console option when issuing the command. This option was useful in determining the cause of the installation failures when using the GUI installer, if that is used first as in the case of the Manjaro and Sabayon Player installations. Other useful options when using the console installation are --eulas-agreed to bypass the display of the license agreements and automatically agree to them. {cms_selflink ext="https://www.vmware.com/pdf/desktop/vmware_player70.pdf" text="The Player documentation"} lists many other options available with the command line installation that do not have equivalent methods in the GUI installer.

When installing VMware player in openSUSE, Ubuntu, etc. I used the default command which opened the GUI installer.

Starting the installer in Manjaro 0.8.11."
Starting the installer using default options opens a GUI.

 

  • accept license agreement for Player

 

The initial screen is the license for Player. Accept the license terms to get to the next screen.

 

  • accept license agreement for OVF Tool for Linux

 

The second screen is the license for the VMware tools. Accept the license terms to get to the next screen.

 

  • check for updates setting

 

Choosing "Yes" to check for software updates at start-up may be a good idea. This will result in VMware asking you to update to Workstation, but you can always choose "Skip this version" for that. The benefit to choosing yes here, I think, is that the guest tools will be downloaded and installed automatically, the first time you start the machine. There is also a place in Player settings to specify this option and updating VMware tools separately.

 

  • select whether to provide usage statistics
  • enter a license key if you have one. This is not required for non-commercial use of VMware Player.
  • check install on page that displays "The product is ready to be installed."

 

In distributions that use systemd but haven't properly implemented it -- I assume, with respect to applications that need to add and manage services, there will be a message regarding service management init scripts during the installation as shown in the following screenshot:

Running vmware-modconfig --console --install-all (1 of 2)
This is the first thing to be done after the installer completes in Manjaro (Arch).

The implication of this message is that the services need to be manually started using the SysVinit command /etc/init.d/vmware start with root privileges. If this command is not run an error message as shown in the following screenshot will be presented.

Error when starting VMware Player whithout first having started its services, either manually or automatically.
The services can first be started manually with /etc/init.d/vmware start or automatically by systemd. The method for replacing the inti system with systemd in distributions that need this fix is presented later in this article.

The permanent fix for this appears later . I assume that this message run before starting VMware, My assumption that this issue occurs in distributions without a good systemd, or in systems that encourage their users to be more proactive in setting up their systems, because the manual service start was not necessary in openSUSE.

Installing VMware on Manjaro, an Arch derivative, and Sabayon required additional steps -- two additional on Manjaro, and one additional on Sabayon. (In fact, Sabayon also required the same two additional steps, but Sabayon automated one of these, with a dialog prompt.) The first issue was the necessity of rebuilding the kernel modules to be loaded, and the second was to replace the SysVinit service management with systemd service management in order to start the necessary services automatically.

Rebuild modules

The Arch wiki gives the guidance to run vmware-modconfig --console --install-all to rebuild the kernel modules required for VMware. Note that this command is applicable only to Player version 7.0; the equivalent command for earlier versions, according to VMware in the KB linked below is vmware-config.pl.

Running vmware-modconfig --console --install-all (1 of 2)
This is the first thing to be done after the installer completes in Manjaro (Arch).
Running vmware-modconfig --console --install-all (2 of 2)
This is the first thing to be done after the installer completes in Manjaro (Arch).

If everything works as it should, this step will only be necessary when installing VMware the first time and after kernel updates. See this knowledge base {cms_selflink ext="http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd..." text="article on the VMware site"}. Sabayon automated this step with a prompt in the "Kernel Module Updater" popup dialog.

systemd Replacement for SysVinit Service Management

One of these additional steps was common to both Manjaro and Sabayon and involved converting the method that VMware services are automatically started from the SysV init to systemd. Because of this issue, the scripts that should run at start-up to start VMware services are not set up automatically.

An error in Manjaro (Arch) -- pictured -- and Sabayon related to the implementation of systemd as a replacement to SysVinit service management.
Without a fix VMware services need to be started manually.

Without a permanent fix, it is necessary to run sudo /etc/init.d/vmware start when sudo is enabled on the system or /etc/init.d/vmware startas root.

An error in Manjaro (Arch) -- pictured -- and Sabayon related to the implementation of systemd as a replacement to SysVinit service management.
Without a fix VMware services need to be started manually.

Following the method given on the Arch wiki for replacing service startup by the init method by a systemd service solves this problem incidentally. The steps are as follows:

  1. Create a file

    /etc/systemd/systemd/vmware.service

    containing the text in the following code block.

    
    [Unit]
    Description=VMware daemon
    
    [Service]
    ExecStart=/etc/init.d/vmware start
    ExecStop=/etc/init.d/vmware stop
    PIDFile=/var/lock/subsys/vmware
    TimeoutSec=0
    RemainAfterExit=yes
    
    [Install]
    WantedBy=multi-user.target

Installing VMware is simple as far as the command is concerned, a simple shell command is all that is necessary. But, prerequisites must be met beforehand, which are that:

  • the appropriate kernel headers for the installed kernel must be installed and available
  • the standard software compilation and building tools must be installed and available

.

 

In addition for certain distributions one or more of the following steps will be necessary.

  • The kernel modules necessary for VMware operation must be built
  • In systems that use systemd instead of SysVinit service management, a systemd unit must be created to replace the init service management in order to automatically start VMware services