Ubuntu 16.04上的VMWare Workstation Pro 12无法编译vmmon

我已经在我的Ubuntu 16.04(双展位)中安装了没有问题的VMware软件包。 当我尝试运行它并尝试编译时,它会生成以下日志,它无法编译vmmon:

... 2016-08-15T16:13:39.909+02:00| vthread-4| I125: Successfully extracted the vmmon source. 2016-08-15T16:13:39.910+02:00| vthread-4| I125: Building module with command "/usr/bin/make -j8 -C /tmp/modconfig-SUMBLV/vmmon-only auto-build HEADER_DIR=/lib/modules/4.4.0-34-generic/build/include CC=/usr/bin/gcc IS_GCC_3=no" 2016-08-15T16:13:40.934+02:00| vthread-4| W115: Failed to build vmmon. Failed to execute the build command. 

我已经开始通过在网上搜索来解决问题了,我已经将get_user_pages方法名称更改为get_user_pages_remote,无论是在目录中的vmnet.tar还是vmmon.tar ,但它还没有解决问题,vmmon仍然不会编译。

通过终端使用gksudo启动VMware时,我收到以下错误消息:

 Starting VMware services: Virtual machine monitor failed Virtual machine communication interface done VM communication interface socket family done Blocking file system done Virtual ethernet done VMware Authentication Daemon done 

认为这将是一个与显卡有关的问题我已成功为我的显卡安装了NVidia驱动程序,在安装后启动时使用MOK管理实用程序禁用安全启动。 我还在我的BIOS中禁用了安全启动,它是一台华硕笔记本电脑。

我忘了使用gksudo安装VMWare软件包,我认为问题来源不太可能,但我会指出这只是为了准确。

内核版本是4.4.0-34-generic。 我已经读过它应该由VMWare团队来修补这个内核版本,是否有快速解决方案可以解决这个问题,还是我应该为Virtualbox拍摄并完成它?

我有一些虚拟机图像,我想从其他地方导入。

谢谢阅读。

我遇到过同样的问题。 这是修复转到该文件夹

 cd /usr/lib/vmware/modules/source 

解压缩文件vmmon.tar(你可能需要su / sudo来做这些)

 tar xf vmmon.tar 

编辑文件./vmmon-only/linux/driver.c

 nano ./vmmon-only/linux/driver.c 

应用这些更改,由https://forums.gentoo.org/viewtopic-p-7841306.html#7841306提供。在第400行附近,删除以 – 开头的行 – 并添加以+开头的行(不要实际放入+)。 有一种方法可以使用patch命令执行此操作,但无论如何。 如果您知道如何阅读补丁文件,您将看到该表单上的用户包含对另一个文件的另一个更改,但这一切都可以正常工作,而不是我带着它。

 #ifdef VMX86_DEVEL unregister_chrdev(linuxState.major, linuxState.deviceName); #else - if (misc_deregister(&linuxState.misc)) { - Warning("Module %s: error unregistering\n", linuxState.deviceName); - } + misc_deregister(&linuxState.misc); 

备份原件

 mv vmmon.tar vmmon.tarbackup 

重新定位文件

 tar cf vmmon.tar ./vmmon-only 

从这一点开始,我有点不确定,因为我做了一些事情,并且在每一步之后都没有测试过。 所以这些都可能不是绝对必要的。 使用刚刚编辑过的driver.c重新编译库

 sudo vmware-modconfig --console --install-all 

运行VMWare,告诉它使用刚刚编译的库

 sudo VMWARE_USE_SHIPPED_LIBS=yes vmwarex: