Ubuntu 17.10升级破坏了VMWare Workstation 12.5

嗨升级到Ubuntu 17.10后,vmware现在无法启动。

我收到的消息是:

/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' 

我知道有可用的补丁,我试图应用这些并重新编译。 我从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 ... 

不幸的是,vmware-modconfig失败了,因为它似乎对特定的gcc版本有依赖性。 我是在正确的轨道上吗? 任何有关此问题的帮助将不胜感激。

编辑谢谢史蒂夫,下面的vmware再次发布。 我包括了一些小修正。 测试并确认我可以运行虚拟机。

 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 

我已经设法让VMWare Workstation 12.5.7在Kubuntu 17.10上运行。

/usr/lib/vmware/modules/source

  1. 提取vmmon.tarvmnet.tar

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

    这将创建vmmon-only vmnet-only目录。

  2. 获取修补后的hostif.c

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

    (注意: https : //communities.vmware.com/thread/571370 – 还包含针对VMWare Workstation 14的类似修复)

  3. 编辑vmnet-only/bridge.c

     639c639 < atomic_inc(&clone->users); --- > atomic_inc((atomic_t*)&clone->users); 
  4.  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. 作为用户:

     /usr/lib/vmware/bin/vmware 

    (防止它运行vmware-modconfig

描述的错误修正:斯蒂芬为许多人引导另一个错误:“无法获得gcc信息。”

最简单的解决方案下载vmware播放器工作站14.1

安装它而不是12.5版本解决了上述问题。

这样做只是运行

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

并按照图形安装程序中的说明进行操作。

除了Stephen Wassell的回答之外,如果您仍在运行VM Workstation 12.5.x版本,则需要为每个内核补丁重新编译.ko …这很多..

您可能会看到此错误:( 无效的模块格式

 # 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 

这是一个工具,用于在内核补丁后更新ubuntu-flavor-distros的内核模块。

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

我还包括一个简单的包装器.sh ,您可以使用替换启动vmware工作站,这样您就可以确保它每次都适当地加载vm-network和vm-mon内核模块。

注意:此脚本不会扩展源文件的’tar’或’patch’,这是为了在Stephen Wassell遵循orignal步骤后的内核补丁之后自动重新编译内核模块。

我已经尝试了所有其他解决方案但没有任何效果。 但是这些步骤适用于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 

参考:

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

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