Ubuntu jeos has not enough kernel, and for some reason, the version of the module struct between 2.6.24-5-generic and 2.6.24-5-virtual disagrees. First solution I managed to do was:
mkdir generic; cd !$
apt-get source linux-image-2.6.24-5-generic
cd -; mkdir virtual; cd !$
apt-get source linux-ubuntu-modules-2.6.24-5-virtual
cd virtual/linux-ubuntu-modules-2.6.24-2.6.24/ubuntu/vmhgfs
make TOPDIR=../../../../generic/linux-2.6.24/ SRCROOT=.
This should produce ../vmhgfs.o , which loads just fine into booted 2.6.24-5-generic.