5

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 3

4

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!

3
  • 1
    Mate, you're a life saver! Many thanks. PS. For those following the instructions -- yes there would be an #ifdef and yes it is not triggered properly ) Apr 17, 2019 at 7:00
  • This worked for me. @srini durand (OP) if it works for you, too, please consider to mark it as answer to your question!
    – variona
    May 3, 2019 at 11:20
  • Thanks. This should definitely be the answer to the question.Also works for 4.4.0-148 (Ubuntu 14.04 -- out of support now) and vmware player 7.1
    – sergtech
    Nov 18, 2019 at 21:17
1

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.

3
  • 1
    Absolutely wrong ideas. Kernel should not break userspace in any way!
    – N0rbert
    Mar 18, 2019 at 21:19
  • @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, 2019 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, 2019 at 21:44
0

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
2

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .