VMware Communities
knobi
Contributor
Contributor

Cannot compile Workstation 9.0.2 modules on kernel 3.9.2

Hi,

just updated to kernel 3.9.2 (from 3.8.9) and fail to compile vmci and vmblock modules, getting the following messages:

###########################################################################

[root@lbwjxqm1 modules]# vmware-modconfig --console --install-all

Stopping VMware services:

   VMware Authentication Daemon                            [  OK  ]

   VM communication interface socket family                [  OK  ]

   Virtual machine communication interface                 [  OK  ]

   Virtual machine monitor                                 [  OK  ]

   Blocking file system                                    [  OK  ]

Using 2.6.x kernel build system.

make: Entering directory `/tmp/modconfig-XyB8iW/vmmon-only'

/usr/bin/make -C /lib/modules/3.9.2/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \

      MODULEBUILDDIR= modules

make[1]: Entering directory `/home/scratch/linux-kernel/linux-3.9.2'

  CC [M]  /tmp/modconfig-XyB8iW/vmmon-only/linux/driver.o

  CC [M]  /tmp/modconfig-XyB8iW/vmmon-only/linux/driverLog.o

  CC [M]  /tmp/modconfig-XyB8iW/vmmon-only/linux/hostif.o

  CC [M]  /tmp/modconfig-XyB8iW/vmmon-only/common/apic.o

  CC [M]  /tmp/modconfig-XyB8iW/vmmon-only/common/comport.o

  CC [M]  /tmp/modconfig-XyB8iW/vmmon-only/common/cpuid.o

  CC [M]  /tmp/modconfig-XyB8iW/vmmon-only/common/hashFunc.o

  CC [M]  /tmp/modconfig-XyB8iW/vmmon-only/common/memtrack.o

  CC [M]  /tmp/modconfig-XyB8iW/vmmon-only/common/phystrack.o

  CC [M]  /tmp/modconfig-XyB8iW/vmmon-only/common/task.o

  CC [M]  /tmp/modconfig-XyB8iW/vmmon-only/common/vmx86.o

  CC [M]  /tmp/modconfig-XyB8iW/vmmon-only/vmcore/moduleloop.o

  LD [M]  /tmp/modconfig-XyB8iW/vmmon-only/vmmon.o

  Building modules, stage 2.

  MODPOST 1 modules

  CC      /tmp/modconfig-XyB8iW/vmmon-only/vmmon.mod.o

  LD [M]  /tmp/modconfig-XyB8iW/vmmon-only/vmmon.ko

make[1]: Leaving directory `/home/scratch/linux-kernel/linux-3.9.2'

/usr/bin/make -C $PWD SRCROOT=$PWD/. \

      MODULEBUILDDIR= postbuild

make[1]: Entering directory `/tmp/modconfig-XyB8iW/vmmon-only'

make[1]: `postbuild' is up to date.

make[1]: Leaving directory `/tmp/modconfig-XyB8iW/vmmon-only'

cp -f vmmon.ko ./../vmmon.o

make: Leaving directory `/tmp/modconfig-XyB8iW/vmmon-only'

Using 2.6.x kernel build system.

make: Entering directory `/tmp/modconfig-XyB8iW/vmnet-only'

/usr/bin/make -C /lib/modules/3.9.2/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \

      MODULEBUILDDIR= modules

