Ubuntu 17.04上的Vmware工作站

我最近更新到Ubuntu 17.04。 不幸的是我无法运行VMware Workstation,因为内核模块无法安装。

这是日志文件:

 2017-04-16T12:59:06.065 + 01:00 |  vthread-4 |  I125:Log for VMware Workstation pid = 6683 version = 12.5.2 build = build-4638234 option = Release 2017-04-16T12:59:06.065 + 01:00 |  vthread-4 |  I125:进程是64位。  2017-04-16T12:59:06.065 + 01:00 |  vthread-4 |  I125:主机代码页= UTF-8编码= UTF-8 2017-04-16T12:59:06.065 + 01:00 |  vthread-4 |  I125:主机是Linux 4.10.0-19-通用Ubuntu 17.04 2017-04-16T12:59:06.064 + 01:00 |  vthread-4 |  I125:DictionaryLoad:无法打开文件“/ usr / lib / vmware / settings”:没有这样的文件或目录。  2017-04-16T12:59:06.064 + 01:00 |  vthread-4 |  I125:PREF在/ usr / lib / vmware / settings中找不到可选首选项文件。 使用默认值。  2017-04-16T12:59:06.064 + 01:00 |  vthread-4 |  I125:DictionaryLoad:无法打开文件“/root/.vmware/config”:没有这样的文件或目录。  2017-04-16T12:59:06.064 + 01:00 |  vthread-4 |  I125:PREF在/root/.vmware/config中找不到可选首选项文件。 使用默认值。  2017-04-16T12:59:06.064 + 01:00 |  vthread-4 |  I125:PREF无法检查首选项文件的权限。  2017-04-16T12:59:06.064 + 01:00 |  vthread-4 |  I125:DictionaryLoad:无法打开文件“/root/.vmware/preferences”:没有这样的文件或目录。  2017-04-16T12:59:06.064 + 01:00 |  vthread-4 |  I125:PREF无法加载用户首选项。  2017-04-16T12:59:06.107 + 01:00 |  vthread-4 |  W115:登录到/tmp/vmware-root/vmware-6683.log 2017-04-16T12:59:06.113 + 01:00 |  vthread-4 |  I125:使用正在运行的内核获取信息。  2017-04-16T12:59:06.113 + 01:00 |  vthread-4 |  I125:创建了新的路径哈希。  2017-04-16T12:59:06.113 + 01:00 |  vthread-4 |  I125:将4.10.0-19-generic的头路径设置为“/lib/modules/4.10.0-19-generic/build/include”。  2017-04-16T12:59:06.113 + 01:00 |  vthread-4 |  I125:为内核版本“4.10.0-19-generic”validation路径“/lib/modules/4.10.0-19-generic/build/include”。  2017-04-16T12:59:06.113 + 01:00 |  vthread-4 |  I125:无法找到/lib/modules/4.10.0-19-generic/build/include/linux/version.h 2017-04-16T12:59:06.113 + 01:00 |  vthread-4 |  I125:找不到/lib/modules/4.10.0-19-generic/build/include/linux/version.h,而是查找生成的/ uapi / linux / version.h。  2017-04-16T12:59:06.113 + 01:00 |  vthread-4 |  I125:使用/ usr / bin / gcc进行预处理检查2017-04-16T12:59:06.119 + 01:00 |  vthread-4 |  I125:预处理的UTS_RELEASE,得到值“4.10.0-19-generic”。  2017-04-16T12:59:06.119 + 01:00 |  vthread-4 |  I125:内核“4.10.0-19-generic”的头文件路径“/lib/modules/4.10.0-19-generic/build/include”有效。  Whoohoo!  2017-04-16T12:59:06.247 + 01:00 |  vthread-4 |  I125:找到符号版本文件/lib/modules/4.10.0-19-generic/build/Module.symvers 2017-04-16T12:59:06.248 + 01:00 |  vthread-4 |  I125:从/lib/modules/4.10.0-19-generic/build/Module.symvers读取符号版本。  2017-04-16T12:59:06.265 + 01:00 |  vthread-4 |  I125:阅读21363符号版本2017-04-16T12:59:06.265 + 01:00 |  vthread-4 |  I125:读取vmmon模块的信息。  2017-04-16T12:59:06.265 + 01:00 |  vthread-4 |  I125:读取vmnet模块的信息。  2017-04-16T12:59:06.265 + 01:00 |  vthread-4 |  I125:读取vmblock模块的信息。  2017-04-16T12:59:06.265 + 01:00 |  vthread-4 |  I125:读取vmci模块的信息。  2017-04-16T12:59:06.265 + 01:00 |  vthread-4 |  I125:阅读vsock模块的信息。  2017-04-16T12:59:06.265 + 01:00 |  vthread-4 |  I125:设置vsock依赖于vmci。  2017-04-16T12:59:06.265 + 01:00 |  vthread-4 |  I125:在“vmmon”上调用modinfo。  2017-04-16T12:59:06.267 + 01:00 |  vthread-4 |  I125:“/ sbin / modinfo”退出状态256. 2017-04-16-16:59:06.267 + 01:00 |  vthread-4 |  I125:在“vmnet”上调用modinfo。  2017-04-16T12:59:06.268 + 01:00 |  vthread-4 |  I125:“/ sbin / modinfo”以状态256退出.2017-04-16T12:59:06.268 + 01:00 |  vthread-4 |  I125:在“vmblock”上调用modinfo。  2017-04-16T12:59:06.269 + 01:00 |  vthread-4 |  I125:“/ sbin / modinfo”以状态256退出.2017-04-16T12:59:06.269 + 01:00 |  vthread-4 |  I125:在“vmci”上调用modinfo。  2017-04-16T12:59:06.270 + 01:00 |  vthread-4 |  I125:“/ sbin / modinfo”以状态256退出.2017-04-16T12:59:06.270 + 01:00 |  vthread-4 |  I125:在“vsock”上调用modinfo。  2017-04-16T12:59:06.271 + 01:00 |  vthread-4 |  I125:“/ sbin / modinfo”退出状态0. 2017-04-16T12:59:06.286 + 01:00 |  vthread-4 |  I125:要安装:vmmon status:0 2017-04-16T12:59:06.286 + 01:00 |  vthread-4 |  I125:待安装:vmnet状态:0 2017-04-16T12:59:06.308 + 01:00 |  vthread-4 |  I125:使用正在运行的内核获取信息。  2017-04-16T12:59:06.308 + 01:00 |  vthread-4 |  I125:将4.10.0-19-generic的头路径设置为“/lib/modules/4.10.0-19-generic/build/include”。  2017-04-16T12:59:06.308 + 01:00 |  vthread-4 |  I125:为内核版本“4.10.0-19-generic”validation路径“/lib/modules/4.10.0-19-generic/build/include”。  2017-04-16T12:59:06.308 + 01:00 |  vthread-4 |  I125:无法找到/lib/modules/4.10.0-19-generic/build/include/linux/version.h 2017-04-16T12:59:06.308 + 01:00 |  vthread-4 |  I125:找不到/lib/modules/4.10.0-19-generic/build/include/linux/version.h,而是查找生成的/ uapi / linux / version.h。  2017-04-16T12:59:06.308 + 01:00 |  vthread-4 |  I125:使用/ usr / bin / gcc进行预处理检查2017-04-16T12:59:06.313 + 01:00 |  vthread-4 |  I125:预处理的UTS_RELEASE,得到值“4.10.0-19-generic”。  2017-04-16T12:59:06.313 + 01:00 |  vthread-4 |  I125:内核“4.10.0-19-generic”的头文件路径“/lib/modules/4.10.0-19-generic/build/include”有效。  Whoohoo!  2017-04-16T12:59:06.434 + 01:00 |  vthread-4 |  I125:找到符号版本文件/lib/modules/4.10.0-19-generic/build/Module.symvers 2017-04-16T12:59:06.434 + 01:00 |  vthread-4 |  I125:从/lib/modules/4.10.0-19-generic/build/Module.symvers读取符号版本。  2017-04-16T12:59:06.451 + 01:00 |  vthread-4 |  I125:阅读21363符号版本2017-04-16T12:59:06.451 + 01:00 |  vthread-4 |  I125:从FileEntry检索的内核头路径:/lib/modules/4.10.0-19-generic/build/include 2017-04-16T12:59:06.451 + 01:00 |  vthread-4 |  I125:更新/lib/modules/4.10.0-19-generic/build/include的内核头路径2017-04-16T12:59:06.451 + 01:00 |  vthread-4 |  I125:为内核版本“4.10.0-19-generic”validation路径“/lib/modules/4.10.0-19-generic/build/include”。  2017-04-16T12:59:06.451 + 01:00 |  vthread-4 |  I125:无法找到/lib/modules/4.10.0-19-generic/build/include/linux/version.h 2017-04-16T12:59:06.451 + 01:00 |  vthread-4 |  I125:找不到/lib/modules/4.10.0-19-generic/build/include/linux/version.h,而是查找生成的/ uapi / linux / version.h。  2017-04-16T12:59:06.451 + 01:00 |  vthread-4 |  I125:使用/ usr / bin / gcc进行预处理检查2017-04-16T12:59:06.456 + 01:00 |  vthread-4 |  I125:预处理的UTS_RELEASE,得到值“4.10.0-19-generic”。  2017-04-16T12:59:06.456 + 01:00 |  vthread-4 |  I125:内核“4.10.0-19-generic”的头文件路径“/lib/modules/4.10.0-19-generic/build/include”有效。  Whoohoo!  2017-04-16T12:59:06.457 + 01:00 |  vthread-4 |  I125:在“/ usr / bin / gcc”找到编译器2017-04-16T12:59:06.459 + 01:00 |  vthread-4 |  I125:获得gcc版本“6.3.0”。  2017-04-16T12:59:06.459 + 01:00 |  vthread-4 |  I125:GCC版本与内核GCC次要版本匹配,就像手套一样。  2017-04-16T12:59:06.459 + 01:00 |  vthread-4 |  I125:使用用户提供的编译器“/ usr / bin / gcc”。  2017-04-16T12:59:06.461 + 01:00 |  vthread-4 |  I125:获得gcc版本“6.3.0”。  2017-04-16T12:59:06.461 + 01:00 |  vthread-4 |  I125:GCC版本与内核GCC次要版本匹配,就像手套一样。  2017-04-16T12:59:06.462 + 01:00 |  vthread-4 |  I125:尝试为内核“4.10.0-19-generic”找到合适的PBM集。  2017-04-16T12:59:06.462 + 01:00 |  vthread-4 |  I125:没有找到内核“4.10.0-19-generic”的匹配PBM集。  2017-04-16T12:59:06.462 + 01:00 |  vthread-4 |  I125:GCC版本与内核GCC次要版本匹配,就像手套一样。  2017-04-16T12:59:06.462 + 01:00 |  vthread-4 |  I125:为内核版本“4.10.0-19-generic”validation路径“/lib/modules/4.10.0-19-generic/build/include”。  2017-04-16T12:59:06.462 + 01:00 |  vthread-4 |  I125:无法找到/lib/modules/4.10.0-19-generic/build/include/linux/version.h 2017-04-16T12:59:06.462 + 01:00 |  vthread-4 |  I125:找不到/lib/modules/4.10.0-19-generic/build/include/linux/version.h,而是查找生成的/ uapi / linux / version.h。  2017-04-16T12:59:06.462 + 01:00 |  vthread-4 |  I125:使用/ usr / bin / gcc进行预处理检查2017-04-16T12:59:06.468 + 01:00 |  vthread-4 |  I125:预处理的UTS_RELEASE,得到值“4.10.0-19-generic”。  2017-04-16T12:59:06.468 + 01:00 |  vthread-4 |  I125:内核“4.10.0-19-generic”的头文件路径“/lib/modules/4.10.0-19-generic/build/include”有效。  Whoohoo!  2017-04-16T12:59:06.469 + 01:00 |  vthread-4 |  I125:GCC版本与内核GCC次要版本匹配,就像手套一样。  2017-04-16T12:59:06.469 + 01:00 |  vthread-4 |  I125:为内核版本“4.10.0-19-generic”validation路径“/lib/modules/4.10.0-19-generic/build/include”。  2017-04-16T12:59:06.469 + 01:00 |  vthread-4 |  I125:无法找到/lib/modules/4.10.0-19-generic/build/include/linux/version.h 2017-04-16T12:59:06.469 + 01:00 |  vthread-4 |  I125:找不到/lib/modules/4.10.0-19-generic/build/include/linux/version.h,而是查找生成的/ uapi / linux / version.h。  2017-04-16T12:59:06.469 + 01:00 |  vthread-4 |  I125:使用/ usr / bin / gcc进行预处理检查2017-04-16T12:59:06.475 + 01:00 |  vthread-4 |  I125:预处理的UTS_RELEASE,得到值“4.10.0-19-generic”。  2017-04-16T12:59:06.475 + 01:00 |  vthread-4 |  I125:内核“4.10.0-19-generic”的头文件路径“/lib/modules/4.10.0-19-generic/build/include”有效。  Whoohoo!  2017-04-16T12:59:06.475 + 01:00 |  vthread-4 |  I125:使用临时目录“/ tmp”。  2017-04-16T12:59:06.476 + 01:00 |  vthread-4 |  I125:使用正在运行的内核获取信息。  2017-04-16T12:59:06.476 + 01:00 |  vthread-4 |  I125:将4.10.0-19-generic的头路径设置为“/lib/modules/4.10.0-19-generic/build/include”。  2017-04-16T12:59:06.476 + 01:00 |  vthread-4 |  I125:为内核版本“4.10.0-19-generic”validation路径“/lib/modules/4.10.0-19-generic/build/include”。  2017-04-16T12:59:06.476 + 01:00 |  vthread-4 |  I125:无法找到/lib/modules/4.10.0-19-generic/build/include/linux/version.h 2017-04-16T12:59:06.476 + 01:00 |  vthread-4 |  I125:找不到/lib/modules/4.10.0-19-generic/build/include/linux/version.h,而是查找生成的/ uapi / linux / version.h。  2017-04-16T12:59:06.476 + 01:00 |  vthread-4 |  I125:使用/ usr / bin / gcc进行预处理检查2017-04-16T12:59:06.481 + 01:00 |  vthread-4 |  I125:预处理的UTS_RELEASE,得到值“4.10.0-19-generic”。  2017-04-16T12:59:06.481 + 01:00 |  vthread-4 |  I125:内核“4.10.0-19-generic”的头文件路径“/lib/modules/4.10.0-19-generic/build/include”有效。  Whoohoo!  2017-04-16T12:59:06.608 + 01:00 |  vthread-4 |  I125:找到符号版本文件/lib/modules/4.10.0-19-generic/build/Module.symvers 2017-04-16T12:59:06.608 + 01:00 |  vthread-4 |  I125:从/lib/modules/4.10.0-19-generic/build/Module.symvers读取符号版本。  2017-04-16T12:59:06.626 + 01:00 |  vthread-4 |  I125:阅读21363符号版本2017-04-16T12:59:06.626 + 01:00 |  vthread-4 |  I125:在“vmmon”上调用modinfo。  2017-04-16T12:59:06.628 + 01:00 |  vthread-4 |  I125:“/ sbin / modinfo”以状态256退出.2017-04-16T12:59:06.628 + 01:00 |  vthread-4 |  I125:在“vmnet”上调用modinfo。  2017-04-16T12:59:06.630 + 01:00 |  vthread-4 |  I125:“/ sbin / modinfo”以状态256退出.2017-04-16T12:59:07.100 + 01:00 |  vthread-4 |  I125:将vmmon的目标路径设置为“/lib/modules/4.10.0-19-generic/misc/vmmon.ko”。  2017-04-16T12:59:07.101 + 01:00 |  vthread-4 |  I125:从“/usr/lib/vmware/modules/source/vmmon.tar”中提取vmmon源代码。  2017-04-16T12:59:07.106 + 01:00 |  vthread-4 |  I125:成功提取了vmmon源代码。  2017-04-16T12:59:07.106 + 01:00 |  vthread-4 |  I125:使用命令“/ usr / bin / make -j4 -C / tmp / modconfig -JzkDhJ / vmmon-only auto-build HEADER_DIR = / lib / modules / 4.10.0-19-generic / build / include CC =构建模块/ usr / bin / gcc IS_GCC_3 = no“2017-04-16T12:59:08.721 + 01:00 |  vthread-4 |  W115:无法构建vmmon。 无法执行构建命令。  2017-04-16T12:59:08.723 + 01:00 |  vthread-4 |  I125:将vmnet的目标路径设置为“/lib/modules/4.10.0-19-generic/misc/vmnet.ko”。  2017-04-16T12:59:08.723 + 01:00 |  vthread-4 |  I125:从“/usr/lib/vmware/modules/source/vmnet.tar”中提取vmnet源代码。  2017-04-16T12:59:08.729 + 01:00 |  vthread-4 |  I125:成功提取了vmnet源。  2017-04-16T12:59:08.729 + 01:00 |  vthread-4 |  I125:使用命令构建模块“/ usr / bin / make -j4 -C / tmp / modconfig -JzkDhJ / vmnet-only auto-build HEADER_DIR = / lib / modules / 4.10.0-19-generic / build / include CC = / usr / bin / gcc IS_GCC_3 = no“2017-04-16T12:59:10.142 + 01:00 |  vthread-4 |  W115:无法构建vmnet。 无法执行构建命令。 

