我正在尝试使用https://help.ubuntu.com/community/VMware/Player上的说明安装 VMware
我收到一个错误,告诉我查看一个日志文件,其中包含:
Extracting the vmmon source from "/usr/lib/vmware/modules/source/vmmon.tar".
Successfully extracted the vmmon source.
Building module with command "/usr/bin/make -j4 -C /tmp/modconfig-GoVdrH/vmmon-only auto-build HEADER_DIR=/lib/modules/4.15.0-22-generic/build/include CC=/usr/bin/gcc IS_GCC_3=no"
Failed to build vmmon. Failed to execute the build command.
为了弄清楚到底出了什么问题,我vmware-modconfig --console --install-all
在命令行上运行,它显示了以下错误:
./arch/x86/include/asm/processor-flags.h:39:0: note: this is the location of the previous definition
#define CR3_PCID_MASK 0xFFFull
^
/tmp/modconfig-3S1CBa/vmmon-only/linux/driver.c:256:12: error: ‘struct timer_list’ has no member named ‘data’
tscTimer.data = 0;
unsigned int lockedPages = global_page_state(NR_PAGETABLE) +
^~~~~~~~~~~~~~~~~
global_numa_state
/tmp/modconfig-3S1CBa/vmmon-only/linux/driver.c: In function ‘init_module’:
/tmp/modconfig-3S1CBa/vmmon-only/linux/driver.c:338:4: error: implicit declaration of function ‘init_timer’; did you mean ‘init_timers’? [-Werror=implicit-function-declaration]
init_timer(&tscTimer);
^~~~~~~~~~
init_timers
/tmp/modconfig-3S1CBa/vmmon-only/linux/hostif.c: In function ‘HostIF_InitUptime’:
init_timers
/tmp/modconfig-3S1CBa/vmmon-only/linux/hostif.c:1754:31: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
uptimeState.timer.function = HostIFUptimeResyncMono;
LinuxDriverSyncReadTSCs(uint64 *delta) // OUT: TSC max - TSC min
^~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
cc1: some warnings being treated as errors
scripts/Makefile.build:332: recipe for target '/tmp/modconfig-3S1CBa/vmmon-only/linux/hostif.o' failed
make[2]: *** [/tmp/modconfig-3S1CBa/vmmon-only/linux/hostif.o] Error 1
Makefile:110: recipe for target 'vmmon.ko' failed
make: *** [vmmon.ko] Error 2
如何修复它,或者使隐式函数声明和不兼容指针类型不被视为错误?
或者有什么更简单的方法可以在 18.04 上安装最新的 VMware?
注意:与 Ubuntu 16.04 上的 VMWare Workstation Pro 12 不同的错误无法编译 vmmon
我找到了一个解决方案,并根据mkucebek 的 github 源创建了一个脚本文件。
您必须创建一个包含此内容的文件并在每次需要时运行它(通常在您安装新内核时):
然后,您只需启动 VMware Workstation 而无需构建模块。
安装最新版本14.1.2。该错误已得到修复。见这里。这是下载链接。
这适用于我在 Fedora 30 和 Workstation 15.1.0 上