Previously used ubuntu12.04 has been no problem. Recent WHIM update the version to the latest after discovering that the shared folder is not available. So just reinstall the Vmtools. But in compiling the Vmhgfs times wrong. The error is as follows:
In file included from./arch/x86/include/asm/percpu.h:44:0, from./arch/x86/include/asm/preempt.h:5, From Include/linux/preempt.h:18, from Include/linux/spinlock.h:50, from include /linux/mmzone.h:7, from Include/linux/gfp.h:5, from Include/linux/mm.h:9, From Include/linux/pagemap.h:7, FROM/TMP/MODCONFIG-P8BMWH/VMHGFS-ONLY/INODE.C:29:/TMP/MODCONFIG-P8BMWH/VM hgfs-only/inode.c:in function ' hgfspermission ': include/linux/kernel.h:834:27:error: ' struct dentry ' has no member Named ' D_alias ' Const typeof (((type *) 0)->member) *__mptr = (PTR); ^include/linux/list.h:687:40:note:in expansion of macro ' container_of ' #define hlist_entry (PTR, type, member) container _of (Ptr,type,member) ^include/linux/list.h:698:15:note:in expansion of macro ' HLI St_entry ' ____ptr? Hlist_entry (____ptr, type, MEmber): NULL;
According to the printed information you can know that the struct dentry has no member D_alias in the Hgfspermission function. That's strange. Surfing the internet for the next reason is that VMware's Vmhgfs module has a bug in the latest release version of Unbutu. The installation needs to be patched or manually modified. The following explains how to change the manual modification.
1. Go to the location of the source code in VM tools
CD Vmware-tools-distrib/lib/modules/source
2. Unzip the Vmhgfs.tar
sudo tar xf Vmhgfs.tar
3. Modify the file inode.c
Check the kernel version first. I'm here, 3.16.0.
uname -alinux ubuntu 3.16.0-38-generic #52-ubuntu SMP Thu May 7 10:51:21 UTC x86_64 x86_64 x86_64 gnu/linux
Modify Vmhggs.tar extracted file inode.c. Go to the Vmhgfs-only folder. Modify with Vim or gedit
Line 1925th
#if Linux_version_code < Kernel_version (3, 0) d_alias) {#else d_u.d_alias) {#endif
Line 1983th
#if Linux_version_code < Kernel_version (3, 0) struct dentry *dentry = list_entry (pos, struct dentry, d_alias); else struct Dentry *dentry = list_entry (pos, struct dentry, d_u.d_alias); #endif
3. Back up the original Vmhgfs.tar after the file has been modified
MV Vmhgfs.tar Vmhgfs.tar.orig
4. RePack, create new Vmhgfs.tar with modified source code
Tar CF Vmhgfs.tar Vmhgfs-only
5. Follow the previous steps to reinstall.
Vmtools problem solving for folder sharing between development host and Linux virtual machine after installation