我有完全相同的问题。 对我有用的解决方案在本文中:
如何在Linux 4.10内核上安装VMWare Workstation 12

  1. 正常安装VMware

    在我们的例子中,我们使用捆绑文件安装了VMware。 要使捆绑包运行,您必须在其上运行chmod u+x ,然后运行:

     sudo ./VMware-Workstation-Full-12.5.bundle #(example filename) 
  2. 安装GCC和build-essentials

     sudo apt install gcc build-essential 
  3. 补丁VMware

     sudo tar -xf /usr/lib/vmware/modules/source/vmmon.tar sudo nano vmmon-only/linux/hostif.c 

    在1162线附近,改变

     #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0) retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL); #else retval = get_user_pages(current, current->mm, (unsigned long)uvAddr, numPages, 0, 0, ppages, NULL); #endif 

     #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0) retval = get_user_pages((unsigned long)uvAddr, numPages, 0, ppages, NULL); #else #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0) retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL); #else retval = get_user_pages(current, current->mm, (unsigned long)uvAddr, numPages, 0, 0, ppages, NULL); #endif #endif 

    保存文件并退出,然后:

     sudo tar -cf /usr/lib/vmware/modules/source/vmmon.tar vmmon-only/ sudo tar -xf /usr/lib/vmware/modules/source/vmnet.tar sudo nano vmnet-only/userif.c 

    在114行下方,改变

     #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0) retval = get_user_pages(addr, 1, 1, 0, &page, NULL); #else retval = get_user_pages(current, current->mm, addr, 1, 1, 0, &page, NULL); #endif 

     #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0) retval = get_user_pages(addr, 1, 0, &page, NULL); #else #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0) retval = get_user_pages(addr, 1, 1, 0, &page, NULL); #else retval = get_user_pages(current, current->mm, addr, 1, 1, 0, &page, NULL); #endif #endif 

    保存文件,退出,然后重新编译该文件

      sudo tar -cf /usr/lib/vmware/modules/source/vmnet.tar vmnet-only/ 
  4. 再次运行VMware

  5. 现在只需正常启动VMware,它应该正确安装vmon和vmnet。

我正在运行Budgie 17.04,VMware工作正常。 我只安装了构建工具:

 sudo apt install gcc make 

一旦启动VMware,它将成功编译所需的模块。

我使用的软件包是VMware-Player-12.5.5-5234757.x86_64.bundle