当我在 Fedora 28 中安装 VMware Player 14 时,我无法编译用于执行 VMware 的 vmmon 模块。 vmnet 已成功编译,但对于 vmmon 却出现以下错误:
/tmp/modconfig-rBg8Xn/vmmon-only/linux/hostif.c: In function ‘HostIF_InitUptime’:
/tmp/modconfig-rBg8Xn/vmmon-only/linux/hostif.c:1779:4: error: implicit
declaration of function ‘init_timer’; did you mean ‘init_timers’?
[-Werror=implicit-function-declaration]
init_timer(&uptimeState.timer);
^~~~~~~~~~
init_timers
/tmp/modconfig-rBg8Xn/vmmon-only/linux/hostif.c:1780:31: error: assignment
to ‘void (*)(struct timer_list *)’ from incompatible pointer type ‘void
(*)(long unsigned int)’ [-Werror=incompatible-pointer-types]
uptimeState.timer.function = HostIFUptimeResyncMono;
^
我运行的命令是:
sudo vmware-modconfig --console --install-all
另外,所有内核模块都根据命令正确安装:
sudo dnf install gcc glibc-headers kernel-devel kernel-headers patch
我怎样才能解决这个问题?我是否下载了错误的模块?
答案1
出现此问题的原因是 Linux 内核最近发生了重大更改。该问题已被报告,例如, 这里
内核4.15-rc1已经发布,简要细节如下: http://lkml.iu.edu/hypermail/linux/kernel/1711.3/00971.html
使用 VMware 14.0.0 – 加上 4.14 vmmon 补丁 – vmmon 再次中断 [...]
可能的解决方案是应用位于这里对于VMWare。