I am trying to compile the vmtools on a Oracle Linux 6.2 VMware installation. I'm getting strange compilation errors on all the vmtools. Log pasted below.
I have found thread
2330141 and followed the items in there with no help and no change.
yum -y install kernel-headers is all up to date
yum -y install kernel-devel is all up to date
Here are the issues I see:
1. Compiling the shared folder says linux/smp_lock.h does not exist, and then fails with SPIN_LOCK_UNLOCKED undeclared and unknow field `get_sb'
2. The network device driver fails in vmxnet.c
3. The vmblock module fails in dentry.c
4. The communication service fails in vmci_drv.c
5. The VM communication interface fails in vmci_drv.c
6. The X configuration is skipped because there are "no drivers for X.ora version: 7.9.6" (see the bottom of the log below).
start of pasted log
========================================================
[root@vdev-oem bin]# ./vmware-config-tools.pl
Initializing...
Stopping VMware Tools services in the virtual machine:
Guest operating system daemon: [ OK ]
Virtual Printing daemon: [ OK ]
Unmounting HGFS shares: [ OK ]
Guest filesystem driver: [ OK ]
The module vmmemctl has already been installed on this system by another
installer or package and will not be modified by this installer. Use the flag
--clobber-kernel-modules=vmmemctl to override.
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 of the running kernel at
"/lib/modules/2.6.39-200.24.1.el6uek.x86_64/build/include".
The path "/lib/modules/2.6.39-200.24.1.el6uek.x86_64/build/include" appears to
be a valid path to the kernel headers of the running kernel.
Would you like to change it? [no]
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-root/modules/vmhgfs-only'
make -C /lib/modules/2.6.39-200.24.1.el6uek.x86_64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/kernels/2.6.39-200.24.1.el6uek.x86_64'
CC [M] /tmp/vmware-root/modules/vmhgfs-only/backdoor.o
CC [M] /tmp/vmware-root/modules/vmhgfs-only/backdoorGcc64.o
CC [M] /tmp/vmware-root/modules/vmhgfs-only/bdhandler.o
CC [M] /tmp/vmware-root/modules/vmhgfs-only/cpName.o
CC [M] /tmp/vmware-root/modules/vmhgfs-only/cpNameLinux.o
CC [M] /tmp/vmware-root/modules/vmhgfs-only/cpNameLite.o
CC [M] /tmp/vmware-root/modules/vmhgfs-only/dentry.o
CC [M] /tmp/vmware-root/modules/vmhgfs-only/dir.o
CC [M] /tmp/vmware-root/modules/vmhgfs-only/file.o
/tmp/vmware-root/modules/vmhgfs-only/file.c:120: warning: initialization from incompatible pointer type
CC [M] /tmp/vmware-root/modules/vmhgfs-only/filesystem.o
/tmp/vmware-root/modules/vmhgfs-only/filesystem.c:48:28: error: linux/smp_lock.h: No such file or directory
/tmp/vmware-root/modules/vmhgfs-only/filesystem.c:72: error: âSPIN_LOCK_UNLOCKEDâ undeclared here (not in a function)
/tmp/vmware-root/modules/vmhgfs-only/filesystem.c:137: error: unknown field âget_sbâ specified in initializer
/tmp/vmware-root/modules/vmhgfs-only/filesystem.c:137: warning: initialization from incompatible pointer type
/tmp/vmware-root/modules/vmhgfs-only/filesystem.c: In function âHgfsGetSbâ:
/tmp/vmware-root/modules/vmhgfs-only/filesystem.c:493: error: implicit declaration of function âget_sb_nodevâ
make[2]: *** [tmp/vmware-root/modules/vmhgfs-only/filesystem.o] Error 1
make[1]: *** [_module_/tmp/vmware-root/modules/vmhgfs-only] Error 2
make[1]: Leaving directory `/usr/src/kernels/2.6.39-200.24.1.el6uek.x86_64'
make: *** [vmhgfs.ko] Error 2
make: Leaving directory `/tmp/vmware-root/modules/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 ]
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-root/modules/vmxnet-only'
make -C /lib/modules/2.6.39-200.24.1.el6uek.x86_64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/kernels/2.6.39-200.24.1.el6uek.x86_64'
CC [M] /tmp/vmware-root/modules/vmxnet-only/vmxnet.o
/tmp/vmware-root/modules/vmxnet-only/vmxnet.c: In function âvmxnet_probe_deviceâ:
/tmp/vmware-root/modules/vmxnet-only/vmxnet.c:1007: error: âvmxnet_change_mtuâ undeclared (first use in this function)
/tmp/vmware-root/modules/vmxnet-only/vmxnet.c:1007: error: (Each undeclared identifier is reported only once
/tmp/vmware-root/modules/vmxnet-only/vmxnet.c:1007: error: for each function it appears in.)
/tmp/vmware-root/modules/vmxnet-only/vmxnet.c: In function âvmxnet_load_multicastâ:
/tmp/vmware-root/modules/vmxnet-only/vmxnet.c:2915: error: âstruct net_deviceâ has no member named âmc_listâ
/tmp/vmware-root/modules/vmxnet-only/vmxnet.c:2925: error: âstruct net_deviceâ has no member named âmc_countâ
/tmp/vmware-root/modules/vmxnet-only/vmxnet.c:2926: error: dereferencing pointer to incomplete type
/tmp/vmware-root/modules/vmxnet-only/vmxnet.c:2927: error: dereferencing pointer to incomplete type
make[2]: *** [tmp/vmware-root/modules/vmxnet-only/vmxnet.o] Error 1
make[1]: *** [_module_/tmp/vmware-root/modules/vmxnet-only] Error 2
make[1]: Leaving directory `/usr/src/kernels/2.6.39-200.24.1.el6uek.x86_64'
make: *** [vmxnet.ko] Error 2
make: Leaving directory `/tmp/vmware-root/modules/vmxnet-only'
The fast network device driver (vmxnet module) is used only for our fast
networking interface. The rest of the software provided by VMware Tools is
designed to work independently of this feature.
If you wish to have the fast network driver enabled, 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 ]
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-root/modules/vmblock-only'
make -C /lib/modules/2.6.39-200.24.1.el6uek.x86_64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/kernels/2.6.39-200.24.1.el6uek.x86_64'
CC [M] /tmp/vmware-root/modules/vmblock-only/linux/block.o
CC [M] /tmp/vmware-root/modules/vmblock-only/linux/control.o
CC [M] /tmp/vmware-root/modules/vmblock-only/linux/dbllnklst.o
CC [M] /tmp/vmware-root/modules/vmblock-only/linux/dentry.o
/tmp/vmware-root/modules/vmblock-only/linux/dentry.c: In function âDentryOpRevalidateâ:
/tmp/vmware-root/modules/vmblock-only/linux/dentry.c:107: error: implicit declaration of function âpath_lookupâ
make[2]: *** [tmp/vmware-root/modules/vmblock-only/linux/dentry.o] Error 1
make[1]: *** [_module_/tmp/vmware-root/modules/vmblock-only] Error 2
make[1]: Leaving directory `/usr/src/kernels/2.6.39-200.24.1.el6uek.x86_64'
make: *** [vmblock.ko] Error 2
make: Leaving directory `/tmp/vmware-root/modules/vmblock-only'
The vmblock module enables dragging or copying files from within a host and
dropping or pasting them onto your guest (host to guest drag and drop and file
copy/paste). The rest of the software provided by VMware Tools is designed to
work independently of this feature (including guest to host drag and drop and
file copy/paste).
If you would like the host to guest drag and drop and file copy/paste features,
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 ]
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-root/modules/vmci-only'
make -C /lib/modules/2.6.39-200.24.1.el6uek.x86_64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/kernels/2.6.39-200.24.1.el6uek.x86_64'
CC [M] /tmp/vmware-root/modules/vmci-only/vmciDatagram.o
CC [M] /tmp/vmware-root/modules/vmci-only/vmciEvent.o
CC [M] /tmp/vmware-root/modules/vmci-only/vmciGuestDs.o
CC [M] /tmp/vmware-root/modules/vmci-only/vmciGuestKernelIf.o
CC [M] /tmp/vmware-root/modules/vmci-only/vmciKernelIf.o
CC [M] /tmp/vmware-root/modules/vmci-only/vmciProcess.o
CC [M] /tmp/vmware-root/modules/vmci-only/vmciQueuePair.o
CC [M] /tmp/vmware-root/modules/vmci-only/vmciUtil.o
CC [M] /tmp/vmware-root/modules/vmci-only/vmci_drv.o
/tmp/vmware-root/modules/vmci-only/vmci_drv.c:91: error: unknown field âioctlâ specified in initializer
/tmp/vmware-root/modules/vmci-only/vmci_drv.c:91: warning: initialization from incompatible pointer type
/tmp/vmware-root/modules/vmci-only/vmci_drv.c: In function âvmci_initâ:
/tmp/vmware-root/modules/vmci-only/vmci_drv.c:151: error: implicit declaration of function âinit_MUTEXâ
make[2]: *** [tmp/vmware-root/modules/vmci-only/vmci_drv.o] Error 1
make[1]: *** [_module_/tmp/vmware-root/modules/vmci-only] Error 2
make[1]: Leaving directory `/usr/src/kernels/2.6.39-200.24.1.el6uek.x86_64'
make: *** [vmci.ko] Error 2
make: Leaving directory `/tmp/vmware-root/modules/vmci-only'
The communication service is used in addition to the standard communication
between the guest and the host. The rest of the software provided by VMware
Tools is designed to work independently of this feature.
If you wish to have the VMCI 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 ]
Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-root/modules/vmci-only'
make -C /lib/modules/2.6.39-200.24.1.el6uek.x86_64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/kernels/2.6.39-200.24.1.el6uek.x86_64'
CC [M] /tmp/vmware-root/modules/vmci-only/vmciDatagram.o
CC [M] /tmp/vmware-root/modules/vmci-only/vmciEvent.o
CC [M] /tmp/vmware-root/modules/vmci-only/vmciGuestDs.o
CC [M] /tmp/vmware-root/modules/vmci-only/vmciGuestKernelIf.o
CC [M] /tmp/vmware-root/modules/vmci-only/vmciKernelIf.o
CC [M] /tmp/vmware-root/modules/vmci-only/vmciProcess.o
CC [M] /tmp/vmware-root/modules/vmci-only/vmciQueuePair.o
CC [M] /tmp/vmware-root/modules/vmci-only/vmciUtil.o
CC [M] /tmp/vmware-root/modules/vmci-only/vmci_drv.o
/tmp/vmware-root/modules/vmci-only/vmci_drv.c:91: error: unknown field âioctlâ specified in initializer
/tmp/vmware-root/modules/vmci-only/vmci_drv.c:91: warning: initialization from incompatible pointer type
/tmp/vmware-root/modules/vmci-only/vmci_drv.c: In function âvmci_initâ:
/tmp/vmware-root/modules/vmci-only/vmci_drv.c:151: error: implicit declaration of function âinit_MUTEXâ
make[2]: *** [tmp/vmware-root/modules/vmci-only/vmci_drv.o] Error 1
make[1]: *** [_module_/tmp/vmware-root/modules/vmci-only] Error 2
make[1]: Leaving directory `/usr/src/kernels/2.6.39-200.24.1.el6uek.x86_64'
make: *** [vmci.ko] Error 2
make: Leaving directory `/tmp/vmware-root/modules/vmci-only'
The VM communication interface socket family is used in conjunction with the VM
communication interface to provide a new communication path among guests and
host. The rest of this software provided by VMware Tools is designed to work
independently of this feature. If you wish to have the VSOCK 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 the Enter key to continue.]
The module vmxnet3 has already been installed on this system by another
installer or package and will not be modified by this installer. Use the flag
--clobber-kernel-modules=vmxnet3 to override.
The module pvscsi has already been installed on this system by another
installer or package and will not be modified by this installer. Use the flag
--clobber-kernel-modules=pvscsi to override.
Detected X.org version 7.9.6.
No drivers for X.org version: 7.9.6.
Skipping X configuration because X drivers are not included.
Creating a new initrd boot image for the kernel.
Starting VMware Tools services in the virtual machine:
Switching to guest configuration: [ OK ]
Guest operating system daemon: [ OK ]
Virtual Printing daemon: [ OK ]
The configuration of VMware Tools 8.3.2 build-257589 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 the following command:
"/usr/bin/vmware-toolbox" during an X server session.
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