Skip to content

Build failed for vmmon. Aborting. #22

Description

@russellk

When attempting a fresh install of VMware-Workstation-Full-17.6.4-24832109.x86_64.bundle on Ubuntu 24.04.4 LTS running the 6.17.0-14-generic kernel, I receive the subject message when executing "sudo python3 vmware_module_builder.py".

To be sure, I executed "sudo vmware-installer -u vmware-workstation" followed by "sudo rm -rf /usr/lib/vmware/" and repeated the following steps:

> sudo sh ./VMware-Workstation-Full-17.6.4-24832109.x86_64.bundle
> git clone https://github.com/Hyphaed/vmware-vmmon-vmnet-linux-6.17.x.git
> cd vmware-vmmon-vmnet-linux-6.17.x
> sudo python3 vmware_module_builder.py

The following is the output of the module builder:

╔══════════════════════════════════════════════════════════════╗
║                    VMware Module Builder                     ║
║              Fixes vmci + rebuilds vmmon/vmnet               ║
║              with kernel compatibility patches               ║
╚══════════════════════════════════════════════════════════════╝

──────────────────────────────────────────────────────────────
  Pre-flight checks
──────────────────────────────────────────────────────────────
  ✅  Patches directory found: /home/krussell/Documents/VMware/Patches/vmware-vmmon-vmnet-linux-6.17.x/patches
  ✅  Distro: Ubuntu (family=debian, pm=apt-get)
  ✅  Kernel: 6.17.0-14-generic  (major=6, minor=17, patch=0)
  ✅  Kernel headers found: /lib/modules/6.17.0-14-generic/build
  ✅  VMware detected: VMware Workstation 17.6.4 build-24832109
  ✅  VMware module sources found in /usr/lib/vmware/modules/source

──────────────────────────────────────────────────────────────
  VMware config integrity check
──────────────────────────────────────────────────────────────
  ✅  VMware config files look healthy (no empty or corrupt XML found)

──────────────────────────────────────────────────────────────
  Secure Boot detection
──────────────────────────────────────────────────────────────
  ✅  Secure Boot: disabled (modules can load unsigned)

──────────────────────────────────────────────────────────────
  Compilation Mode Selection
──────────────────────────────────────────────────────────────

  CPU Model               : Intel(R) Xeon(R) Gold 5120 CPU @ 2.20GHz
  Hardware Virtualization : Intel VT-x
  VPID                    : yes
  AVX-512                 : yes
  AVX2                    : yes
  FMA / F16C              : yes / yes
  AES-NI                  : yes
  SSE4.2                  : yes
  1GB Huge Pages (EPT)    : yes

  1) Vanilla  — standard VMware compilation, portable
  2) Optimized — modules only work on this CPU architecture (default)
       Flags that will be applied:
         GCC  : -march=native -mtune=native -O3 -ffast-math -fno-strict-aliasing
         Make : VMWARE_OPTIMIZE=1 HAS_VTX_EPT=1 HAS_AVX512=1 HAS_1GB_PAGES=1
         Cores: -j56

  Select [1/2, default=2]: 1
  ✅  Compilation mode: Vanilla
  ✅  Make flags: -j56

──────────────────────────────────────────────────────────────
  Unloading existing VMware modules
──────────────────────────────────────────────────────────────
  $ sudo modprobe -r vmnet
    modprobe: FATAL: Module vmnet not found.
  $ sudo rmmod vmnet
    rmmod: ERROR: Module vmnet is not currently loaded
  $ sudo modprobe -r vmmon
    modprobe: FATAL: Module vmmon not found.
  $ sudo rmmod vmmon
    rmmod: ERROR: Module vmmon is not currently loaded
  $ sudo modprobe -r vmw_vmci
    modprobe: FATAL: Module vmw_vmci is in use.
  $ sudo rmmod vmw_vmci
    rmmod: ERROR: Module vmw_vmci is in use by: vmw_vsock_vmci_transport
  ✅  Existing modules unloaded (errors above are normal if not loaded)

──────────────────────────────────────────────────────────────
  Backup & source extraction
──────────────────────────────────────────────────────────────
  ℹ️  Creating first backup at: /usr/lib/vmware/modules/source/backup-20260505-104452
  $ sudo mkdir -p /usr/lib/vmware/modules/source/backup-20260505-104452
  $ sudo cp /usr/lib/vmware/modules/source/vmmon.tar /usr/lib/vmware/modules/source/backup-20260505-104452/vmmon.tar
  $ sudo cp /usr/lib/vmware/modules/source/vmnet.tar /usr/lib/vmware/modules/source/backup-20260505-104452/vmnet.tar
  ✅  Backup created: backup-20260505-104452
  ✅  Temporary build directory: /tmp/vmware_build_ih765fld
  ℹ️  Extracting vmmon.tar from backup...
  ✅  vmmon source extracted
  ℹ️  Extracting vmnet.tar from backup...
  ✅  vmnet source extracted

──────────────────────────────────────────────────────────────
  Exploring VMware source trees
──────────────────────────────────────────────────────────────
  ℹ️    VMware source analysis:
  ℹ️      vmmon Makefile style : CC_OPTS
  ℹ️      vmnet Makefile style : EXTRA_CFLAGS
  ℹ️      do_gettimeofday      : yes (unguarded)
  ℹ️      netif_napi_add       : 4-arg (needs fix)
  ℹ️      task->state guard    : present
  ℹ️      objtool markers      : absent

──────────────────────────────────────────────────────────────
  Applying kernel compatibility patches
──────────────────────────────────────────────────────────────
  ℹ️    Legacy 6.16.x overlay: 25H2u1 sources detected (modern APIs present) — skipping
  ℹ️    [AP-04] vmnet Makefile.kernel: vm_check_build injection
  ✅      vmnet Makefile.kernel: inject vm_check_build
  ℹ️    [AP-13] Module identity defines in Makefile.kernel
  ℹ️      Makefile.kernel (vmmon-only): -DVMMON already present — skipped
  ℹ️    [AP-01] Kernel >= 6.17 / 7.x: objtool compatibility patches
  ✅      vmmon Makefile: OBJECT_FILES_NON_STANDARD (objtool bypass)
  ✅      vmnet Makefile: OBJECT_FILES_NON_STANDARD (objtool bypass)
  ℹ️    [AP-02] Phystrack bare return; removal (objtool)
  ℹ️      phystrack.c: no bare return; statements — skipped
  ℹ️    [AP-03] netif_napi_add 3-arg fix (kernel 6.1+)
  ✅      compat_netdevice.h: netif_napi_add 3-arg fix (kernel 6.1+)
  ℹ️    [AP-05] VMW_NETIF_SINGLE_NAPI_PARM detection (kernel 6.1+)
  ⚠️       vmnet Makefile.kernel: cannot locate ccflags-y anchor for NAPI flag
  ℹ️    [AP-07] task->__state guard: already present — skipped
  ℹ️    [AP-08] bridge.c: do_gettimeofday → ktime_get_real_ts64 (kernel 5.0+)
  ✅      bridge.c: vnetTime timeval → timespec64 inside LOGLEVEL guard (25H2u1, kernel 5.0+)
  ✅      bridge.c: do_gettimeofday(&vnetTime) → ktime_get_real_ts64 (kernel 5.0+) (1 occurrence(s))
  ✅      bridge.c: local timeval now → timespec64 (kernel 5.0+)
  ℹ️    [AP-09] hostif.c: get_user_pages_fast API check
  ℹ️      hostif.c: get_user_pages_fast — API compatible, no fix needed
  ℹ️    [AP-10] strncpy → strscpy deprecation fix (kernel 6.8+)
  ℹ️      vmmon-only: no strncpy replacements needed
  ℹ️      vmnet-only: no strncpy replacements needed
  ℹ️    [AP-11] userif.c: get_user_pages_fast API check
  ℹ️      userif.c: get_user_pages_fast(FOLL_WRITE) — API compatible, no fix needed
  ℹ️    [AP-12] MODULE_IMPORT_NS symbol namespace (kernel 5.15+)
  ℹ️      driver.c: kernel does not use symbol namespaces — skipped
  ℹ️    Vanilla mode: skipping optional performance patches

──────────────────────────────────────────────────────────────
  Compiling vmmon and vmnet
──────────────────────────────────────────────────────────────

──────────────────────────────────────────────────────────────
  Building vmmon
