11

Hi after upgrading to Ubuntu 17.10, vmware is now not starting.

I get the message:

/usr/lib/vmware/bin/vmware-modconfig: Relink `/lib/x86_64-linux-gnu/libbsd.so.0' with `/lib/x86_64-linux-gnu/librt.so.1' for IFUNC symbol `clock_gettime'

I am aware that there are patches available and I am attempting to apply these and recompile. I have run from the solution at https://communities.vmware.com/thread/571370:

cd ~  
#Copy the vmmon source tar ball to your temporary location
cp /usr/lib/vmware/modules/source/vmmon.tar .   
#Extract the tar ball
tar xf vmmon.tar  

#Download the modified file that mkubecek posted and overwrite the one from the tar ball for VMware Workstation 12.5:
wget -O ./vmmon-only/linux/hostif.c https://raw.githubusercontent.com/mkubecek/vmware-host-modules/b50848c985f1a6c0a341187346d77f0119d0a835/vmmon-only/linux/hostif.c   

#Wrap up the newly modified files into a tar ball replacing the original one
sudo tar cf /usr/lib/vmware/modules/source/vmmon.tar vmmon-only  

#Rebuild the VMware kernel modules
sudo vmware-modconfig --console --install-all  
Failed to get gcc information. 
gcc --version
gcc (Ubuntu 7.2.0-8ubuntu3) 7.2.0 ...

Unforunately, vmware-modconfig is failing because of a dependency it seems on a particular gcc version. Am I on the right track? Any help with this issue would be much appreciated.

EDIT Thank you Steve, the below has gotten vmware going again. I've included minor correction. Tested and confirmed I could run a virtual machine.

sudo su
# do all below as root
cd /usr/lib/vmware/modules/source
tar xvf vmmon.tar 
tar xvf vmnet.tar
wget -O ./vmmon-only/linux/hostif.c https://raw.githubusercontent.com/mkubecek/vmware-host-modules/b50848c985f1a6c0a341187346d77f0119d0a835/vmmon-only/linux/hostif.c
vim vmnet-only/bridge.c
cd vmmon-only/
make
cd ../vmnet-only/
make
cd ..
mkdir /lib/modules/4.13.0-16-generic/misc
cp *.o /lib/modules/4.13.0-16-generic/misc
insmod /lib/modules/4.13.0-16-generic/misc/vmmon.o
insmod /lib/modules/4.13.0-16-generic/misc/vmnet.o
rm /usr/lib/vmware/lib/libz.so.1/libz.so.1
ln -s /lib/x86_64-linux-gnu/libz.so.1 /usr/lib/vmware/lib/libz.so.1/libz.so.1
vmware-networks --start
exit

# run vmware as normal user
/usr/lib/vmware/bin/vmware
  • 2
    In general, 3rd party virtualization is going to lag a bit with new kernels and new releases. This seems to affect vmware more than virtualbox. As vmware is closed source you will have to ask them. As a potential alternate - this is why I try as much as possible to use KVM or LXC (although I still feel LXC is not ready for production servers). KVM + spice is very fast (FWIW). With vmware my guess is there will be a work around anywhere from 1-3 days or 3-4 weeks depending on the complexity of the problem. – Panther Oct 20 '17 at 04:48
  • The patch you are trying to apply is for resolving a bug with memory handling, not for the problem related to the error message you mentioned. AFAIK there is no solution for that problem yet. There is a bug report on launchpad: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1715552 – user749720 Oct 20 '17 at 14:50
  • did you able to resolve the issue "Failed to get gcc information. " ? – Oğuzhan Topçu Nov 10 '17 at 14:30
  • Unforunately not, I currently run a script that sudo executes insmod and vmware-networks commands and then vmware binary as normal user. – user1330734 Nov 11 '17 at 02:01
  • I have Lubuntu 18.04 - the Method from Stephen Wassell didn't work. The solution from tokam - upgrade to VMWare 14 didn't work too - because of the policy from VMWare only to support the newest hardware. The method from John did work - but only if I start the vmplayer as su. Otherwise I will get dependable a message: Row 106: 29487 memory error (memory dump written) "$BINDIR"/vmware-modconfig --appname="VMWaer Player! --ivon="vmware-player" – Tobias Trappe Apr 06 '19 at 19:33

4 Answers4

12

I've managed to get VMWare Workstation 12.5.7 working on Kubuntu 17.10.

