Difference between revisions of "Build guest vmware kernel modules"

From VI-Toolkit
Jump to: navigation, search
Line 50: Line 50:
 
  $ lsmod | grep -i vm
 
  $ lsmod | grep -i vm
  
The following kernel modules are currently being installed:
+
The following kernel modules are currently available:
* vmci - inter-VM and host interface
 
 
* vmhgfs - shared folders
 
* vmhgfs - shared folders
* vsock -
 
 
* vmxnet3 - virtual network adapter
 
* vmxnet3 - virtual network adapter
* pvscsi - paravirtual scsi
+
* vmw_balloon - balloon memory driver
 +
* vmw_pvscsi - paravirtual scsi
 +
* vmwgfx - accelerated graphics
 
* vmblock - enable drag & drop between guest and host OS (desktop feature)
 
* vmblock - enable drag & drop between guest and host OS (desktop feature)
* /usr/bin/vmware-toolbox-cmd
+
* vgauth - Guest Authentication
 +
* vmw_vmci - inter-VM and host interface
 +
* vmw_vsock_vmci_transport -
 +
* vsock - virtual sockets
 +
 
 +
There's also a number of additional commands/scripts to enable other features
 +
* /usr/bin/vmware-toolbox-cmd - shrink, upgrade, statistics, version, timesync, run scripts on power operations, power operations, control devices
 
* /usr/bin/vmware-user - advanced X features, guest resolution fit, drag and drop, file and text copy & paste
 
* /usr/bin/vmware-user - advanced X features, guest resolution fit, drag and drop, file and text copy & paste
 
* vmware-tools-thinprint - printing integration with the host using a virtual printing daemon
 
* vmware-tools-thinprint - printing integration with the host using a virtual printing daemon

Revision as of 21:13, 5 December 2014

Pre built modules are sometimes not enough

When you select "install VMware Tools" then your VMware product will try to install the available vmware modules. If you run linux then sometimes the kernel will not match up with the prebuilt modules as are supplied with your vmware product. You can unzip the vmware tools .tar.gz bundle from the attached virtual CDrom and run the perl script, but if you just supply defaults you might still miss out on some modules as it will fail silently.

eg running:

./vmware-install.pl --default

is great as long as you have provided the VM with the right prerequisites.

The solution

Present the linux vmware tools virtual cd-rom to the VM and mount as a CDRom.

   mount /dev/sr0 /mnt/cdrom  

Copy the files to your home folder

   cd ~  
   cp /cdrom/VMwareTools-*.tar.gz .  

unzip

   tar xfz VMwareTools-*.tar.gz  

go into sub folder to build the tools

   cd vmware-tools-distrib/  

check and run pre-requisites from next paragraph if needed and then run:

   sudo ./vmware-install.pl  

Press <enter> on any questions asked.

After you are done you can remove the vmware-tool-distrib folder as it is only needed before the install.

After installing VMware Tools you now have the possibility to run

vmware-config-tools.pl

to configure how vmware tools is supposed to work.

Please note that on linux kernels 3.3 and higher, the original vmxnet module is no longer recommended. You are advised to use a newer virtual NIC such as vmxnet3 or e1000e.

Preconditions for the script to work

If you try to run the vmware-install.pl script and you need to build new kernel modules, then the script might give you the following error:

Before you can compile modules, you need to have the following installed...

make
gcc
kernel headers of the running kernel

You will have to get your kernel-headers and a compiler and build system before hand. On Ubuntu or debian based systems execute this:

sudo apt-get install build-essential linux-headers-$(uname -r)

On fedora / Red Hat based systems:

su -c "yum install kernel-devel"

On SUSE / openSUSE use YaST to fetch the latest linux-kernel-headers

Troubleshooting

After the manual compile, you can run the lsmod command to see what modules it was able to load:

$ lsmod | grep -i vm

The following kernel modules are currently available:

  • vmhgfs - shared folders
  • vmxnet3 - virtual network adapter
  • vmw_balloon - balloon memory driver
  • vmw_pvscsi - paravirtual scsi
  • vmwgfx - accelerated graphics
  • vmblock - enable drag & drop between guest and host OS (desktop feature)
  • vgauth - Guest Authentication
  • vmw_vmci - inter-VM and host interface
  • vmw_vsock_vmci_transport -
  • vsock - virtual sockets

There's also a number of additional commands/scripts to enable other features

  • /usr/bin/vmware-toolbox-cmd - shrink, upgrade, statistics, version, timesync, run scripts on power operations, power operations, control devices
  • /usr/bin/vmware-user - advanced X features, guest resolution fit, drag and drop, file and text copy & paste
  • vmware-tools-thinprint - printing integration with the host using a virtual printing daemon

Alternative solution

Many Linux distributions now come with a package called open-vm-tools and while that does give you a good bases, there are still things missing. Most notable is the host guest file system integration that is provided by the vmhgfs kernel module.