Updating Ubuntu 14.04 (alpha / development) with latest 3.13.0-x kernels will require recompiling the modules for VMware Player 6.0.1 which will fail as per below. The solution is based on Garrett Skjelstad's "VMware modules & kernel 3.13" blog post.
To fix this we will need to apply this patch to filter.c in VMware Player module sources. Start with saving the diff below (download):
Or download directly to the system:
Next will apply the patch to filter.c in vmnet.tar (extract, patch, update archive):
And now you're ready to restart VMplayer, which will ask you to re-compile VMware Player modules, successfully this time.
1 2 3 4 5 6 7 8 9 10 11 12 | $ sudo lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu Trusty Tahr (development branch) Release: 14.04 Codename: trusty $ uname -a Linux VOSTRO 3.13.0-4-generic #19-Ubuntu SMP Thu Jan 16 18:10:11 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux $ vmplayer --version VMware Player 6.0.1 build-1379776 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | [...] CC [M] /tmp/modconfig-7ykUGm/vmnet-only/filter .o /tmp/modconfig-7ykUGm/vmnet-only/filter .c:206:1: error: conflicting types for ‘VNetFilterHookFn’ VNetFilterHookFn(unsigned int hooknum, // IN: ^ /tmp/modconfig-7ykUGm/vmnet-only/filter .c:64:18: note: previous declaration of ‘VNetFilterHookFn’ was here static nf_hookfn VNetFilterHookFn; ^ /tmp/modconfig-7ykUGm/vmnet-only/filter .c:64:18: warning: ‘VNetFilterHookFn’ used but never defined [enabled by default] /tmp/modconfig-7ykUGm/vmnet-only/filter .c:206:1: warning: ‘VNetFilterHookFn’ defined but not used [-Wunused- function ] VNetFilterHookFn(unsigned int hooknum, // IN: ^ make [2]: *** [ /tmp/modconfig-7ykUGm/vmnet-only/filter .o] Error 1 make [2]: *** Waiting for unfinished jobs.... make [1]: *** [_module_ /tmp/modconfig-7ykUGm/vmnet-only ] Error 2 make [1]: Leaving directory ` /usr/src/linux-headers-3 .13.0-4-generic' make : *** [vmnet.ko] Error 2 make : Leaving directory ` /tmp/modconfig-7ykUGm/vmnet-only ' Failed to build vmnet. Failed to execute the build command . Starting VMware services: Virtual machine monitor done Virtual machine communication interface done VM communication interface socket family done Blocking file system done Virtual ethernet failed VMware Authentication Daemon done |
To fix this we will need to apply this patch to filter.c in VMware Player module sources. Start with saving the diff below (download):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 205a206 > #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0) 206a208,210 > #else > VNetFilterHookFn(const struct nf_hook_ops *ops, // IN: > #endif 255c259,263 < transmit = (hooknum == VMW_NF_INET_POST_ROUTING); --- > #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0) > transmit = (hooknum == VMW_NF_INET_POST_ROUTING); > #else > transmit = (ops->hooknum == VMW_NF_INET_POST_ROUTING); > #endif |
Or download directly to the system:
1 2 | $ wget https: //sites .google.com /site/dandar3blogspotcom/vmware-player-601-on-ubuntu-1404-alpha-filter .c. diff \ -O /tmp/filter .c. diff --no-check-certificate |
Next will apply the patch to filter.c in vmnet.tar (extract, patch, update archive):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $ sudo -E -s # cd /usr/lib/vmware/modules/source/ # cp vmnet.tar vmnet.tar.original # tar xvf vmnet.tar vmnet-only/filter.c vmnet-only /filter .c # patch vmnet-only/filter.c < /tmp/filter.c.diff patching file vmnet-only /filter .c # tar -uvf vmnet.tar vmnet-only/filter.c vmnet-only /filter .c # rm -rf vmnet-only/ |