make[1]: Entering directory `/home/scratch/linux-kernel/linux-3.9.2'

  CC [M]  /tmp/modconfig-XyB8iW/vmnet-only/driver.o

  CC [M]  /tmp/modconfig-XyB8iW/vmnet-only/hub.o

  CC [M]  /tmp/modconfig-XyB8iW/vmnet-only/userif.o

  CC [M]  /tmp/modconfig-XyB8iW/vmnet-only/netif.o

  CC [M]  /tmp/modconfig-XyB8iW/vmnet-only/bridge.o

  CC [M]  /tmp/modconfig-XyB8iW/vmnet-only/filter.o

  CC [M]  /tmp/modconfig-XyB8iW/vmnet-only/procfs.o

  CC [M]  /tmp/modconfig-XyB8iW/vmnet-only/smac_compat.o

  CC [M]  /tmp/modconfig-XyB8iW/vmnet-only/smac.o

  CC [M]  /tmp/modconfig-XyB8iW/vmnet-only/vnetEvent.o

  CC [M]  /tmp/modconfig-XyB8iW/vmnet-only/vnetUserListener.o

  LD [M]  /tmp/modconfig-XyB8iW/vmnet-only/vmnet.o

  Building modules, stage 2.

  MODPOST 1 modules

  CC      /tmp/modconfig-XyB8iW/vmnet-only/vmnet.mod.o

  LD [M]  /tmp/modconfig-XyB8iW/vmnet-only/vmnet.ko

make[1]: Leaving directory `/home/scratch/linux-kernel/linux-3.9.2'

/usr/bin/make -C $PWD SRCROOT=$PWD/. \

      MODULEBUILDDIR= postbuild

make[1]: Entering directory `/tmp/modconfig-XyB8iW/vmnet-only'

make[1]: `postbuild' is up to date.

make[1]: Leaving directory `/tmp/modconfig-XyB8iW/vmnet-only'

cp -f vmnet.ko ./../vmnet.o

make: Leaving directory `/tmp/modconfig-XyB8iW/vmnet-only'

Using 2.6.x kernel build system.

make: Entering directory `/tmp/modconfig-XyB8iW/vmblock-only'

/usr/bin/make -C /lib/modules/3.9.2/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \

      MODULEBUILDDIR= modules

make[1]: Entering directory `/home/scratch/linux-kernel/linux-3.9.2'

  CC [M]  /tmp/modconfig-XyB8iW/vmblock-only/linux/block.o

  CC [M]  /tmp/modconfig-XyB8iW/vmblock-only/linux/control.o

  CC [M]  /tmp/modconfig-XyB8iW/vmblock-only/linux/dentry.o

  CC [M]  /tmp/modconfig-XyB8iW/vmblock-only/linux/file.o

  CC [M]  /tmp/modconfig-XyB8iW/vmblock-only/linux/filesystem.o

  CC [M]  /tmp/modconfig-XyB8iW/vmblock-only/linux/inode.o

  CC [M]  /tmp/modconfig-XyB8iW/vmblock-only/linux/module.o

  CC [M]  /tmp/modconfig-XyB8iW/vmblock-only/linux/stubs.o

  CC [M]  /tmp/modconfig-XyB8iW/vmblock-only/linux/super.o

/tmp/modconfig-XyB8iW/vmblock-only/linux/inode.c:49: warning: initialization from incompatible pointer type

/tmp/modconfig-XyB8iW/vmblock-only/linux/inode.c: In function ‘InodeOpLookup’:

/tmp/modconfig-XyB8iW/vmblock-only/linux/inode.c:138: error: incompatible types when assigning to type ‘kgid_t’ from type ‘int’

make[2]: *** [/tmp/modconfig-XyB8iW/vmblock-only/linux/inode.o] Error 1

make[2]: *** Waiting for unfinished jobs....

/tmp/modconfig-XyB8iW/vmblock-only/linux/dentry.c:38: warning: initialization from incompatible pointer type

/tmp/modconfig-XyB8iW/vmblock-only/linux/dentry.c: In function ‘DentryOpRevalidate’:

/tmp/modconfig-XyB8iW/vmblock-only/linux/dentry.c:104: warning: passing argument 2 of ‘actualDentry->d_op->d_revalidate’ makes integer from pointer without a cast

/tmp/modconfig-XyB8iW/vmblock-only/linux/dentry.c:104: note: expected ‘unsigned int’ but argument is of type ‘struct nameidata *’

/tmp/modconfig-XyB8iW/vmblock-only/linux/control.c: In function ‘ExecuteBlockOp’:

/tmp/modconfig-XyB8iW/vmblock-only/linux/control.c:285: warning: assignment from incompatible pointer type