──────────────────────────────────────────────────────────────
  $ make VM_UNAME=6.17.0-14-generic -j56
    make -C /lib/modules/6.17.0-14-generic/build/include/.. M=$PWD SRCROOT=$PWD/. \
      MODULEBUILDDIR= modules
    make[1]: Entering directory '/usr/src/linux-headers-6.17.0-14-generic'
    make[2]: Entering directory '/tmp/vmware_build_ih765fld/vmmon-only'
      CC [M]  linux/driver.o
      CC [M]  linux/driverLog.o
      CC [M]  linux/hostif.o
      CC [M]  common/apic.o
      CC [M]  common/comport.o
      CC [M]  common/cpuid.o
      CC [M]  common/crosspage.o
      CC [M]  common/memtrack.o
      CC [M]  common/moduleloop.o
      CC [M]  common/phystrack.o
      CC [M]  common/sharedAreaVmmon.o
      CC [M]  common/statVarsVmmon.o
      CC [M]  common/task.o
      CC [M]  common/vmx86.o
      CC [M]  bootstrap/bootstrap.o
      CC [M]  bootstrap/monLoader.o
      CC [M]  bootstrap/monLoaderVmmon.o
    make[2]: Leaving directory '/tmp/vmware_build_ih765fld/vmmon-only'
    make[1]: Leaving directory '/usr/src/linux-headers-6.17.0-14-generic'
    Using kernel build system.
    warning: the compiler differs from the one used to build the kernel
      The kernel was built by: x86_64-linux-gnu-gcc-13 (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0
      You are using:           gcc-13 (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0
    linux/driver.c:21:10: fatal error: driver-config.h: No such file or directory
       21 | #include "driver-config.h"
          |          ^~~~~~~~~~~~~~~~~
    compilation terminated.
    common/moduleloop.c:30:13: fatal error: driver-config.h: No such file or directory
       30 | #   include "driver-config.h"
          |             ^~~~~~~~~~~~~~~~~
    compilation terminated.
    common/apic.c:20:10: fatal error: vm_basic_defs.h: No such file or directory
       20 | #include "vm_basic_defs.h"
          |          ^~~~~~~~~~~~~~~~~
    compilation terminated.
    linux/driverLog.c:26:10: fatal error: driver-config.h: No such file or directory
       26 | #include "driver-config.h"
          |          ^~~~~~~~~~~~~~~~~
    make[4]: *** [/usr/src/linux-headers-6.17.0-14-generic/scripts/Makefile.build:287: linux/driver.o] Error 1
    compilation terminated.
    make[4]: *** Waiting for unfinished jobs....
    linux/hostif.c:30:10: fatal error: driver-config.h: No such file or directory
       30 | #include "driver-config.h"
          |          ^~~~~~~~~~~~~~~~~
    compilation terminated.
    make[4]: *** [/usr/src/linux-headers-6.17.0-14-generic/scripts/Makefile.build:287: common/moduleloop.o] Error 1
    make[4]: *** [/usr/src/linux-headers-6.17.0-14-generic/scripts/Makefile.build:287: common/apic.o] Error 1
    make[4]: *** [/usr/src/linux-headers-6.17.0-14-generic/scripts/Makefile.build:287: linux/driverLog.o] Error 1
    make[4]: *** [/usr/src/linux-headers-6.17.0-14-generic/scripts/Makefile.build:287: linux/hostif.o] Error 1
    In file included from common/comport.c:40:
    common/comport.h:25:10: fatal error: includeCheck.h: No such file or directory
       25 | #include "includeCheck.h"
          |          ^~~~~~~~~~~~~~~~
    compilation terminated.
    common/cpuid.c:22:13: fatal error: driver-config.h: No such file or directory
       22 | #   include "driver-config.h"
          |             ^~~~~~~~~~~~~~~~~
    compilation terminated.
    common/crosspage.c:50:13: fatal error: driver-config.h: No such file or directory
       50 | #   include "driver-config.h"
          |             ^~~~~~~~~~~~~~~~~
    compilation terminated.
    make[4]: *** [/usr/src/linux-headers-6.17.0-14-generic/scripts/Makefile.build:287: common/comport.o] Error 1
    make[4]: *** [/usr/src/linux-headers-6.17.0-14-generic/scripts/Makefile.build:287: common/cpuid.o] Error 1
    make[4]: *** [/usr/src/linux-headers-6.17.0-14-generic/scripts/Makefile.build:287: common/crosspage.o] Error 1
    common/memtrack.c:79:13: fatal error: driver-config.h: No such file or directory
       79 | #   include "driver-config.h"
          |             ^~~~~~~~~~~~~~~~~
    compilation terminated.
    make[4]: *** [/usr/src/linux-headers-6.17.0-14-generic/scripts/Makefile.build:287: common/memtrack.o] Error 1
    common/phystrack.c:38:13: fatal error: driver-config.h: No such file or directory
       38 | #   include "driver-config.h"
          |             ^~~~~~~~~~~~~~~~~
    compilation terminated.
    make[4]: *** [/usr/src/linux-headers-6.17.0-14-generic/scripts/Makefile.build:287: common/phystrack.o] Error 1
    bootstrap/bootstrap.c:27:10: fatal error: vm_basic_types.h: No such file or directory
       27 | #include "vm_basic_types.h"
          |          ^~~~~~~~~~~~~~~~~~
    compilation terminated.
    common/sharedAreaVmmon.c:27:13: fatal error: driver-config.h: No such file or directory
       27 | #   include "driver-config.h"
          |             ^~~~~~~~~~~~~~~~~
    compilation terminated.
    make[4]: *** [/usr/src/linux-headers-6.17.0-14-generic/scripts/Makefile.build:287: bootstrap/bootstrap.o] Error 1
    common/statVarsVmmon.c:27:13: fatal error: driver-config.h: No such file or directory
       27 | #   include "driver-config.h"
          |             ^~~~~~~~~~~~~~~~~
    compilation terminated.
    make[4]: *** [/usr/src/linux-headers-6.17.0-14-generic/scripts/Makefile.build:287: common/sharedAreaVmmon.o] Error 1
    make[4]: *** [/usr/src/linux-headers-6.17.0-14-generic/scripts/Makefile.build:287: common/statVarsVmmon.o] Error 1
    common/task.c:38:13: fatal error: driver-config.h: No such file or directory
       38 | #   include "driver-config.h"
          |             ^~~~~~~~~~~~~~~~~
    compilation terminated.
    bootstrap/monLoaderVmmon.c:28:13: fatal error: driver-config.h: No such file or directory
       28 | #   include "driver-config.h"
          |             ^~~~~~~~~~~~~~~~~
    compilation terminated.
    make[4]: *** [/usr/src/linux-headers-6.17.0-14-generic/scripts/Makefile.build:287: common/task.o] Error 1
    make[4]: *** [/usr/src/linux-headers-6.17.0-14-generic/scripts/Makefile.build:287: bootstrap/monLoaderVmmon.o] Error 1
    common/vmx86.c:29:13: fatal error: driver-config.h: No such file or directory
       29 | #   include "driver-config.h"
          |             ^~~~~~~~~~~~~~~~~
    compilation terminated.
    make[4]: *** [/usr/src/linux-headers-6.17.0-14-generic/scripts/Makefile.build:287: common/vmx86.o] Error 1
    bootstrap/monLoader.c:53:2: error: #error MonLoader cannot be built as part of this environment
       53 | #error MonLoader cannot be built as part of this environment
          |  ^~~~~
    bootstrap/monLoader.c:57:10: fatal error: vm_basic_types.h: No such file or directory
       57 | #include "vm_basic_types.h"
          |          ^~~~~~~~~~~~~~~~~~
    compilation terminated.
    make[4]: *** [/usr/src/linux-headers-6.17.0-14-generic/scripts/Makefile.build:287: bootstrap/monLoader.o] Error 1
    make[3]: *** [/usr/src/linux-headers-6.17.0-14-generic/Makefile:2016: .] Error 2
    make[2]: *** [/usr/src/linux-headers-6.17.0-14-generic/Makefile:248: __sub-make] Error 2
    make[1]: *** [Makefile:248: __sub-make] Error 2
    make: *** [Makefile:117: vmmon.ko] Error 2
  ❌  Failed to build vmmon
  ❌  Build failed for vmmon. Aborting.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions