Unable to build vmhgfs module

I had trouble building the vmhgfs module (the one that allows shared folders between guest and host computers) when trying to install VMWare Tools in Ubuntu 7.10 running in VMware Workstation 6.0.2 build-59824 on Windows XP. I was getting the following error:

Trying to find a suitable vmhgfs module for your running kernel.

None of the pre-built vmhgfs modules for VMware Tools is suitable for your
running kernel.  Do you want this program to try to build the vmhgfs module for
your system (you need to have a C compiler installed on your system)? [yes]

Extracting the sources of the vmhgfs module.

Building the vmhgfs module.

Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config0/vmhgfs-only'
make -C /lib/modules/2.6.22-15-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.22-15-generic'
CC [M]  /tmp/vmware-config0/vmhgfs-only/backdoor.o
CC [M]  /tmp/vmware-config0/vmhgfs-only/backdoorGcc32.o
CC [M]  /tmp/vmware-config0/vmhgfs-only/bdhandler.o
CC [M]  /tmp/vmware-config0/vmhgfs-only/cpName.o
CC [M]  /tmp/vmware-config0/vmhgfs-only/cpNameLinux.o
CC [M]  /tmp/vmware-config0/vmhgfs-only/cpNameLite.o
CC [M]  /tmp/vmware-config0/vmhgfs-only/dbllnklst.o
CC [M]  /tmp/vmware-config0/vmhgfs-only/dentry.o
CC [M]  /tmp/vmware-config0/vmhgfs-only/dir.o
CC [M]  /tmp/vmware-config0/vmhgfs-only/eventManager.o
CC [M]  /tmp/vmware-config0/vmhgfs-only/file.o
CC [M]  /tmp/vmware-config0/vmhgfs-only/filesystem.o
/tmp/vmware-config0/vmhgfs-only/filesystem.c: In function ‘HgfsInitFileSystem’:
/tmp/vmware-config0/vmhgfs-only/filesystem.c:582: error: too few arguments to function ‘kmem_cache_create’
/tmp/vmware-config0/vmhgfs-only/filesystem.c:593: error: too few arguments to function ‘kmem_cache_create’
make[2]: *** [/tmp/vmware-config0/vmhgfs-only/filesystem.o] Error 1
make[1]: *** [_module_/tmp/vmware-config0/vmhgfs-only] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.22-15-generic'
make: *** [vmhgfs.ko] Error 2
make: Leaving directory `/tmp/vmware-config0/vmhgfs-only'
Unable to build the vmhgfs module.

The filesystem driver (vmhgfs module) is used only for the shared folder
feature. The rest of the software provided by VMware Tools is designed to work
independently of this feature.
If you wish to have the shared folders feature, you can install the driver by
running vmware-config-tools.pl again after making sure that gcc, binutils, make
and the kernel sources for your running kernel are installed on your machine.
These packages are available on your distribution's installation CD.

A quick google search turned up this thread which contained the solution to my problem:

sudo aptitude install build-essential linux-headers-$(uname -r)
cd /tmp
tar -xzvf VMwareTools-6.0.2-59824.tar.gz
cd vmware-tools-distrib/lib/modules/source
cp vmhgfs.tar vmhgfs.tar.old
tar xvf vmhgfs.tar
cd vmhgfs-only
chmod 644 compat_slab.h
vi compat_slab.h

Search-> #if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 22) || defined(VMW_KMEMCR_HAS_DTOR)
Fix-> #if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 22) || defined(VMW_KMEMCR_HAS_DTOR)
Save Changes

chmod 444 compat_slab.h
cd ..
rm vmhgfs.tar
tar cvf vmhgfs.tar vmhgfs-only
cd /tmp/vmware-tools-distrib
sudo ./vmware-install.pl

Be Sociable, Share!
You can leave a response, or trackback from your own site.

Leave a Reply