Kernel – 4.6 Final – OK with Patched VMware and NVIDIA..
Installed Kernel 4.6 Final on the test system, and the patched versions of VMware 12.1.0 (vmnet and vmmon patched) and NVIDIA driver 364.19 all compile OK.. Details of changes since -rc7 are here: http://lkml.iu.edu/hypermail/linux/kernel/1605.1/05030.html , and VMware / NVIDIA patch details are in a previous article – http://rglinuxtech.com/?p=1709
$ uname -a Linux rgtest 4.6.0 #1 SMP Mon May 16 10:55:27 PDT 2016 x86_64 x86_64 x86_64 GNU/Linux
Robert Gadsdon. May 16, 2016.
when i compile the VMware Modules, i don’t even get as far as the vmmon and vmnet modules, it errors out at vmblock
/var/tmp/portage/app-emulation/vmware-modules-308.1.1/work/vmblock-only/linux/inode.c:69:16: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
.get_link = InodeOpFollowlink,
^
/var/tmp/portage/app-emulation/vmware-modules-308.1.1/work/vmblock-only/linux/inode.c:69:16: note: (near initialization for ‘LinkInodeOps.get_link’)
cc1: some warnings being treated as errors
/usr/src/linux-4.6.0-gentoo/scripts/Makefile.build:291: recipe for target ‘/var/tmp/portage/app-emulation/vmware-modules-308.1.1/work/vmblock-only/linux/inode.o’ failed
make[3]: *** [/var/tmp/portage/app-emulation/vmware-modules-308.1.1/work/vmblock-only/linux/inode.o] Error 1
make[3]: *** Waiting for unfinished jobs….
/usr/src/linux-4.6.0-gentoo/Makefile:1428: recipe for target ‘_module_/var/tmp/portage/app-emulation/vmware-modules-308.1.1/work/vmblock-only’ failed
make[2]: *** [_module_/var/tmp/portage/app-emulation/vmware-modules-308.1.1/work/vmblock-only] Error 2
make[2]: Leaving directory ‘/usr/src/linux-4.6.0-gentoo’
Makefile:146: recipe for target ‘sub-make’ failed
make[1]: *** [sub-make] Error 2
make[1]: Leaving directory ‘/usr/src/linux-4.6.0-gentoo’
Makefile:120: recipe for target ‘vmblock.ko’ failed
make: *** [vmblock.ko] Error 2
this patch solves that
— a/vmblock-only/linux/inode.c 2016-05-16 23:42:41.379866914 -0400
+++ b/vmblock-only/linux/inode.c 2016-05-16 23:41:46.952863118 -0400
@@ -65,10 +65,10 @@
struct inode_operations LinkInodeOps = {
#endif
.readlink = InodeOpReadlink,
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 99)
– .get_link = InodeOpFollowlink,
-#else
– .follow_link = InodeOpFollowlink,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 22)
+ .follow_link = InodeOpFollowlink
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(4, 5, 0)
+ .follow_link = InodeOpFollowlink
#endif
};
The vmblock kernel module should no longer be necessary, as VMware 12 uses vmware-vmblock-fuse, if fuse is available.. ( /usr/lib/vmware/lib/libvmware-vmblock-fuse.so )
RG.
for whatever reason, gentoo compiles the vmblock module anyway….