In /usr/lib/vmware/modules/source:

  1. Extract vmmon.tar and vmnet.tar

    sudo tar -xf vmmon.tar
    sudo tar -xf vmnet.tar
    

    This will create vmmon-only and vmnet-only directories.

  2. Fetch the patched hostif.c

    sudo wget -O vmmon-only/linux/hostif.c https://raw.githubusercontent.com/mkubecek/vmware-host-modules/b50848c985f1a6c0a341187346d77f0119d0a835/vmmon-only/linux/hostif.c
    

    (note: https://communities.vmware.com/thread/571370 - also contains a similar fix for VMWare Workstation 14)

  3. Edit vmnet-only/bridge.c:

    639c639
    <        atomic_inc(&clone->users);
    ---
    >        atomic_inc((atomic_t*)&clone->users);
    
  4. Run

    make -C vmmon-only
    make -C vmnet-only
    cp -t /lib/modules/4.13.0-16-generic/misc *.ko
    modprobe -r vmmon
    insmod /lib/modules/4.13.0-16-generic/misc/vmmon.ko
    rm /usr/lib/vmware/lib/libz.so.1/libz.so.1
    ln -s /lib/x86_64-linux-gnu/libz.so.1 /usr/lib/vmware/lib/libz.so.1/libz.so.1  # see https://communities.vmware.com/thread/572259
    vmware-networks --start  # see https://forum.chakralinux.org/viewtopic.php?id=8579
    
  5. As user:

    /usr/lib/vmware/bin/vmware
    

    (to prevent it running vmware-modconfig)

muru
  • 197,895
  • 55
  • 485
  • 740
  • Awesome, Great work Stephen, your answer was extremely easy to follow. I've repeated the steps explicitly, as well as added minor correction for step 8 in my question edit above. Cheers! – user1330734 Oct 24 '17 at 14:00
  • Glad it worked for you! I fixed my step 8 too, thanks for the correction. Hope this all persists over reboot... – Stephen Wassell Oct 24 '17 at 14:48
  • 1
    Thanks again Stephen, I'm all good provided I start with /usr/lib/vmware/bin/vmware, otherwise vmware reports not being able to find GCC. – user1330734 Oct 25 '17 at 23:22
  • Thanks much for posting! This got me running again. Is there any place we can go to see where VMWare is at with providing a fix? – Eric Nov 01 '17 at 20:31
  • 4
    Workstation 14.1.0 is now released which fixes this problem.

    https://my.vmware.com/group/vmware/details?productId=686&downloadGroup=WKST-1410-LX

    – Stephen Wassell Dec 22 '17 at 13:29
  • 14.1.0 but no 12.5.x branch? – shadowbq Jan 19 '18 at 20:44
  • The vmmon-only folder does not exist for me... and so also not the files that should be in there. – tokam Jan 30 '18 at 15:10
  • some notes for other users: change 4.13.0-16 to your kernel or use $(uname -r). The vmmon.o and vmnet.o need to be renamed again to *.ko. I did not get the network to start. but vmware-workstation starts. – ukos Mar 08 '18 at 18:21
  • This solution only works for me if... I finish the procedure (as root) by doing depmod -a /etc/init.d/vmware restart then I can restart vmplayer – Pascal Jul 11 '18 at 09:11
9

I have tried approx all other solutions but nothing worked. But these steps worked for me on Ubuntu 18.04, VMware 12.5.9

git clone https://github.com/mkubecek/vmware-host-modules.git
cd vmware-host-modules
git checkout workstation-12.5.9 (change it to your version. it's important)
make && sudo make install
cd /usr/lib/vmware/lib/libz.so.1
sudo mv libz.so.1 libz.so.1.old
sudo ln -s /lib/x86_64-linux-gnu/libz.so.1 .
sudo depmod -a
sudo /etc/init.d/vmware restart

Reference:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1715552

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1715552/comments/29

john
  • 221
2

The bugfix described by: Stephen leads for many to an other bug: "Failed to get gcc information."

The simplest solution is to download vmware player workstation 14.1.

Installing it instead of the 12.5 version solves the issues described above.

To do so just run

chmod +x VMware-Player-14.1.1-7528167.x86_64.bundle
sudo ./VMware-Player-14.1.1-7528167.x86_64.bundle

And follow the instructions in the graphical installer.

tokam
  • 317
  • 2
  • 14
2

In addition to the answer by Stephen Wassell, if you are still running the VM Workstation 12.5.x version you will need to re-compile your .ko for every kernel patch.. which is alot..

You may see this error: (Invalid module format)

# insmod /lib/modules/4.13.0-31-generic/misc/vmnet.ko 
insmod: ERROR: could not insert module /lib/modules/4.13.0-31-generic/misc/vmnet.ko: Invalid module format

Here is a tool to keep the kernel modules for the ubuntu-flavor-distros updated after a kernel patch.

https://gist.github.com/shadowbq/5897002b620b093ca7578b5f13c3f3a1

I've also included a simple wrapper.sh that you can use a replacement for launching vmware workstation so you can be sure it appropriately loads the vm-network and vm-mon kernel modules everytime.

Note: this script will not expand the 'tar' or 'patch' the source files, this is for automatically recompiling the kernel modules after a kernel patch following the orignal steps by Stephen Wassell.

shadowbq
  • 155
  • 11