VMware – Possible Kernel 4.7 Fix for 12.1.1..
Thanks to g, from their comment on my previous article ( http://rglinuxtech.com/?p=1746 ), there may be a more correct vmnet fix than simply ‘commenting out the code’.. Replace dev->trans_start = jiffies with netif_trans_update(dev) in netif.c
I have made this change, and VMware 12.1.1 is – so far – loading and running OK, as usual..
Robert Gadsdon. May 30, 2016.
Thanks, works nicely for me.
Just updated and found my vmware broke, what a joke how they leave us stranded. I’m about to switch to virutal box if vmware can’t get their act together. I’ve made the changes you suggested but it’s not working..any ideas would be welcome.
Linux localhost 4.7.0-1-ARCH #1 SMP PREEMPT Mon Aug 8 22:05:58 CEST 2016 x86_64 GNU/Linux
VNetSend(&netIf->port.jack, skb);
netIf->stats.tx_packets++;
netif_trans_update(dev);
return 0;
}
[root@localhost vmnet-only]# vmware-modconfig –console –install-all
Stopping VMware services:
VMware Authentication Daemon done
VM communication interface socket family done
Virtual machine communication interface done
Virtual machine monitor done
Blocking file system done
make: Entering directory ‘/tmp/modconfig-fVhjg6/vmmon-only’
Using kernel build system.
/sbin/make -C /lib/modules/4.7.0-1-ARCH/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= modules
make[1]: Entering directory ‘/usr/lib/modules/4.7.0-1-ARCH/build’
CC [M] /tmp/modconfig-fVhjg6/vmmon-only/linux/driverLog.o
CC [M] /tmp/modconfig-fVhjg6/vmmon-only/linux/driver.o
CC [M] /tmp/modconfig-fVhjg6/vmmon-only/linux/hostif.o
CC [M] /tmp/modconfig-fVhjg6/vmmon-only/common/memtrack.o
CC [M] /tmp/modconfig-fVhjg6/vmmon-only/common/apic.o
CC [M] /tmp/modconfig-fVhjg6/vmmon-only/common/vmx86.o
CC [M] /tmp/modconfig-fVhjg6/vmmon-only/common/cpuid.o
CC [M] /tmp/modconfig-fVhjg6/vmmon-only/common/task.o
CC [M] /tmp/modconfig-fVhjg6/vmmon-only/common/hashFunc.o
CC [M] /tmp/modconfig-fVhjg6/vmmon-only/common/comport.o
CC [M] /tmp/modconfig-fVhjg6/vmmon-only/common/phystrack.o
CC [M] /tmp/modconfig-fVhjg6/vmmon-only/vmcore/moduleloop.o
/tmp/modconfig-fVhjg6/vmmon-only/common/phystrack.o: warning: objtool: PhysTrack_Free() falls through to next function PhysTrack_Add()
/tmp/modconfig-fVhjg6/vmmon-only/common/phystrack.o: warning: objtool: PhysTrack_Add() falls through to next function PhysTrack_Remove()
/tmp/modconfig-fVhjg6/vmmon-only/common/phystrack.o: warning: objtool: PhysTrack_Remove() falls through to next function PhysTrack_Test()
/tmp/modconfig-fVhjg6/vmmon-only/common/task.o: warning: objtool: .text: unexpected end of section
/tmp/modconfig-fVhjg6/vmmon-only/linux/driver.c:1283:1: warning: always_inline function might not be inlinable -Wattributes]
LinuxDriverSyncReadTSCs(uint64 *delta) // OUT: TSC max – TSC min
^~~~~~~~~~~~~~~~~~~~~~~
LD [M] /tmp/modconfig-fVhjg6/vmmon-only/vmmon.o
Building modules, stage 2.
MODPOST 1 modules
CC /tmp/modconfig-fVhjg6/vmmon-only/vmmon.mod.o
LD [M] /tmp/modconfig-fVhjg6/vmmon-only/vmmon.ko
make[1]: Leaving directory ‘/usr/lib/modules/4.7.0-1-ARCH/build’
/sbin/make -C $PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= postbuild
make[1]: Entering directory ‘/tmp/modconfig-fVhjg6/vmmon-only’
make[1]: ‘postbuild’ is up to date.
make[1]: Leaving directory ‘/tmp/modconfig-fVhjg6/vmmon-only’
cp -f vmmon.ko ./../vmmon.o
make: Leaving directory ‘/tmp/modconfig-fVhjg6/vmmon-only’
make: Entering directory ‘/tmp/modconfig-fVhjg6/vmnet-only’
Using kernel build system.
/sbin/make -C /lib/modules/4.7.0-1-ARCH/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= modules
make[1]: Entering directory ‘/usr/lib/modules/4.7.0-1-ARCH/build’
CC [M] /tmp/modconfig-fVhjg6/vmnet-only/driver.o
CC [M] /tmp/modconfig-fVhjg6/vmnet-only/hub.o
CC [M] /tmp/modconfig-fVhjg6/vmnet-only/userif.o
CC [M] /tmp/modconfig-fVhjg6/vmnet-only/netif.o
CC [M] /tmp/modconfig-fVhjg6/vmnet-only/bridge.o
CC [M] /tmp/modconfig-fVhjg6/vmnet-only/procfs.o
CC [M] /tmp/modconfig-fVhjg6/vmnet-only/smac_compat.o
CC [M] /tmp/modconfig-fVhjg6/vmnet-only/smac.o
CC [M] /tmp/modconfig-fVhjg6/vmnet-only/vnetEvent.o
In file included from include/linux/pci.h:35:0,
from /tmp/modconfig-fVhjg6/vmnet-only/compat_netdevice.h:27,
from /tmp/modconfig-fVhjg6/vmnet-only/netif.c:43:
include/linux/pci_ids.h:2253:0: warning: “PCI_VENDOR_ID_VMWARE” redefined
#define PCI_VENDOR_ID_VMWARE 0x15ad
In file included from /tmp/modconfig-fVhjg6/vmnet-only/net.h:38:0,
from /tmp/modconfig-fVhjg6/vmnet-only/vnetInt.h:26,
from /tmp/modconfig-fVhjg6/vmnet-only/netif.c:42:
/tmp/modconfig-fVhjg6/vmnet-only/vm_device_version.h:56:0: note: this is the location of the previous definition
#define PCI_VENDOR_ID_VMWARE 0x15AD
CC [M] /tmp/modconfig-fVhjg6/vmnet-only/vnetUserListener.o
/tmp/modconfig-fVhjg6/vmnet-only/netif.c: In function ‘VNetNetifStartXmit’:
/tmp/modconfig-fVhjg6/vmnet-only/netif.c:468:7: error: ‘struct net_device’ has no member named ‘trans_start’; did you mean ‘mem_start’?
dev->trans_start = jiffies;
^~
make[2]: *** [scripts/Makefile.build:290: /tmp/modconfig-fVhjg6/vmnet-only/netif.o] Error 1
make[2]: *** Waiting for unfinished jobs….
In file included from /tmp/modconfig-fVhjg6/vmnet-only/net.h:38:0,
from /tmp/modconfig-fVhjg6/vmnet-only/vnetInt.h:26,
from /tmp/modconfig-fVhjg6/vmnet-only/bridge.c:52:
/tmp/modconfig-fVhjg6/vmnet-only/vm_device_version.h:56:0: warning: “PCI_VENDOR_ID_VMWARE” redefined
#define PCI_VENDOR_ID_VMWARE 0x15AD
In file included from include/linux/pci.h:35:0,
from /tmp/modconfig-fVhjg6/vmnet-only/compat_netdevice.h:27,
from /tmp/modconfig-fVhjg6/vmnet-only/bridge.c:51:
include/linux/pci_ids.h:2253:0: note: this is the location of the previous definition
#define PCI_VENDOR_ID_VMWARE 0x15ad
make[1]: *** [Makefile:1457: _module_/tmp/modconfig-fVhjg6/vmnet-only] Error 2
make[1]: Leaving directory ‘/usr/lib/modules/4.7.0-1-ARCH/build’
make: *** [Makefile:120: vmnet.ko] Error 2
make: Leaving directory ‘/tmp/modconfig-fVhjg6/vmnet-only’
Unable to install all modules. See log for details.
[root@localhost vmnet-only]#
Use the following patch on your patched 4.6 kernels, this is from the arch wiki.
# Only for kernel 4.7 or later.
sed -i -e ‘s/dev->trans_start = jiffies/netif_trans_update\(dev\)/g’ vmnet-only/netif.c
Hi! After many blog entries and different posts… is there a single “source of truth” for all changes/patches that are needed to run VMWare Player with kernel 4.7? I’m sort of lost now…
Unfortunately, there seem to be even more articles/postings with – sometimes – conflicting info..
The Archlinux VMware wiki (https://wiki.archlinux.org/index.php/VMware) is a good source of reliable info..
RG.
Have a look at https://github.com/rasa/vmware-tools-patches
For those who were brought here by Google like me, the patch for vmware 12.5.2 would be the same, except
Replace (d)->trans_start = jiffies;
with netif_trans_update(d);
in vmnet-only/compat_netdevice.h