Ubuntu 17.04 上的 Vmware Workstation

Ubuntu 17.04 上的 Vmware Workstation

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

这是日志文件:

2017-04-16T12:59:06.065+01:00| vthread-4| I125:VMware Workstation 日志 pid=6683 版本=12.5.2 构建=build-4638234 选项=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-generic 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:在 /usr/lib/vmware/settings 中未找到 PREF 可选首选项文件。使用默认值。
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:未在 /root/.vmware/config 中找到 PREF 可选首选项文件。使用默认值。
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:创建了新的pathsHash。
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”的路径“/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,而是寻找 generated/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”有效。哇哦!
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-16T12: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 状态: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”的路径“/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,而是寻找 generated/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”有效。哇哦!
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”的路径“/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,而是寻找 generated/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”有效。哇哦!
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”的路径“/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,而是寻找 generated/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”有效。哇哦!
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”的路径“/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,而是寻找 generated/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”有效。哇哦!
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”的路径“/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,而是寻找 generated/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”有效。哇哦!
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。无法执行构建命令。

答案1

我遇到了完全相同的问题。对我有用的解决方案在这篇文章中:
如何在 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
    

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

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

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

答案2

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

sudo apt install gcc make

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

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

相关内容