본문 바로가기
OS/Linux

ubuntu vmware 설치에러

by 신군. 2018. 5. 23.
반응형

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 4: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: 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 2:01
up vote 11 down vote accepted

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)

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.

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.


반응형