Install VMWare Tools on FreeBSD


Revision as of 09:17, 9 July 2014 by Falz (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

VMWare versions prior to 3.5.0 has an out of date set of client tools for FreeBSD. The tools that come with version 3.5.0 install and build fine. The install script is completely incorrect and tries to copy modules in the wrong locations. This doc was created to show how to get it installed correctly. While you can run a VM without the client tools installed, you shouldn't. They let the VM talk with the host to let it reclaim memory, extra CPU cycles, etc. You're supposed to be able to use the VMWare Windows client to just initiate a tools install, but it failed every time I tried it. Instead, on the VMWare host machine, the FreeBSD iso is located at:


Copy that to the client VM (/root/freebsd.iso in this case) then mount the iso:

mdconfig -a -t vnode -f /root/freebsd.iso -u 0
mkdir /mnt/iso
mount -t cd9660 /dev/md0 /mnt/iso

You can now get vmware-freebsd-tools.tar.gz from the iso and untar it. The install requires that you have the full kernel source installed so it can compile modules if needed! Use Freebsd's sysinstall to get the source if you don't have it. To install, run:


This is supposed to be run from a local console. I ran across one problem- when it got to the step of Guest Memory Manager it failed constantly. Looking through things, it was attempting to load the kernel module named vmmemctl.ko. For whatever reason, the install wasn't intelligent enough to put this module in the correct spot, so I had to do it manually. In my case I'm using the dir /usr/src/progs as an area to extract the source into:

mkdir /usr/src/progs
cp /usr/local/lib/vmware-tools/modules/source/vmmemctl.tar /usr/src/progs
cd /usr/src/progs
tar -zxf vmmemctl.tar
cd /usr/src/progs/vmmemctl-only
#do not run make install, as it will try to put vmmemctl.ko in /modules, but instead just 
#creates a FILE called /modules since that dir is invalid!
cp vmmemctl.ko /boot/kernel

Now you can run the post install script, /usr/local/bin/, and it should properly load/unload this module during the Guest Memory Manager portion.