/tmp/modconfig-XyB8iW/vmblock-only/linux/control.c:296: warning: passing argument 1 of ‘putname’ from incompatible pointer type

include/linux/fs.h:2040: note: expected ‘struct filename *’ but argument is of type ‘char *’

make[1]: *** [_module_/tmp/modconfig-XyB8iW/vmblock-only] Error 2

make[1]: Leaving directory `/home/scratch/linux-kernel/linux-3.9.2'

make: *** [vmblock.ko] Error 2

make: Leaving directory `/tmp/modconfig-XyB8iW/vmblock-only'

Using 2.6.x kernel build system.

make: Entering directory `/tmp/modconfig-XyB8iW/vmci-only'

/usr/bin/make -C /lib/modules/3.9.2/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \

      MODULEBUILDDIR= modules

make[1]: Entering directory `/home/scratch/linux-kernel/linux-3.9.2'

  CC [M]  /tmp/modconfig-XyB8iW/vmci-only/linux/driver.o

  CC [M]  /tmp/modconfig-XyB8iW/vmci-only/linux/vmciKernelIf.o

  CC [M]  /tmp/modconfig-XyB8iW/vmci-only/common/vmciContext.o

  CC [M]  /tmp/modconfig-XyB8iW/vmci-only/common/vmciDatagram.o

  CC [M]  /tmp/modconfig-XyB8iW/vmci-only/common/vmciDoorbell.o

  CC [M]  /tmp/modconfig-XyB8iW/vmci-only/common/vmciDriver.o

  CC [M]  /tmp/modconfig-XyB8iW/vmci-only/common/vmciEvent.o

  CC [M]  /tmp/modconfig-XyB8iW/vmci-only/common/vmciHashtable.o

  CC [M]  /tmp/modconfig-XyB8iW/vmci-only/common/vmciQPair.o

/tmp/modconfig-XyB8iW/vmci-only/linux/driver.c: In function ‘LinuxDriver_Ioctl’:

/tmp/modconfig-XyB8iW/vmci-only/linux/driver.c:743: error: incompatible types when assigning to type ‘VMCIHostUser’ from type ‘kuid_t’

make[2]: *** [/tmp/modconfig-XyB8iW/vmci-only/linux/driver.o] Error 1

make[2]: *** Waiting for unfinished jobs....

make[1]: *** [_module_/tmp/modconfig-XyB8iW/vmci-only] Error 2

make[1]: Leaving directory `/home/scratch/linux-kernel/linux-3.9.2'

make: *** [vmci.ko] Error 2

make: Leaving directory `/tmp/modconfig-XyB8iW/vmci-only'

Unable to install all modules.  See log for details.

################################################################################

I am running on CentOS-6.4 with "gcc version 4.4.7 20120313 (Red Hat 4.4.7-3) (GCC) ". Any ideas?

Cheers

Martin

0 Kudos
3 Replies
damoiselle_111
Enthusiast
Enthusiast

Simply remove the relative code. vmblcok and vmci is unused in kernel v3.9.2.

vmblock is needless because 9.0.2 use w/ vmblock-fuse instead in-kernel vmblock.ko.

vmci is upstreamed. you can enable kernel config there, and disable this one.

knobi
Contributor
Contributor

Hi,

OK, I see that VMCI can be build into the kernel. But what about vmblock. I do not see that in 3.9.2? And "how to remove the relativer code"?

Cheers

Martin

0 Kudos
knobi
Contributor
Contributor

Hi,

OK, I was finally able to make it work on kernel-3.9.3. The following was needed for me:

In /etc/vmware/config:

VMBLOCK_CONFED = "no"

VMCI_CONFED = "yes" <== still needed to create the /dev/vmci device file. Otherwise I would have had to change /etc/init.d/vmware

VSOCK_CONFED = "no"

In /lib/modules:

cd /lib/modules/3.9.3/misc

ln -nsf ../kernel/drivers/misc/vmw_vmci/vmw_vmci.ko vmci.ko

Not sure whether these are the right things to do in this scenario though. I am open to suggestions.

Cheers

Martin

0 Kudos