VMWare Workstation - VMWare 内核模块更新程序失败(Ubuntu 22.04 LTS)

VMWare Workstation - VMWare 内核模块更新程序失败(Ubuntu 22.04 LTS)

安装 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-通用并修复了问题。

相关内容