首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ubuntu16.04上的VMWare工作站Pro 12不能编译vmmon

Ubuntu16.04上的VMWare工作站Pro 12不能编译vmmon
EN

Ask Ubuntu用户
提问于 2016-08-15 14:30:19
回答 1查看 17.3K关注 0票数 5

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

代码语言:javascript
复制
...
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.

我已经开始通过在web上搜索来解决这个问题,并且我在get_user_pages和vmmon.tar目录中都将vmnet.tar方法名更改为get_user_pages_remote,但是它还没有解决这个问题,vmmon仍然不会编译。

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

代码语言:javascript
复制
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-泛型。我已经读到,应该由VMWare团队来修补这个内核版本,是否有一个快速解决这个问题的方法,或者我应该为Virtualbox拍摄并完成它呢?

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

感谢您的阅读。

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2016-08-30 12:41:20

我也有过同样的问题。这是修复程序转到文件夹

代码语言:javascript
复制
cd /usr/lib/vmware/modules/source

使用vmmon.tar解压文件(您可能需要su/sudo来完成这些操作)

代码语言:javascript
复制
tar xf vmmon.tar

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

代码语言:javascript
复制
nano ./vmmon-only/linux/driver.c

应用这些更改,在第400行附近使用https://forums.gentoo.org/viewtopic-p-7841306.html#7841306,删除以a开头的行,并添加以+开头的行(实际上不要将+放入)。有一种方法可以使用修补程序命令来完成这一任务,但无论如何。如果您知道如何读取修补程序文件,您将看到表单上的用户包括了对另一个文件的另一个更改,但这一切都有效,而不是我执行。

代码语言:javascript
复制
#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); 

备份原件

代码语言:javascript
复制
mv vmmon.tar vmmon.tarbackup

重放文件

代码语言:javascript
复制
tar cf vmmon.tar ./vmmon-only

从这一点开始,我有点犹豫,因为我做了一些事情,没有在每一步之后进行测试。因此,这两种情况可能都不是绝对必要的。使用刚才编辑的driver.c重新编译库

代码语言:javascript
复制
sudo vmware-modconfig --console --install-all

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

代码语言:javascript
复制
sudo VMWARE_USE_SHIPPED_LIBS=yes vmwarex:
票数 8
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/812552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档