Vmware no longer compiles against 4.4.0-143-generic, 4.4.0-142-generic is the latest working kernel with VMware Workstation 12.5.9
3 Answers
Here I found better way how to "update" vmware to work with my linux.
It seems that one parameter was removed from get_user_pages
, so just remove 0
from parameters and everything will be ok.
Do following under root user:
# cd /usr/lib/vmware/modules/source
# cp vmnet.tar vmnet.tar.bak
# cp vmmon.tar vmmon.tar.bak
# tar xf vmnet.tar
# tar xf vmmon.tar
# vi vmnet-only/userif.c
find:
retval = get_user_pages(current, current->mm, addr,
1, 1, 0, &page, NULL);
change to:
retval = get_user_pages(current, current->mm, addr,
1, 1, &page, NULL);
# vi vmmon-only/linux/hostif.c
find:
retval = get_user_pages(current, current->mm, (unsigned long)uvAddr,
numPages, 0, 0, ppages, NULL);
change to:
retval = get_user_pages(current, current->mm, (unsigned long)uvAddr,
numPages, 0, ppages, NULL);
# rm vmnet.tar ; tar cf vmnet.tar vmnet-only
# rm vmmon.tar ; tar cf vmmon.tar vmmon-only
# vmware-modconfig --console --install-all
Enjoy!

- 141
Time to upgrade your vmware. The kernel change which finally hit the Ubuntu 4.4.0-143 kernel should have a working driver in the latest Vmware products. Nvidia drivers also have this problem, which new drivers fix. Other old drivers (anything using the get_user_pages() fucntion) need a rewrite, but the big vendors like Vmware have had since Jan. to get a working driver for Ubuntu ... 4.4.
For a more complete answer for people without the option of getting a new driver to fix the issue see Why do tuner card drivers fail to build after kernel update to 4.4.0-143-generic?
Freezing the kernel you use at a previous version forgoes subsequent security patches. N0rbert is more optimistic than I am that another 4.4 kernel release will be available to fix this problem. You might also solve your problem by upgrading releases to a later kernel with (still) working Vmware drivers. 16.04 still has years of support, with HWE kernel updates available, but 14.04 running the Xenial HWE only has a month of support left, so people in that situation might better concenrate their efforts on selecting an OS release upgrade.
-
1
-
@N0rbert Don't shoot the messenger! I totally agree with you about changing APIs on Long Term Support kernels, but that's what happened in Jan. with 4.4-168 and that change finally worked it's way down to Ubuntu's 4.4.0-143. – ubfan1 Mar 18 '19 at 21:38
-
For me it seems that kernel downgrade would be better solution (like in similar topic about virtualbox). Too many faulty kernel upgrades - the 139, 140, 141 break USB safely remove, 142 breaks TTY login, this 143 breaks at least Nvidia and VirtualBox. It becomes very annoying ;( . I'll stay on 138 until new kernels will become comprehensively tested. – N0rbert Mar 18 '19 at 21:44
Vmware no longer works on ubuntu 16.04 LTS. When compile modules by hand:
vmware-modconfig --console --install-all
produces following error:
/tmp/modconfig-AVZerP/vmnet-only/userif.c:124:13: error: too many arguments to function ‘get_user_pages’
Temporary solution is hold shift key during system startup and select 4.4.0-142 kernel version. It will help.
But after time 4.4.0-142 version disappears from list and then use following to get it back:
sudo apt-get install linux-image-4.4.0-142-generic linux-image-extra-4.4.0-142-generic linux-headers-4.4.0-142 linux-headers-4.4.0-142-generic

- 141
-
very helpful message from Nvidia on kernel update 4.4.0-143 https://devtalk.nvidia.com/default/topic/1048594/problem-driver-ubuntu-kernel-4-4-0-143/ – smile-on Apr 10 '19 at 02:41
-
as of nvidia driver options: kernel build was fixed in 418.30 [beta release] https://devtalk.nvidia.com/default/topic/1046879/announcements-and-news/linux-solaris-and-freebsd-driver-418-30-beta-release-long-lived-branch-release-/ – smile-on Apr 10 '19 at 03:09
#ifdef
and yes it is not triggered properly ) – ジョージ Apr 17 '19 at 07:00