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!
- 151
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.
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
- 151