/vmware-tools-patches

Patch and build VMware tools automatically

Primary LanguageShellMIT LicenseMIT

VMware Tools Patches Flattr this

Patch VMware Tools source code for a variety of VMware Tools and kernel versions.

Quickest Start (The easiest way)

$ git clone https://github.com/rasa/vmware-tools-patches.git
$ cd vmware-tools-patches
$ ./patched-open-vm-tools.sh

The above script has been provided which generally should always work, automatically invoking commands described in the following section "Quick Start"

To update and re-patch later, remove the vmware-tools-patches subdirectory with the previous download and re-run the script.

Quick Start

To build VMware Tools, do the following:

  1. Checkout the repository:

    $ git clone https://github.com/rasa/vmware-tools-patches.git
  2. (Optional) Copy your patch(es) into the appropriate directory in the patches directory. Patches must end in .patch, or .diff and be properly formatted. For example:

    $ cp great-new.patch vmware-tools-patches/patches/vmhgfs
  3. Copy or download the version of VMware Tools you wish to use into the vmware-tools-patches folder. One way to do this is using download-tools.sh and pass it the associated VMWare Fusion version number:

    $ cd vmware-tools-patches
    $ ./download-tools.sh latest

    It is strongly suggested to use the latest version of VMware Tools.

    VMware Tools is also included inside the linux.iso file that is shipped with VMware Fusion, Player, and Workstation.

  4. Untar the tarball, and apply the patches:

    $ cd vmware-tools-patches
    $ ./untar-and-patch.sh
  5. Run the vmware-install.pl installer to install VMware Tools:

    $ ./compile.sh

Tested Kernels

With the patches applied, at least one version of VMware Tools listed below, compiles successfully with the following Linux kernels:

We have not received any reports of the patches failing on the following kernels, so presumably they apply successfully:

Tested VMware Tools Versions

The included patches have been tested with the following versions of VMware Tools:

Encountering Failures

If one or more patches do not apply successfully, you may get an error during compilation, such as

vmhgfs-only/link.c:186:10: error: implicit declaration of function ‘vfs_readlink’ [-Werror=implicit-function-declaration]

This indicates the vmhgfs kernel module failed to build and was not installed. That may be acceptable, as VMware Tools still installed successfully, but without the "shared folder" functionality provided by the vmhgfs module.

Required Patch Format

Please note your patches must contain only one directory name in them. For example, the following patches will work:

+--- vmhgfs-only/link.c.orig	2014-04-23 10:11:34.891106441 +0100
++++ vmhgfs-only/link.c	2014-04-23 00:49:03.000000000 +0100

or

+--- vmhgfs-only.orig/link.c	2014-04-23 10:11:34.891106441 +0100
++++ vmhgfs-only/link.c	2014-04-23 00:49:03.000000000 +0100

The following patches will not work:

+--- link.c.orig	2014-04-23 10:11:34.891106441 +0100
++++ link.c	2014-04-23 00:49:03.000000000 +0100

or

+--- path/to/vmhgfs-only/link.c.orig	2014-04-23 10:11:34.891106441 +0100
++++ path/to/vmhgfs-only/link.c	2014-04-23 00:49:03.000000000 +0100

Dependencies

If you use download-tools.sh, to download a VMware Tools file, the script will need the following installed:

  • sevenzip or sudo rights
  • unzip
  • wget
  • zip

If apt-get is installed on your system, the following packages will be installed when you first run compile.sh or untar-and-patch-and-compile.sh.sh:

  • linux-headers-$(uname -r)
  • build-essential
  • dkms
  • patch
  • perl
  • psmisc

If yum is installed on your system, the following packages will be installed when you first run compile.sh or untar-and-patch-and-compile.sh.sh:

  • gcc
  • glibc-headers
  • kernel-devel
  • kernel-headers
  • make
  • perl

If neither apt-get or yum is installed, you will need to install these (or equivalent) packages manually, before starting.

Contributing

To contribute to this project, please see CONTRIBUTING.md.

Bugs

To view existing bugs, or report a new bug, please see issues.

Changelog

To view the version history for this project, please see CHANGELOG.md.

License

This project is MIT licensed.

Contact

This project was created and is maintained by Ross Smith II endorse

Feedback, suggestions, and enhancements are welcome.