vmhgfs module not compilable for VMware Tools 9.9.0 (Fusion7.1) after Ubuntu Linux kernel update to 3.13.0-46-generic (Febr. 2015) (Shared Folder Feature not working in Ubuntu 14.04 LTS (Guest) on MacOSX Yosemite (Host))?
Hello Community and VMware Fusion Support Team,
we are using VMware Fusion 7.1.0 on MacOSX Yosemite to virtualize Ubuntu 14.04 LTS, because Ubuntu is our ideal software development environment.
On February, 13th 2015 we lost the Shared Folder Feature between Ubuntu and MacOSX. Probably, the update of the Linux kernel to 3.13.0-46-generic causes this problem although the existing vmhgfs module of the VMware Tools in Ubuntu wouldn't be damaged by the Linux kernel update. We use VMware Fusion 7.0.0 with Ubuntu 14.04 LTS and MacOSX for one year without problems.
We updates to VMware Fusion 7.1.0 in the hope to fix the Shared Folder Feature problem in vers. 7.0.0.
We tried to reinstall VMware tools 9.9.0 on all our computers but the Shared Folder Feature is not working. All other VMware tool features are working fine.
Actually, the vmhgfs module couldn't be compiled during VMware tools installation because…
1. In Ubuntu 14.04 LTS the terminal command lsmod | grep "vm." shows no vmhgfs module
2. During vmhgfs module compilation there were several "errors" near "/vmhgfs-only/" and "make[]:"
Here is one of our terminal journals for you:
"
include/linux/compiler-gcc4.h:14:34: error: ‘struct dentry’ has no member named ‘d_alias’
#define __compiler_offsetof(a,b) __builtin_offsetof(a,b)
^
include/linux/stddef.h:17:31: note: in expansion of macro ‘__compiler_offsetof’
#define offsetof(TYPE,MEMBER) __compiler_offsetof(TYPE,MEMBER)
^
include/linux/kernel.h:794:29: note: in expansion of macro ‘offsetof’
(type *)( (char *)__mptr - offsetof(type,member) );})
^
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 ‘hlist_entry’
____ptr ? hlist_entry(____ptr, type, member) : NULL; \
^
include/linux/list.h:710:13: note: in expansion of macro ‘hlist_entry_safe’
pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member))
^
/tmp/modconfig-ShMrRp/vmhgfs-only/inode.c:1920:7: note: in expansion of macro ‘hlist_for_each_entry’
hlist_for_each_entry(dentry,
^
make[2]: *** [/tmp/modconfig-ShMrRp/vmhgfs-only/inode.o] Error 1
make[1]: *** [_module_/tmp/modconfig-ShMrRp/vmhgfs-only] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-46-generic'
make: *** [vmhgfs.ko] Error 2
make: Leaving directory `/tmp/modconfig-ShMrRp/vmhgfs-only'
"
3. And /mnt/hgfs is empty but folder sharing is enabled for Mac's "Documents" directory for example.
If we run vmware-hgfsclient in a terminal, we get the list of shared folders but /mnt/hgfs is empty.
Have you an idea to compile the hgfs module manually with the new Linux kernel 3.13.0-46-generic? Or can we expect a patch within a few days?
Best regards,
Toni
PS: vmhgfs module compilation failed, Ubuntu terminal journal:
toni@vm-ubuntu:~$ sudo apt-get update && sudo apt-get upgrade
[sudo] password for toni:
Ign http://de.archive.ubuntu.com trusty InRelease
...
Fetched 1.772 kB in 8s (202 kB/s)
Reading package lists... Done
...
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.
toni@vm-ubuntu:~$ sudo apt-get install -y build-essential
Reading package lists... Done
Building dependency tree
Reading state information... Done
build-essential is already the newest version.
0 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.
toni@vm-ubuntu:~$ sudo apt-get install linux-headers-`uname -r`
Reading package lists... Done
Building dependency tree
Reading state information... Done
linux-headers-3.13.0-46-generic is already the newest version.
0 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.
toni@vm-ubuntu:~$ mkdir /mnt/cdrom
mkdir: cannot create directory ‘/mnt/cdrom’: File exists
toni@vm-ubuntu:~$ sudo mount /dev/cdrom /mnt/cdrom
mount: block device /dev/sr0 is write-protected, mounting read-only
toni@vm-ubuntu:~$ ls /mnt/cdrom
manifest.txt run_upgrader.sh VMwareTools-9.9.0-2304977.tar.gz vmware-tools-upgrader-32 vmware-tools-upgrader-64
toni@vm-ubuntu:~$ tar -xzvf /mnt/cdrom/VMwareTools-9.9.0-2304977.tar.gz -C /tmp/
vmware-tools-distrib/
vmware-tools-distrib/FILES
vmware-tools-distrib/doc/
...
vmware-tools-distrib/bin/vm-support
vmware-tools-distrib/bin/vmware-guestproxycerttool.pl
vmware-tools-distrib/vmware-install.pl
toni@vm-ubuntu:~$ cd /tmp/vmware-tools-distrib/
toni@vm-ubuntu:/tmp/vmware-tools-distrib$ ll
total 492
drwxr-xr-x 7 toni toni 4096 Nov 20 22:49 ./
drwxrwxrwt 8 root root 4096 Feb 16 15:34 ../
drwxr-xr-x 2 toni toni 4096 Nov 20 22:49 bin/
drwxr-xr-x 2 toni toni 4096 Nov 20 22:49 doc/
drwxr-xr-x 5 toni toni 4096 Nov 20 22:49 etc/
-rw-r--r-- 1 toni toni 270917 Nov 20 22:49 FILES
-rw-r--r-- 1 toni toni 2538 Nov 20 22:49 INSTALL
drwxr-xr-x 2 toni toni 4096 Nov 20 22:49 installer/
drwxr-xr-x 15 toni toni 4096 Nov 20 22:49 lib/
-rwxr-xr-x 1 toni toni 196237 Nov 20 22:49 vmware-install.pl*
toni@vm-ubuntu:/tmp/vmware-tools-distrib$ ./vmware-install.pl
Please re-run this program as the super user.
toni@vm-ubuntu:/tmp/vmware-tools-distrib$ sudo -s
root@vm-ubuntu:/tmp/vmware-tools-distrib# ./vmware-install.pl
A previous installation of VMware Tools has been detected.
The previous installation was made by the tar installer (version 4).
Keeping the tar4 installer database format.
You have a version of VMware Tools installed. Continuing this install will
first uninstall the currently installed version. Do you wish to continue?
(yes/no) [yes]
Uninstalling the tar installation of VMware Tools.
Stopping services for vmware-tools
vmware-tools stop/waiting
Stopping services for vmware-tools-thinprint
vmware-tools-thinprint stop/waiting
File /etc/pulse/default.pa is backed up to /etc/pulse/default.pa.old.9.
update-initramfs: Generating /boot/initrd.img-3.13.0-46-generic
update-initramfs: Generating /boot/initrd.img-3.13.0-45-generic
...
update-initramfs: Generating /boot/initrd.img-3.13.0-24-generic
The removal of VMware Tools 9.9.0 build-2304977 for Linux completed
successfully.
Installing VMware Tools.
In which directory do you want to install the binary files?
[/usr/bin]
What is the directory that contains the init directories (rc0.d/ to rc6.d/)?
[/etc]
What is the directory that contains the init scripts?
[/etc/init.d]
In which directory do you want to install the daemon files?
[/usr/sbin]
In which directory do you want to install the library files?
[/usr/lib/vmware-tools]
The path "/usr/lib/vmware-tools" does not exist currently. This program is
going to create it, including needed parent directories. Is this what you want?
[yes]
In which directory do you want to install the documentation files?
[/usr/share/doc/vmware-tools]
The path "/usr/share/doc/vmware-tools" does not exist currently. This program
is going to create it, including needed parent directories. Is this what you
want? [yes]
The installation of VMware Tools 9.9.0 build-2304977 for Linux completed
successfully. You can decide to remove this software from your system at any
time by invoking the following command: "/usr/bin/vmware-uninstall-tools.pl".
Before running VMware Tools for the first time, you need to configure it by
invoking the following command: "/usr/bin/vmware-config-tools.pl". Do you want
this program to invoke the command for you now? [yes]
Initializing...
Making sure services for VMware Tools are stopped.
The module vmci has already been installed on this system by another installer
or package and will not be modified by this installer.
The module vsock has already been installed on this system by another installer
or package and will not be modified by this installer.
The module vmxnet3 has already been installed on this system by another
installer or package and will not be modified by this installer.
The module pvscsi has already been installed on this system by another
installer or package and will not be modified by this installer.
The module vmmemctl has already been installed on this system by another
installer or package and will not be modified by this installer.
The VMware Host-Guest Filesystem allows for shared folders between the host OS
and the guest OS in a Fusion or Workstation virtual environment. Do you wish
to enable this feature? [yes]
Before you can compile modules, you need to have the following installed...
make
gcc
kernel headers of the running kernel
Searching for GCC...
Detected GCC binary at "/usr/bin/gcc".
The path "/usr/bin/gcc" appears to be a valid path to the gcc binary.
Would you like to change it? [no]
Searching for a valid kernel header path...
Detected the kernel headers at "/lib/modules/3.13.0-46-generic/build/include".
The path "/lib/modules/3.13.0-46-generic/build/include" appears to be a valid
path to the 3.13.0-46-generic kernel headers.
Would you like to change it? [no]
Using kernel build system.
make: Entering directory `/tmp/modconfig-ShMrRp/vmhgfs-only'
/usr/bin/make -C /lib/modules/3.13.0-46-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/linux-headers-3.13.0-46-generic'
CC [M] /tmp/modconfig-ShMrRp/vmhgfs-only/backdoor.o
CC [M] /tmp/modconfig-ShMrRp/vmhgfs-only/backdoorGcc64.o
CC [M] /tmp/modconfig-ShMrRp/vmhgfs-only/bdhandler.o
CC [M] /tmp/modconfig-ShMrRp/vmhgfs-only/cpName.o
CC [M] /tmp/modconfig-ShMrRp/vmhgfs-only/cpNameLinux.o
CC [M] /tmp/modconfig-ShMrRp/vmhgfs-only/cpNameLite.o
CC [M] /tmp/modconfig-ShMrRp/vmhgfs-only/dentry.o
CC [M] /tmp/modconfig-ShMrRp/vmhgfs-only/dir.o
CC [M] /tmp/modconfig-ShMrRp/vmhgfs-only/file.o
CC [M] /tmp/modconfig-ShMrRp/vmhgfs-only/filesystem.o
CC [M] /tmp/modconfig-ShMrRp/vmhgfs-only/fsutil.o
CC [M] /tmp/modconfig-ShMrRp/vmhgfs-only/hgfsBd.o
CC [M] /tmp/modconfig-ShMrRp/vmhgfs-only/hgfsEscape.o
CC [M] /tmp/modconfig-ShMrRp/vmhgfs-only/hgfsUtil.o
CC [M] /tmp/modconfig-ShMrRp/vmhgfs-only/inode.o
In file included from /usr/src/linux-headers-3.13.0-46-generic/arch/x86/include/asm/percpu.h:44:0,
from /usr/src/linux-headers-3.13.0-46-generic/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:4,
from include/linux/mm.h:8,
from include/linux/pagemap.h:7,
from /tmp/modconfig-ShMrRp/vmhgfs-only/inode.c:29:
/tmp/modconfig-ShMrRp/vmhgfs-only/inode.c: In function ‘HgfsPermission’:
include/linux/kernel.h:793: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 ‘hlist_entry’
____ptr ? hlist_entry(____ptr, type, member) : NULL; \
^
include/linux/list.h:708:13: note: in expansion of macro ‘hlist_entry_safe’
for (pos = hlist_entry_safe((head)->first, typeof(*(pos)), member);\
^
/tmp/modconfig-ShMrRp/vmhgfs-only/inode.c:1920:7: note: in expansion of macro ‘hlist_for_each_entry’
hlist_for_each_entry(dentry,
^
include/linux/kernel.h:793:48: warning: initialization from incompatible pointer type [enabled by default]
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 ‘hlist_entry’
____ptr ? hlist_entry(____ptr, type, member) : NULL; \
^
include/linux/list.h:708:13: note: in expansion of macro ‘hlist_entry_safe’
for (pos = hlist_entry_safe((head)->first, typeof(*(pos)), member);\
^
/tmp/modconfig-ShMrRp/vmhgfs-only/inode.c:1920:7: note: in expansion of macro ‘hlist_for_each_entry’
hlist_for_each_entry(dentry,
^
In file included from include/linux/compiler-gcc.h:106:0,
from include/linux/compiler.h:54,
from include/uapi/linux/stddef.h:1,
from include/linux/stddef.h:4,
from /usr/src/linux-headers-3.13.0-46-generic/include/uapi/linux/posix_types.h:4,
from include/uapi/linux/types.h:13,
from include/linux/types.h:5,
from /tmp/modconfig-ShMrRp/vmhgfs-only/./shared/driver-config.h:71,
from /tmp/modconfig-ShMrRp/vmhgfs-only/inode.c:26:
include/linux/compiler-gcc4.h:14:34: error: ‘struct dentry’ has no member named ‘d_alias’
#define __compiler_offsetof(a,b) __builtin_offsetof(a,b)
^
include/linux/stddef.h:17:31: note: in expansion of macro ‘__compiler_offsetof’
#define offsetof(TYPE,MEMBER) __compiler_offsetof(TYPE,MEMBER)
^
include/linux/kernel.h:794:29: note: in expansion of macro ‘offsetof’
(type *)( (char *)__mptr - offsetof(type,member) );})
^
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 ‘hlist_entry’
____ptr ? hlist_entry(____ptr, type, member) : NULL; \
^
include/linux/list.h:708:13: note: in expansion of macro ‘hlist_entry_safe’
for (pos = hlist_entry_safe((head)->first, typeof(*(pos)), member);\
^
/tmp/modconfig-ShMrRp/vmhgfs-only/inode.c:1920:7: note: in expansion of macro ‘hlist_for_each_entry’
hlist_for_each_entry(dentry,
^
In file included from include/linux/preempt.h:10:0,
from include/linux/spinlock.h:50,
from include/linux/mmzone.h:7,
from include/linux/gfp.h:4,
from include/linux/mm.h:8,
from include/linux/pagemap.h:7,
from /tmp/modconfig-ShMrRp/vmhgfs-only/inode.c:29:
include/linux/list.h:710:35: error: ‘struct dentry’ has no member named ‘d_alias’
pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member))
^
include/linux/list.h:697:12: note: in definition of macro ‘hlist_entry_safe’
({ typeof(ptr) ____ptr = (ptr); \
^
/tmp/modconfig-ShMrRp/vmhgfs-only/inode.c:1920:7: note: in expansion of macro ‘hlist_for_each_entry’
hlist_for_each_entry(dentry,
^
include/linux/list.h:710:35: error: ‘struct dentry’ has no member named ‘d_alias’
pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member))
^
include/linux/list.h:697:28: note: in definition of macro ‘hlist_entry_safe’
({ typeof(ptr) ____ptr = (ptr); \
^
/tmp/modconfig-ShMrRp/vmhgfs-only/inode.c:1920:7: note: in expansion of macro ‘hlist_for_each_entry’
hlist_for_each_entry(dentry,
^
In file included from /usr/src/linux-headers-3.13.0-46-generic/arch/x86/include/asm/percpu.h:44:0,
from /usr/src/linux-headers-3.13.0-46-generic/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:4,
from include/linux/mm.h:8,
from include/linux/pagemap.h:7,
from /tmp/modconfig-ShMrRp/vmhgfs-only/inode.c:29:
include/linux/kernel.h:793: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 ‘hlist_entry’
____ptr ? hlist_entry(____ptr, type, member) : NULL; \
^
include/linux/list.h:710:13: note: in expansion of macro ‘hlist_entry_safe’
pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member))
^
/tmp/modconfig-ShMrRp/vmhgfs-only/inode.c:1920:7: note: in expansion of macro ‘hlist_for_each_entry’
hlist_for_each_entry(dentry,
^
include/linux/kernel.h:793:48: warning: initialization makes pointer from integer without a cast [enabled by default]
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 ‘hlist_entry’
____ptr ? hlist_entry(____ptr, type, member) : NULL; \
^
include/linux/list.h:710:13: note: in expansion of macro ‘hlist_entry_safe’
pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member))
^
/tmp/modconfig-ShMrRp/vmhgfs-only/inode.c:1920:7: note: in expansion of macro ‘hlist_for_each_entry’
hlist_for_each_entry(dentry,
^
In file included from include/linux/compiler-gcc.h:106:0,
from include/linux/compiler.h:54,
from include/uapi/linux/stddef.h:1,
from include/linux/stddef.h:4,
from /usr/src/linux-headers-3.13.0-46-generic/include/uapi/linux/posix_types.h:4,
from include/uapi/linux/types.h:13,
from include/linux/types.h:5,
from /tmp/modconfig-ShMrRp/vmhgfs-only/./shared/driver-config.h:71,
from /tmp/modconfig-ShMrRp/vmhgfs-only/inode.c:26:
include/linux/compiler-gcc4.h:14:34: error: ‘struct dentry’ has no member named ‘d_alias’
#define __compiler_offsetof(a,b) __builtin_offsetof(a,b)
^
include/linux/stddef.h:17:31: note: in expansion of macro ‘__compiler_offsetof’
#define offsetof(TYPE,MEMBER) __compiler_offsetof(TYPE,MEMBER)
^
include/linux/kernel.h:794:29: note: in expansion of macro ‘offsetof’
(type *)( (char *)__mptr - offsetof(type,member) );})
^
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 ‘hlist_entry’
____ptr ? hlist_entry(____ptr, type, member) : NULL; \
^
include/linux/list.h:710:13: note: in expansion of macro ‘hlist_entry_safe’
pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member))
^
/tmp/modconfig-ShMrRp/vmhgfs-only/inode.c:1920:7: note: in expansion of macro ‘hlist_for_each_entry’
hlist_for_each_entry(dentry,
^
make[2]: *** [/tmp/modconfig-ShMrRp/vmhgfs-only/inode.o] Error 1
make[1]: *** [_module_/tmp/modconfig-ShMrRp/vmhgfs-only] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-46-generic'
make: *** [vmhgfs.ko] Error 2
make: Leaving directory `/tmp/modconfig-ShMrRp/vmhgfs-only'
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.
[ Press Enter key to continue ]
The vmxnet driver is no longer supported on kernels 3.3 and greater. Please
upgrade to a newer virtual NIC. (e.g., vmxnet3 or e1000e)
The vmblock enables dragging or copying files between host and guest in a
Fusion or Workstation virtual environment. Do you wish to enable this feature?
[yes]
VMware automatic kernel modules enables automatic building and installation of
VMware kernel modules at boot that are not already present. This feature can be
enabled/disabled by re-running vmware-config-tools.pl.
Would you like to enable VMware automatic kernel modules?
[yes]
Thinprint provides driver-free printing. Do you wish to enable this feature?
[yes]
Disabling timer-based audio scheduling in pulseaudio.
Do you want to enable Guest Authentication (vgauth)? [yes]
Detected X server version 1.15.1
Distribution provided drivers for Xorg X server are used.
Skipping X configuration because X drivers are not included.
Creating a new initrd boot image for the kernel.
update-initramfs: Generating /boot/initrd.img-3.13.0-46-generic
vmware-tools start/running
vmware-tools-thinprint start/running
The configuration of VMware Tools 9.9.0 build-2304977 for Linux for this
running kernel completed successfully.
You must restart your X session before any mouse or graphics changes take
effect.
You can now run VMware Tools by invoking "/usr/bin/vmware-toolbox-cmd" from the
command line.
To enable advanced X features (e.g., guest resolution fit, drag and drop, and
file and text copy/paste), you will need to do one (or more) of the following:
1. Manually start /usr/bin/vmware-user
2. Log out and log back into your desktop session; and,
3. Restart your X session.
Enjoy,
--the VMware team
root@vm-ubuntu:/tmp/vmware-tools-distrib#