安装 VMWare Workstation 16 没有任何问题。但是,首次运行 VMWare Workstation 时,会显示以下对话框:
第一个对话框:
第二个对话框(单击安装后)
经过一番深入的网络搜索后,我发现运行这个命令可以解决这个问题:
sudo vmware-modconfig --console --install-all
但是,执行该命令会导致以下响应(这很可能是问题的核心):
[AppLoader] Use shipped Linux kernel AIO access library.
An up-to-date "libaio" or "libaio1" package from your system is preferred.
[AppLoader] GLib does not have GSettings support.
Stopping VMware services:
VMware Authentication Daemon done
Virtual machine monitor done
make: Entering directory '/tmp/modconfig-DTkyre/vmmon-only'
Using kernel build system.
/usr/bin/make -C /lib/modules/5.15.0-33-generic/build/include/.. M=$PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= modules
make[1]: Entering directory '/usr/src/linux-headers-5.15.0-33-generic'
CC [M] /tmp/modconfig-DTkyre/vmmon-only/linux/driver.o
CC [M] /tmp/modconfig-DTkyre/vmmon-only/linux/driverLog.o
CC [M] /tmp/modconfig-DTkyre/vmmon-only/linux/hostif.o
CC [M] /tmp/modconfig-DTkyre/vmmon-only/common/apic.o
CC [M] /tmp/modconfig-DTkyre/vmmon-only/common/comport.o
CC [M] /tmp/modconfig-DTkyre/vmmon-only/common/cpuid.o
CC [M] /tmp/modconfig-DTkyre/vmmon-only/common/crosspage.o
CC [M] /tmp/modconfig-DTkyre/vmmon-only/common/memtrack.o
CC [M] /tmp/modconfig-DTkyre/vmmon-only/common/moduleloop.o
CC [M] /tmp/modconfig-DTkyre/vmmon-only/common/phystrack.o
CC [M] /tmp/modconfig-DTkyre/vmmon-only/common/sharedAreaVmmon.o
CC [M] /tmp/modconfig-DTkyre/vmmon-only/common/statVarsVmmon.o
CC [M] /tmp/modconfig-DTkyre/vmmon-only/common/task.o
CC [M] /tmp/modconfig-DTkyre/vmmon-only/common/vmx86.o
/tmp/modconfig-DTkyre/vmmon-only/common/phystrack.o: warning: objtool: PhysTrack_Free() falls through to next function PhysTrack_Add()
/tmp/modconfig-DTkyre/vmmon-only/common/phystrack.o: warning: objtool: PhysTrack_Add() falls through to next function PhysTrack_Remove()
/tmp/modconfig-DTkyre/vmmon-only/common/phystrack.o: warning: objtool: PhysTrack_Remove() falls through to next function PhysTrack_Test()
CC [M] /tmp/modconfig-DTkyre/vmmon-only/bootstrap/bootstrap.o
CC [M] /tmp/modconfig-DTkyre/vmmon-only/bootstrap/monLoader.o
CC [M] /tmp/modconfig-DTkyre/vmmon-only/bootstrap/monLoaderVmmon.o
CC [M] /tmp/modconfig-DTkyre/vmmon-only/bootstrap/vmmblob.o
In file included from /tmp/modconfig-DTkyre/vmmon-only/./include/x86desc.h:33,
from /tmp/modconfig-DTkyre/vmmon-only/./include/modulecall.h:34,
from /tmp/modconfig-DTkyre/vmmon-only/common/task.c:60:
/tmp/modconfig-DTkyre/vmmon-only/common/task.c: In function ‘TaskRestoreHostGDTTRLDT’:
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_asm_x86.h:67:44: error: expression in static assertion is not constant
67 | ASSERT_ON_COMPILE(sizeof(Selector) == 2 && \
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 | ((__builtin_constant_p(expr) && ((expr) >> 16) == 0) || \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69 | sizeof(expr) <= 2))
| ~~~~~~~~~~~~~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_assert.h:372:22: note: in definition of macro ‘ASSERT_ON_COMPILE’
372 | _Static_assert(e, #e); \
| ^
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_asm_x86.h:263:7: note: in expansion of macro ‘ASSERT_ON_COMPILE_SELECTOR_SIZE’
263 | ASSERT_ON_COMPILE_SELECTOR_SIZE(expr); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/common/task.c:726:7: note: in expansion of macro ‘SET_TR’
726 | SET_TR(tr);
| ^~~~~~
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_asm_x86.h:67:44: error: expression in static assertion is not constant
67 | ASSERT_ON_COMPILE(sizeof(Selector) == 2 && \
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 | ((__builtin_constant_p(expr) && ((expr) >> 16) == 0) || \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69 | sizeof(expr) <= 2))
| ~~~~~~~~~~~~~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_assert.h:372:22: note: in definition of macro ‘ASSERT_ON_COMPILE’
372 | _Static_assert(e, #e); \
| ^
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_asm_x86.h:129:7: note: in expansion of macro ‘ASSERT_ON_COMPILE_SELECTOR_SIZE’
129 | ASSERT_ON_COMPILE_SELECTOR_SIZE(expr); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/common/task.c:728:7: note: in expansion of macro ‘SET_LDT’
728 | SET_LDT(ldt);
| ^~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_asm_x86.h:67:44: error: expression in static assertion is not constant
67 | ASSERT_ON_COMPILE(sizeof(Selector) == 2 && \
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 | ((__builtin_constant_p(expr) && ((expr) >> 16) == 0) || \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69 | sizeof(expr) <= 2))
| ~~~~~~~~~~~~~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_assert.h:372:22: note: in definition of macro ‘ASSERT_ON_COMPILE’
372 | _Static_assert(e, #e); \
| ^
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_asm_x86.h:263:7: note: in expansion of macro ‘ASSERT_ON_COMPILE_SELECTOR_SIZE’
263 | ASSERT_ON_COMPILE_SELECTOR_SIZE(expr); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/common/task.c:751:10: note: in expansion of macro ‘SET_TR’
751 | SET_TR(tr);
| ^~~~~~
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_asm_x86.h:67:44: error: expression in static assertion is not constant
67 | ASSERT_ON_COMPILE(sizeof(Selector) == 2 && \
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 | ((__builtin_constant_p(expr) && ((expr) >> 16) == 0) || \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69 | sizeof(expr) <= 2))
| ~~~~~~~~~~~~~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_assert.h:372:22: note: in definition of macro ‘ASSERT_ON_COMPILE’
372 | _Static_assert(e, #e); \
| ^
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_asm_x86.h:129:7: note: in expansion of macro ‘ASSERT_ON_COMPILE_SELECTOR_SIZE’
129 | ASSERT_ON_COMPILE_SELECTOR_SIZE(expr); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/common/task.c:761:7: note: in expansion of macro ‘SET_LDT’
761 | SET_LDT(ldt);
| ^~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/common/task.c: In function ‘Task_Switch’:
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_asm_x86.h:67:44: error: expression in static assertion is not constant
67 | ASSERT_ON_COMPILE(sizeof(Selector) == 2 && \
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 | ((__builtin_constant_p(expr) && ((expr) >> 16) == 0) || \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69 | sizeof(expr) <= 2))
| ~~~~~~~~~~~~~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_assert.h:372:22: note: in definition of macro ‘ASSERT_ON_COMPILE’
372 | _Static_assert(e, #e); \
| ^
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_asm_x86.h:215:7: note: in expansion of macro ‘ASSERT_ON_COMPILE_SELECTOR_SIZE’
215 | ASSERT_ON_COMPILE_SELECTOR_SIZE(expr); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_asm_x86.h:228:22: note: in expansion of macro ‘SET_SEGREG’
228 | #define SET_SS(expr) SET_SEGREG(ss, expr)
| ^~~~~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/common/task.c:2620:13: note: in expansion of macro ‘SET_SS’
2620 | SET_SS(kernelStackSegment);
| ^~~~~~
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_asm_x86.h:67:44: error: expression in static assertion is not constant
67 | ASSERT_ON_COMPILE(sizeof(Selector) == 2 && \
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 | ((__builtin_constant_p(expr) && ((expr) >> 16) == 0) || \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69 | sizeof(expr) <= 2))
| ~~~~~~~~~~~~~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_assert.h:372:22: note: in definition of macro ‘ASSERT_ON_COMPILE’
372 | _Static_assert(e, #e); \
| ^
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_asm_x86.h:215:7: note: in expansion of macro ‘ASSERT_ON_COMPILE_SELECTOR_SIZE’
215 | ASSERT_ON_COMPILE_SELECTOR_SIZE(expr); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_asm_x86.h:224:22: note: in expansion of macro ‘SET_SEGREG’
224 | #define SET_DS(expr) SET_SEGREG(ds, expr)
| ^~~~~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/common/task.c:2716:10: note: in expansion of macro ‘SET_DS’
2716 | SET_DS(ds);
| ^~~~~~
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_asm_x86.h:67:44: error: expression in static assertion is not constant
67 | ASSERT_ON_COMPILE(sizeof(Selector) == 2 && \
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 | ((__builtin_constant_p(expr) && ((expr) >> 16) == 0) || \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69 | sizeof(expr) <= 2))
| ~~~~~~~~~~~~~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_assert.h:372:22: note: in definition of macro ‘ASSERT_ON_COMPILE’
372 | _Static_assert(e, #e); \
| ^
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_asm_x86.h:215:7: note: in expansion of macro ‘ASSERT_ON_COMPILE_SELECTOR_SIZE’
215 | ASSERT_ON_COMPILE_SELECTOR_SIZE(expr); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_asm_x86.h:225:22: note: in expansion of macro ‘SET_SEGREG’
225 | #define SET_ES(expr) SET_SEGREG(es, expr)
| ^~~~~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/common/task.c:2717:10: note: in expansion of macro ‘SET_ES’
2717 | SET_ES(es);
| ^~~~~~
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_asm_x86.h:67:44: error: expression in static assertion is not constant
67 | ASSERT_ON_COMPILE(sizeof(Selector) == 2 && \
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 | ((__builtin_constant_p(expr) && ((expr) >> 16) == 0) || \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69 | sizeof(expr) <= 2))
| ~~~~~~~~~~~~~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_assert.h:372:22: note: in definition of macro ‘ASSERT_ON_COMPILE’
372 | _Static_assert(e, #e); \
| ^
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_asm_x86.h:215:7: note: in expansion of macro ‘ASSERT_ON_COMPILE_SELECTOR_SIZE’
215 | ASSERT_ON_COMPILE_SELECTOR_SIZE(expr); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_asm_x86.h:226:22: note: in expansion of macro ‘SET_SEGREG’
226 | #define SET_FS(expr) SET_SEGREG(fs, expr)
| ^~~~~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/common/task.c:2725:10: note: in expansion of macro ‘SET_FS’
2725 | SET_FS(fs);
| ^~~~~~
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_asm_x86.h:67:44: error: expression in static assertion is not constant
67 | ASSERT_ON_COMPILE(sizeof(Selector) == 2 && \
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 | ((__builtin_constant_p(expr) && ((expr) >> 16) == 0) || \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
69 | sizeof(expr) <= 2))
| ~~~~~~~~~~~~~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_assert.h:372:22: note: in definition of macro ‘ASSERT_ON_COMPILE’
372 | _Static_assert(e, #e); \
| ^
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_asm_x86.h:215:7: note: in expansion of macro ‘ASSERT_ON_COMPILE_SELECTOR_SIZE’
215 | ASSERT_ON_COMPILE_SELECTOR_SIZE(expr); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/./include/vm_asm_x86.h:227:22: note: in expansion of macro ‘SET_SEGREG’
227 | #define SET_GS(expr) SET_SEGREG(gs, expr)
| ^~~~~~~~~~
/tmp/modconfig-DTkyre/vmmon-only/common/task.c:2726:10: note: in expansion of macro ‘SET_GS’
2726 | SET_GS(gs);
| ^~~~~~
make[2]: *** [scripts/Makefile.build:285: /tmp/modconfig-DTkyre/vmmon-only/common/task.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [Makefile:1875: /tmp/modconfig-DTkyre/vmmon-only] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-5.15.0-33-generic'
make: *** [Makefile:117: vmmon.ko] Error 2
make: Leaving directory '/tmp/modconfig-DTkyre/vmmon-only'
make: Entering directory '/tmp/modconfig-DTkyre/vmnet-only'
Using kernel build system.
/usr/bin/make -C /lib/modules/5.15.0-33-generic/build/include/.. M=$PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= modules
make[1]: Entering directory '/usr/src/linux-headers-5.15.0-33-generic'
CC [M] /tmp/modconfig-DTkyre/vmnet-only/driver.o
CC [M] /tmp/modconfig-DTkyre/vmnet-only/hub.o
CC [M] /tmp/modconfig-DTkyre/vmnet-only/userif.o
CC [M] /tmp/modconfig-DTkyre/vmnet-only/netif.o
CC [M] /tmp/modconfig-DTkyre/vmnet-only/bridge.o
CC [M] /tmp/modconfig-DTkyre/vmnet-only/procfs.o
CC [M] /tmp/modconfig-DTkyre/vmnet-only/smac_compat.o
CC [M] /tmp/modconfig-DTkyre/vmnet-only/smac.o
CC [M] /tmp/modconfig-DTkyre/vmnet-only/vnetEvent.o
CC [M] /tmp/modconfig-DTkyre/vmnet-only/vnetUserListener.o
/tmp/modconfig-DTkyre/vmnet-only/hub.c:237:24: warning: argument 1 of type ‘uint8[]’ {aka ‘unsigned char[]’} with mismatched bound [-Warray-parameter=]
237 | VNetHub_AllocPvn(uint8 id[]) // IN: the PVN ID to alloc on
| ~~~~~~^~~~
In file included from /tmp/modconfig-DTkyre/vmnet-only/hub.c:43:
/tmp/modconfig-DTkyre/vmnet-only/vnetInt.h:173:34: note: previously declared as ‘uint8[20]’ {aka ‘unsigned char[20]’}
173 | VNetJack *VNetHub_AllocPvn(uint8 id[VNET_PVN_ID_LEN]);
| ~~~~~~^~~~~~~~~~~~~~~~~~~
/tmp/modconfig-DTkyre/vmnet-only/hub.c:261:20: warning: argument 3 of type ‘uint8[]’ {aka ‘unsigned char[]’} with mismatched bound [-Warray-parameter=]
261 | uint8 id[]) // IN: PVN ID to use (NULL if allocPvn == FALSE)
| ~~~~~~^~~~
/tmp/modconfig-DTkyre/vmnet-only/hub.c:68:37: note: previously declared as ‘uint8[20]’ {aka ‘unsigned char[20]’}
68 | uint8 id[VNET_PVN_ID_LEN]);
| ~~~~~~^~~~~~~~~~~~~~~~~~~
/tmp/modconfig-DTkyre/vmnet-only/driver.c: In function ‘VNetFileOpUnlockedIoctl’:
/tmp/modconfig-DTkyre/vmnet-only/driver.c:966:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
966 | {
| ^
/tmp/modconfig-DTkyre/vmnet-only/driver.c:976:4: note: here
976 | case SIOCGETAPIVERSION:
| ^~~~
LD [M] /tmp/modconfig-DTkyre/vmnet-only/vmnet.o
MODPOST /tmp/modconfig-DTkyre/vmnet-only/Module.symvers
CC [M] /tmp/modconfig-DTkyre/vmnet-only/vmnet.mod.o
LD [M] /tmp/modconfig-DTkyre/vmnet-only/vmnet.ko
BTF [M] /tmp/modconfig-DTkyre/vmnet-only/vmnet.ko
Skipping BTF generation for /tmp/modconfig-DTkyre/vmnet-only/vmnet.ko due to unavailability of vmlinux
make[1]: Leaving directory '/usr/src/linux-headers-5.15.0-33-generic'
/usr/bin/make -C $PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= postbuild
make[1]: Entering directory '/tmp/modconfig-DTkyre/vmnet-only'
make[1]: 'postbuild' is up to date.
make[1]: Leaving directory '/tmp/modconfig-DTkyre/vmnet-only'
cp -f vmnet.ko ./../vmnet.o
make: Leaving directory '/tmp/modconfig-DTkyre/vmnet-only'
Unable to install all modules. See log for details.
以下是日志:https://pastebin.com/raw/T2fjNp58
我还尝试按照另一个主题中的建议禁用安全启动,但这并不能解决问题。
谢谢!
答案1
您可以在 VMware 社区网站上找到详细的答案: https://communities.vmware.com/t5/VMware-Workstation-Pro/VM-Workstation-16-1-gt-16-2-1-on-Ubuntu-21-10-broke-everything/mp/2885277/highlight/true#M173211
我在我的 ZorinOS 上尝试了以下内核版本:5.15.0-41-通用并修复了问题。